ipwsystems / rtftools
用于从RTF文件中提取原始文本的库
This package is auto-updated.
Last update: 2024-08-28 11:50:29 UTC
README
此软件包提供了一些用于处理RTF数据的类。它已被设计成能够处理内容太大而无法放入内存的文件。这就是为什么你会在类之间看到二分法
- 以 RtfString 开头的类处理内存中的RTF内容。
- 以 RtfFile 开头的类处理基于文件的RTF内容。
您需要决定是否需要处理大文件。如果您确定RTF内容始终可以放入内存,请使用 RtfString 类。如果您确定文件可能比可用内存大,请使用 RtfFile 类。这将增加一些由文件I/O引起的开销(如果您具有低性能I/O子系统,则可能会加倍执行时间,但我注意到一些系统,其中内存版本和文件版本之间的差异只有几十分之一毫秒)。
该软件包当前实现了以下类
- RtfStringBeautifier 和 RtfFileBeautifier:以美观的方式打印RTF文件内容,以便您可以使用例如 diff 或 windiff 的工具比较两个RTF文件。您可以在以下位置找到一些帮助:帮助/README.beautifier.md。
- RtfStringParser 和 RtfFileParser:一个通用的RTF内容解析器。它提供了一组映射到底层RTF令牌类型的 Rtf*Token 类,以及一些基本智能,允许您根据当前嵌套级别跟踪某些控制词的值,以及处理图片或二进制数据内容(帮助/README.parser.md)。
- RtfStringTexter 和 RtfFileTexter:一个类,可以从RTF内容中提取原始文本,并具有一些基本的格式化功能(帮助/README.texter.md)。
- RtfStringTemplater 和 RtfFileTemplater:一个类,允许您处理包含宏语言构造的RTF模板,以生成最终输出文档,例如用于邮件(帮助/README.templater.md)。
- RtfMerger:一个类,允许您将多个RTF文档合并为一个(帮助/README.merger.md)。这是此软件包中唯一不继承自 RtfDocument 的RTF处理类。
依赖关系
此软件包中的所有类都依赖于 SearchableFile 类(http://www.phpclasses.org/package/9697-PHP-Process-text-files-too-big-to-fit-into-memory.html),该类允许在无法放入内存的文件中搜索内容。此软件包中包含此类的副本以供您方便使用,但请注意,它可能不是最新版本。
本包中的所有主要类文件(RtfBeautifier.phpclass、RtfParser.phpclass 和 RtfTexter.phpclass)也继承自 RtfDocument 类(RtfDocument.phpclass)。
参考文献
本包依赖于以下包,SearchableFile,该包允许您从无法放入内存的文件中搜索文本数据。
[http://www.phpclasses.org/package/9697-PHP-Process-text-files-too-big-to-fit-into-memory.html](http://www.phpclasses.org/package/9697-PHP-Process-text-files-too-big-to-fit-into-memory.html "http://www.phpclasses.org/package/9697-PHP-Process-text-files-too-big-to-fit-into-memory.html")
出于方便起见,已在此包含 SearchableFile.phpclass 文件,但请注意,这可能不是最新版本。
最新版的Microsoft Rtf格式规范可以在此下载
[https://www.microsoft.com/en-us/download/details.aspx?id=10725](https://www.microsoft.com/en-us/download/details.aspx?id=10725 "https://www.microsoft.com/en-us/download/details.aspx?id=10725")
但您也可以查阅Sean M. Burke编写的优秀书籍《Rtf口袋指南》
[https://books.google.fr/books/about/RTF_Pocket_Guide.html?id=4N_lVcyyhqMC&redir_esc=y](https://books.google.fr/books/about/RTF_Pocket_Guide.html?id=4N_lVcyyhqMC&redir_esc=y "https://books.google.fr/books/about/RTF_Pocket_Guide.html?id=4N_lVcyyhqMC&redir_esc=y")
或访问他的页面
[http://interglacial.com/~sburke/](http://interglacial.com/~sburke/ "http://interglacial.com/~sburke/")
支持
如果您在使用 RtfTools 类时遇到问题,或得到奇怪的结果,请随时通过以下地址联系我
christian.vigh@wuthering-bytes.com
不要犹豫,将导致失败的Rtf文档作为附件发送到您的电子邮件中;我将很高兴为您解答!