PHP-код не создает новую строку в шаблоне RTF - PullRequest
3 голосов
/ 13 февраля 2012

Я сократил скрипт php до точного кода, необходимого для решения недоумения (по крайней мере, для меня!). Предполагается, что все приведенные ниже сценарии - это заменить '++ name' в шаблоне rtf жестко закодированной переменной, которая будет печатать 'me' в одной строке и 'you' в следующей строке. Помимо попытки "\ r \ n" создать новую строку, я также попытался "\ par" безрезультатно. Приведенный ниже код заменяет «++ name» на «meyou» в одной строке. Я нашел несколько «решений» на stackoverflow и других форумах, но ни одно не помогло мне.

Любая помощь очень ценится.

    <?php
    $name = "me" . "\r\n" . "you";
    header('Content-type: application/msword');
    header('Content-Disposition: inline, filename=filenot.rtf');
    $filename = 'rtfnotice.rtf';
    $fp = fopen ($filename, 'r');
    $output = fread( $fp, filesize($filename));
    fclose ($fp);
    $output = str_replace('++name', $name, $output);
    echo $output;
?>

Ответы [ 2 ]

4 голосов
/ 14 февраля 2012

В формате RTF каждый отформатированный раздел заключен в усы. «Форматирование» находится в начале. Чтобы сделать что-то смелое, {\b hey, this text is bold}

Чтобы вывести «я» и «вы» в отдельных строках, вы можете поставить между ними {\pard\par} или сделать их собственными абзацами. {\pard me \par}{\pard you \par}

Я думаю, вы также можете просто поставить \line. Разве RTF не весело?

Некоторое время назад я написал библиотеку для вывода RTF . Вы можете найти мою функцию «формат» полезной. По сути, вы предоставляете кучу свойств для текста, и он выводит его в формате RTF. Это AS3, но довольно просто перевести на PHP.

1 голос
/ 14 февраля 2012

Вероятно, это как-то связано с вашим типом контента. Я бы заменил application/msword на application/rtf Тогда ваше связанное RTF-приложение будет по крайней мере отображать его на основе правильного типа MIME.

Когда я только что попробовал это на моем сервере, он отлично отрисовывался в Word с разрывом строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...