【问题标题】:Merge multiple doc or rtf files into a single doc or rtf file by using php script使用 php 脚本将多个 doc 或 rtf 文件合并为一个 doc 或 rtf 文件
【发布时间】:2023-03-12 07:17:01
【问题描述】:

我想将多个 doc 或 rtf 文件合并为一个文件,该文件应该是多个文件的相同格式。 我的意思是,如果用户从列表框中选择多个 rtf 模板文件并单击网页上的按钮,输出应该是一个组合多个 rtf 模板文件的单个 rtf 文件,我应该使用 php。

我还没有决定模板文件的格式,但应该是rtf或doc,而且我假设模板文件也有一些图像。

为此我花了很多时间研究图书馆,但仍然找不到。

请帮帮我!! :(

提前致谢。

【问题讨论】:

    标签: php file merge rtf


    【解决方案1】:

    如果您正在寻找仅处理 RTF 文档的解决方案,您可以在这里找到一个 PHP 包来合并多个 RTF 文档:

    www.rtftools.com

    这是一个关于如何将多个文档合并在一起的简短示例:

    include ( 'path/to/RtfMerger.phpclass' ) ;
    
    $merger = new RtfMerger ( 'sample1.rtf', 'sample2.rtf' ) ; // You can specify docs to be merged to the class constructor...
    $merger -> Add ( 'sample3.rtf' ) ;                         // or by using the Add() method
    $merger [] = 'sample4.rtf' ;                               // or by using the array access methods
    $merger -> SaveTo ( 'output.rtf' ) ;                       // Will save files 'sample1' to 'sample4' into 'output.rtf'
    

    此包允许您处理大于可用内存的文档。

    【讨论】:

    • 需要注意的是,此方案仅适用于PHP 5.4.0及更高版本
    【解决方案2】:

    我一直在从事一个类似的项目,但没有找到任何用于处理 MSWord 文件的 PHP(或任何其他开源语言)库。我处理它的方式有点复杂,但很有效。下面是我的做法(假设你有一台 Linux 服务器):

    设置:

    1. 安装JODConverterOpenOffice
    2. 将开放式办公室作为服务器启动(参见http://www.artofsolving.com/node/10

    方法(即在您的 PHP 代码中做什么):

    1. 通过反引号或exec() 调用 JODConverter 将您的 MSWord 或 RTF 文件转换为 ODT 格式
    2. 将每个文件解压缩到自己的临时目录中
    3. 使用DOM Parser从每个解压缩文档中读取contents.xml文件
    4. 从每个中提取<office:text> 内容,然后连接
    5. 将此连接的 xml 放回 content.xml 文件之一中的正确位置
    6. 重新压缩该临时目录的内容并为其添加 .odt 扩展名
    7. 使用 JODConverter 将此文件再次转换回 MSWord

    正如我所说,它并不漂亮,但它可以完成工作。

    如果您想走 RTF 路线,这个问题也可能会有所帮助:Concatenate RTF files in PHP (REGEX)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多