henck/rtf-to-html

PHP 中的 RTF 到 HTML 转换器

1.2 2021-09-10 15:19 UTC

This package is not auto-updated.

Last update: 2024-09-21 05:30:54 UTC


README

PHP 中的 RTF 到 HTML 转换器

在最近的项目中,我迫切需要一个用 PHP 编写的 RTF 到 HTML 转换器。在网上搜索了一番,找到了一些匹配项,但我无法让它们正常工作。其中之一甚至使用 passthru() 调用 RTF2HTML 可执行文件,这不是我想要的。我正在寻找一个纯 PHP 编写的 RTF 到 HTML 转换器。

由于找不到现成的工具,我就自己坐下来编写了一个。它很短,而且它能工作,实现了 HTML 中需要的 RTF 标签子集,并忽略了其他部分。实际上,当你真正仔细查看 RTF 格式时,它并不复杂,但也不是你能在 15 分钟内编写解析器的。

如何使用它

使用 composer 安装此包。然后执行以下操作:

use RtfHtmlPhp\Document;

$rtf = file_get_contents("test.rtf"); 
$document = new Document($rtf); // or use a string directly

Document 如果无法解析 RTF 文档将抛出异常。解析错误将生成 PHP 通知。

如果您想查看解析器读取的内容(用于调试目的),则可以调用此函数:

echo $document;

要转换解析器的解析树为 HTML,请调用此函数(但仅当 RTF 成功解析时):

use RtfHtmlPhp\Html\HtmlFormatter;
$formatter = new HtmlFormatter();
echo $formatter->Format($document);

为了增强兼容性,转换的 RTF Unicode 字符的默认字符编码设置为 HTML-ENTITIES。要更改默认编码,可以使用支持的编码初始化 Html 对象:mb_list_encodings() 中的示例:例如,UTF-8

$formatter = new HtmlFormatter('UTF-8');

通过 Composer 安装

composer require henck/rtf-to-html

注意事项

  • 请注意,rtf-html-php 需要 PHP 安装支持 mb_convert_encoding 函数。因此,您必须安装 php-mbstring 模块。对于新的 PHP 安装,通常都会安装。