Перевод строки в rtf

TAN

Новичок
Перевод строки в rtf

задача, сформировать rtf файл с некоторыми даннами, все нормально, беру шаблон rtf файла и записываю в него данные следующим образом:
PHP:
header("Content-type: application/msword");
header("Content-Disposition: filename=report.rtf");


$fp=fopen("Client_report.rtf","r");

$output=fread($fp, filesize("Client_report.rtf"));
fclose ($fp);


// ..... тут запрос к базе данных опускаем
while ($row=mysql_fetch_array($resul))
{


$companyname=$row["companyname"].'\n\r'.$companyname;



}
$output=str_replace('<<6>>',$companyname,$output);
// находим в шаблоне строку <<6>> и заменяем на $companyname
echo $output;
все отлично, но то что подставляется выдает в одну строчку, перевода строки нет, может кто чего подскажет.
 

Profic

just Profic (PHP5 BetaTeam)
В rtf так же как и в html перевод строки пустой символ. Для того, чтобы они виделись нормально их нужно заменять либо на \line, либо на \par в зависимости от требований: первое - это перенос строки (типа <br> в html), а второе обзац (типа <p>). Можно так же заэкранировать перенос строки бек-слешем (т.е. должно быть так: "\\\n" - тоже типа <p>), но, однако, не все программы-читалки понимают это нормально.
Ключевых слов \r и \n в спецификации rtf нет, потому читалки их игнорируют :).
Вот такой вот коварный rtf.

ЗЫ. Не стоит тыкать в мануал по php не поняв, что он тут ну совсем не к месту.
 

kruglov

Новичок
Лично я, когда мне надо было генерить РТФ, сохранил его из ворда, открыл блокнотом (благо текстовый формат) и быстренько понял, как там шрифты, как переводы строк и прочая байда задается.
 

Profic

just Profic (PHP5 BetaTeam)
Лично я, когда мне надо было парсить РТФ, открыл спецификацию (благо в свободном доступе), прочитал ее и быстренько (не ну совсем конечно :)) написал парсилку, матюкаясь походу на MS.
:D
 
Сверху