我使用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中显示它。
我该怎么做?
答案 0 :(得分:0)
一种方法是创建一个'容器'RTF组。容器RTF组将以'{\ rtf1'开头,以结束'}结束。您可以将所有RTF字符串插入此容器RTF组。例如:
{\ rtf1 {first rtf ....} {second rtf ....} {third rtf ...}}
然后,Word会依次显示以上三个RTF。
答案 1 :(得分:0)
它并没有真正回答这个问题,但它是我如何解决问题的答案。我更多地谷歌了,并且发现,如果我想要简单的rtf易读源和自定义源,我必须将它保存在写字板而不是MS Word,因为Word添加了很多(对我来说)无用的代码,只了解Word。另一方面,写字板保存简单明了,然后很容易将一个rtf文件附加到另一个文件。