Создание договоров "На лету".

Активист

Активист
Команда форума
Создание договоров "На лету".

Задача: формировать договор для 3-х типов юр и физ лиц в DOC, RTF, HTML, PDF по шаблону.

Шаблоны договоров, сохраненные в соответствующих форматах, содержат "места вставки", вида {ИНН} {АДРЕС_РЕГИСТРАЦИИ}.

Кто что используется для изменения текста? Не могу решить вопрос с DOC и RTF. Сейчас капаюсь в [m]PDF[/m]
Пытался использовать различные библиотеки, подходящие не нашел.
 

440hz

php.ru
DOC понимает HTML.
RTF обычный тестовый формат. ваще не проблема
PDF - тут врят ли получится методом str_replace()
 

dimagolov

Новичок
Активист, сильно не советую такие шаблоны вставки (то есть заключенные в {}). Хотя бы исходя из того, что блоки в RTF форматированны именно таким образом.

Я делал и DOC (но на клиенте, через COM писалось на VC++), там сама замена простая, используя механизмы ворда и RTF (на PHP разбором исходника документа, брал за основу код RTF парсера отсюда). Как показала практика, парсить весь документ можно, но очень долго, у меня менее 5 секунд не получалось при посимвольном парсинге всего. Если искать в документе начало своего шаблона строковыми ф-ями (у меня он ограничен $$, но искать надо все равно $, а потом разбирать что дальше), потом смотреть что дальше и распарсивать служебные блоки вышеупомянутым парсером, то получается менее 0.1 секунды на тех же документах. При этом надо помнить о таких нетривиальных вещах, что тескт внутри шаблона может попасть в разные блоки RTF даже тогода, когда все символы имеют одинаковое форматирование.

-~{}~ 18.03.09 10:00:

440hz, ты хотел сказать что Word понимает файлы с расширением doc внутри которых html?

PDF 100% не получится, разве особый формат PDF форм, но я не копал в ту сторону.
 

dimagolov

Новичок
HraKK, я тоже формирую PDF (через HaruPDF, спасибо tony2001), но при этом я все же утверждаю, что просто делать подстановку произвольного текста в PDF не выйдет, так как надо сохранять размер подставляемой строки равной размеру шаблона, чтобы сохранить форматирование или заранее учитывать этот момент при создании шаблона и потом при валидации подставляемых данных.
 
Сверху