使用php脚本将多个doc或rtf文件合并到一个doc或rtf文件中

时间:2010-10-27 05:53:37

标签: php file merge rtf

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

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

我花了很多时间来研究这个库,但仍然找不到它。

请帮帮我!! :(

提前致谢。

2 个答案:

答案 0 :(得分:2)

如果您正在寻找仅处理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'

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

答案 1 :(得分:0)

我一直致力于一个类似的项目,并且没有设法找到任何PHP(或任何其他开源语言)库来操作MSWord文件。我接近它的方式有点复杂,但有效。这是我如何做到的(假设你有一台Linux服务器):

设定:

  1. 安装JODConverterOpenOffice
  2. 作为服务器启动开放式办公室(请参阅http://www.artofsolving.com/node/10
  3. 方法(即在PHP代码中做什么):

    1. 通过反引号调用JODConverter或exec()
    2. 将MSWord或RTF文件转换为ODT格式
    3. 将每个文件解压缩到自己的临时目录中
    4. 使用DOM Parser
    5. 阅读每个解压缩文档中的contents.xml文件
    6. 从每个内容中提取<office:text>内容,然后连接
    7. 将此连接的xml放回其中一个content.xml文件
    8. 中的正确位置
    9. 重新压缩该临时目录的内容并为其提供.odt扩展名
    10. 使用JODConverter将此文件再次转换回MSWord
    11. 正如我所说,它并不漂亮,但它确实起作用。

      如果您希望沿着RTF路线前进,这个问题也可能有所帮助:Concatenate RTF files in PHP (REGEX)