Автоматическая простановка данных в Word из формы
13 сообщений
#12 лет назад
Сайт объявлений. Стоит задача отправки договора на почту пользователя с введенными им ранее личными данными через форму.Форма для ввода данных, привязка документа и отправка на почту не вызывает затруднений, но вот как вставить эти данные в договор?
Существуют ли подобного рода готовые решения? Или кто подскажет алгоритм как это реализовать. Заранее благодарен!
155 сообщений
#12 лет назад
Делал такое много раз. Есть два пути:
1. Для этого используется COM объект Word-а.
2. Шаблон сохраняется как DOCX, а потом вместо значений, например, {%CLIENT_NAME%} - через str_replace - просто подставляются Ваши переменные.
Если очень надо - поищу код, вышлю

155 сообщений
#12 лет назад
Все просто:1. Надо взять docx файл, и сменить расширение на zip;
2. В архиве увидите, есть папка word, а в ней файл document.xml. Извлекайте его и ложите к себе к скриптам;
3. Открываете document.xml и заменяете, ФИО клиента, например, на $$FIO$$ и т.д.;
4. Все сохраняете;
5. Дальше, в скрипте - получаете содержимое хмлки и проводите вот такие замены:
$template_path = TEMPLATES.'xml/document.xml';
$template = file_get_contents($template_path);
$template = str_replace('$$FIO$$', $data, $template);
6. Дальше, обратите внимание:
$xml_doc = mb_convert_encoding($template, 'utf-8', 'windows-1251');
file_put_contents(WEBROOT."/tmp/Report_".$data.".doc", $xml_doc);
7. На этом все.
155 сообщений
#12 лет назад
Цитата ("Shumar_Oleg"):$xml_doc = mb_convert_encoding($template, 'utf-8', 'windows-1251'- это конечно, смотря под какой кодировкой скрипт работает;