Здравствуйте!
Снова прошу совета. Необходимо реализовать вывод полей ноды в шаблон doc-Файла. Проще говоря, есть официальный бланк организации. Необходимо, чтобы определенные поля ноды вставали в нужные позиции шаблона, чтобы потом можно было распечатать. Поиском особо не продвинулся в решении проблемы. Буду рад, если кто-то, хотя бы правильный вектор движения задаст. Заранее благодарен!
Комментарии
Легче с сайта выгрузить результаты в табличный файл (1),
а на стороне Word-a оформить (возможно скриптом на VBA) чтобы поля шаблона жрались из табличного файла (2).
Не могу точнее сказать. Опытные секретарши часто умеют такое (2) делать.
Спасибо за совет. Подумаю в этом направлении. Я так понимаю, речь о слиянии документов.
http://habrahabr.ru/post/138666/
Решал задачу своим модулем. Использовал шаблон документа в .docx и в него вставлял нужные данные из полей нод. Готового решения не нашел. Для работы с шаблоном использовал http://www.tinybutstrong.com/plugins/opentbs/tbs_plugin_opentbs.html
Смутно представляю о чем речь у вас идет.
Если нужно именно, чтобы фаблон doc-файла имел информацию из сайт для своих полей - примерный рецепт выше.
Если просто данные распечатать - лучше на стороне Друпала делать. Есть модули для печати.
Делал вывод в rtf файл после заполнении формы. Работа как с обычным файлом только данные при вставке надо немного обработать. Делается проще чем вывод в doc или pdf.
Почитал сейчас про rtf, склоняюсь именно к этому варианту. Правда не совсем понял, как быть с картинками.
Речь именно о формировании определенного файла, с разными значениями из полей ноды. Но значения не только текстовые, нужно также подставлять картинки.
можно через модуль print и в tpl расставить все поместам.
можно использовать PHPDocx библиотеку (на хабре есть инструкции к ней), изображения тоже умеет вставлять
а дальнейшая реализация уже зависит от фантазии, допустим можно при создании нод создавать и вордовские файлы(hook_node_insert,hook_node_presave), а потом в шаблоне ноды, страницы выводить ссылку на документ
Задачи вставить картинку не было но есть http://phprtf.sourceforge.net/ позволяет это делать, вероятно можно что то отсюда подчерпнуть http://forums.devshed.com/php-development-5/inserting-images-rtf-templat... .
Всем спасибо, вроде бы разобрался. Обошелся без библиотек, просто создал шаблон в WordPad, разметил его <> и т.д.
А затем, с помощью str_replace заменяю тэги на нужные значения.
<?php
// генерация заголовков, призванных облегчить браузеру выбор
// требуемого приложения
header ( "Content-type: application/rtf" );
header ( "Content-Disposition: inline; filename='Diplom.rtf' "); //Для примера задаем значения переменных
$name= "Вася";
$surname = "Пупкини";
$photo = "photo.jpg";
$filename = "qwer.rtf"; // открытие файла шаблона
$fp = fopen ($filename, "r" );
//перевод изображения в hex формат
$imgData=getimagesize($photo);
$newImagePre="{\\*\\shppict{\\pict \\jpegblip \\picw".$imgData[0]." \\pich".$imgData[1]." \\wbmbitspixel24 ";
$newImage=file_get_contents($photo,"rb");
$hex=bin2hex($newImage);
$imgDat=$newImagePre.$hex."}}"; // считывание шаблона в переменную
$output = fread($fp, filesize( $filename ));
fclose ($fp);
// замещение заполнителей в шаблоне данными
$output = str_replace("<<NAME>>", $name, $output);
$output = str_replace("<<SURNAME>>", $surname, $output);
$output = str_replace("<<PHOTO>>", $imgDat, $output);
// отправка сгенерированного документа в браузер
echo $output;
?>