rtf MS Word php中的新页面

时间:2015-02-23 21:37:21

标签: php ms-word rtf

我使用PHP生成一些rtf文件。首先,我生成3种类型的文件,每种类型的多个变体(让我们说青铜,银和金 - 我生成3x青铜文件,5x银和2x金)。我想合并所有相同类型的文件 - 所有青铜文件合并为一个rtf文件,所有银文件合并为一个银文件,所有金文件合并为一个金文件。

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中显示它。

我该怎么做?

2 个答案:

答案 0 :(得分:0)

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

{\ rtf1 {first rtf ....} {second rtf ....} {third rtf ...}}

然后,Word会依次显示以上三个RTF。

答案 1 :(得分:0)

它并没有真正回答这个问题,但它是我如何解决问题的答案。我更多地谷歌了,并且发现,如果我想要简单的rtf易读源和自定义源,我必须将它保存在写字板而不是MS Word,因为Word添加了很多(对我来说)无用的代码,只了解Word。另一方面,写字板保存简单明了,然后很容易将一个rtf文件附加到另一个文件。