Новая страница в RTF MS Word Переполнение стека

Я генерирую некоторые файлы RTF, используя PHP. Во-первых, я генерирую 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 / разделитель страниц, чтобы показать все это в MS Word.

Как я должен это делать?

1

Решение

Одним из методов будет создание группы RTF «контейнер». Группа RTF контейнера должна начинаться с ‘{\ rtf1’ и заканчиваться закрытием ‘}’. Вы должны вставить все строки RTF в эту группу RTF контейнера. Пример:

{\ rtf1 {первый ртф ….} {второй ртф ….} {третий ртф …}}

Слово тогда показывало бы все вышеупомянутые три RTF один за другим.

0

Другие решения

Это не совсем ответ на вопрос, но это ответ на то, как я решаю проблему. Я немного погуглил и обнаружил, что если я хочу, чтобы простой rtf легко читался и настраивал источник, я должен сохранить его в WordPad, а не в MS Word, потому что Word добавляет много (для меня) бесполезного кода, понимание только к слову. С другой стороны, WordPad сохраняет все просто и легко, а затем легко добавить один файл RTF в другой.

0

По вопросам рекламы [email protected]