Подстановка данных в Odt файлКак сделать экспорт данных из базы в Rtf файл..
Простой Rtf (Rich Text Format) файл содержит примерно такой код:
{\rtf1
{\fonttbl {\f0 Arial;} {\f1 Times New Roman;}}
\f0\fs28 Заголовок \par
\f1\fs20 Это простой rtf-документ.\par
}
Здесь определено два шрифта и добавлены две строки, одна ариалом размером 28 (14пт) и вторая таймом.
Чтобы больше узнать о кодах, использующихся в Rtf файлах можно скачать спецификацию rtf файла
Но проще, думаю, будет сформировать в текстовом редакторе, например, Open Office, шаблон нужного документа и вставить какие-то текстовые коды, чтобы можно было сделать их замену на нужные данные.
Например, можно использовать для вставки кодов такое сочетание <<name>>
Более сложный вариант - вывести несколько записей из базы данных с использованием подготовленного в rtf шаблона.
Чтобы сделать такой вывод, откроем Rtf документ в notepad++ и разделим его на части. Например, первая чать это не повторяющиеся данные, а вторая часть повторяющиеся данные, то есть туда будут подставляться данные из записей базы данных. Может быть будет еще и третья часть, где будут завершающие файл статичные данные.
<?php
header('Content-Type: application/msword');
header('Content-Disposition: inline, filename=blank.rtf');
$filename1 = 't1.txt';
$filename2 = 't2.txt';
$output = file_get_contents($filename1);
$filename2_data = file_get_contents($filename2);
foreach($records as $record){
$data = str_replace('<<title>>', $recor->title, $filename2_data);
$data = str_replace('<<name>>', $recor->name, $data);
}
$output .= $data;
//$output .= '\par }';
echo $output;
?>
Вот, примерно так. Важно, не напутать при разделении файла на части.
Что может огорчить при выводе данных в Rtf файл.. Столкнулся с тем, что в Rtf файле не получается объединить ячейки таблицы в колонке. Пробовал делать в OpenOffice.
Поэтому, если нужное вам форматирование не поддерживается rtf форматом, можно воспользовать odt форматом это текстовый редактор в пакете OpenOffice >> Подстановка данных в Odt файл