2015-02-23 69 views
1

我使用PHP生成一些rtf文件。首先,我生成3种类型的文件,每种类型有多种变体(比如青铜,银和金 - 我生成3个青铜文件,5个银和2个金)。我想合并所有相同类型的文件 - 所有青铜文件成一个rtf文件,所有银文件合并成一个银文件,所有黄金文件合并成一个黄金文件。rtf MS Word中的新页面php

function merge_files($dir, $level, $type) { 
if (is_dir($dir)) { 
    $files = glob("$dir/*$level*.rtf"); 
    if (count($files) > 0) { 
     // open new file 
     $filename = "$type-$level.rtf"; 
     if (!($out = fopen("$dir/$filename", "wb"))) { return false; } 

     foreach ($files as $file) { 
      if (!($in = fopen($file, "rb"))) { return false; } 
      /*while ($line = fgets($in)){ 
       fwrite($out, $line); 
      }*/ 
      fwrite($out, fread($in, filesize($file))); 
      fclose($in); 
      unlink($file); 
     } 
     fclose($out); 
    } 
    return true; 
} else { 
    return false; 
} 

}

当我在源代码检查,附加所有文件合并成一个,但是当我在MS Word中打开它,它只显示第一个文件,而不是别人。我认为也许MS Word不会显示它,因为必须有一些MS Word页面分隔符/分页符在MS Word中显示。

我应该怎么做?

回答

0

一种方法是创建一个'容器'RTF组。容器RTF组将以'{\ rtf1'开始并以结束'}'结束。您可以将所有RTF字符串插入此容器RTF组。例如:

{\ {RTF1第一RTF ....} {第二RTF ....} {第三RTF ...}}

Word然后将显示所有上述三个RTF一个接一个。

0

这不是真的回答这个问题,但它是我如何解决问题的答案。我谷歌它多一点,并找出,如果我想简单rtf容易阅读源代码和定制源,我必须将它保存在写字板,而不是MS Word,因为Word添加了很多(对我来说)无用的代码,对Word的理解。另一方面,写字板将它保存起来很简单,然后很容易将一个rtf文件附加到另一个rtf文件。