Comments 23
Вот за что люблю хабр.
Порой бывают очень полезные статьи.
Вчера только задумывался над вопросом генерации документа из шаблона на сайте,
а сегодня уже ответ готовый… Даже подумать как следует не дали :D
Порой бывают очень полезные статьи.
Вчера только задумывался над вопросом генерации документа из шаблона на сайте,
а сегодня уже ответ готовый… Даже подумать как следует не дали :D
+4
можешь реализовать это для ms word'a
+1
сомневаюсь что это так же легко реализуется для doc. Для docx — я думаю делается так же легко.
0
сердитый вариант: сгенерировать простой HTML без стилей и отдать как application/msword. Работает в word на ура.
сердитый вариант при сложной структуре: открыть шаблон в word и сохранить как HTML. В полученный HTML скриптом вносить требуемые изменения и отдавать как application/msword. Вместо HTML можно попробовать MHT.
проблемы такого способа в том что конвертить из doc получается только либо руками, либо через VB на windows сервере. Для некоторого круга задач это приемлемо. Еще одна проблема в том что в текстовых процессорах отличных от word все обычно едет к чертям, а в случае с MHT вообще не работает.
сердитый вариант при сложной структуре: открыть шаблон в word и сохранить как HTML. В полученный HTML скриптом вносить требуемые изменения и отдавать как application/msword. Вместо HTML можно попробовать MHT.
проблемы такого способа в том что конвертить из doc получается только либо руками, либо через VB на windows сервере. Для некоторого круга задач это приемлемо. Еще одна проблема в том что в текстовых процессорах отличных от word все обычно едет к чертям, а в случае с MHT вообще не работает.
0
UFO just landed and posted this here
Гениально!
Особенно радует простота предложенного решения.
Особенно радует простота предложенного решения.
0
В августовском выпуске LinuxFormat как раз эта же тема и почти такое же решение описывали.
0
Радует как все оказывается просто, ато открыл в текстовом редакторе и увидел кашу из букавок, ан нет это зип-архив.
0
Не читаю этот журнал. Мое решение работает у меня уже почти год=)
Статью подтолкнула написать другая статья с хабрахабра: habrahabr.ru/blogs/php/69417/
Вообще, я не претендую на изобретение — спецификация описана очень подробно и кто угодно, задавшись целью может легко сделать что-то и лучше и удобнее ;)
Статью подтолкнула написать другая статья с хабрахабра: habrahabr.ru/blogs/php/69417/
Вообще, я не претендую на изобретение — спецификация описана очень подробно и кто угодно, задавшись целью может легко сделать что-то и лучше и удобнее ;)
0
Мы сейчас разрабатываем систему документооборота на основе шаблонов ODT. Ваш пример очень упрощен но направление верное. Например, если нужно выводить список клиентов и их заказов (число не известно, как не известно и какие из их свойств выводить).
Близкий пример — генерация инвоиса по шаблону. И учтите еще вот какой момент — пользователь может вводить теги не только вашим способом, но и копируя из из одного документа в другой, или вбив текст, похожий на ваш (вбил дата, выделил цветом). И будет справедливо ждать что это сработает. А такой «тег» может быть «разорван» на 2 и более частей в XML — находится в разных нодах.
В общем, все гораздо сложнее.
Близкий пример — генерация инвоиса по шаблону. И учтите еще вот какой момент — пользователь может вводить теги не только вашим способом, но и копируя из из одного документа в другой, или вбив текст, похожий на ваш (вбил дата, выделил цветом). И будет справедливо ждать что это сработает. А такой «тег» может быть «разорван» на 2 и более частей в XML — находится в разных нодах.
В общем, все гораздо сложнее.
0
вы читали пункт статьи «Пару комментариев»?
0
Я не критикую ваш подход. Просто указываю на то что вы даже в этой простой задаче работаете в идеальных условий, хотя наверное вы и правы. Кстати, где можно прочитать более подробно о «В ODT есть также возможность использоваться условные элементы (например часть текста показывается или не показывается в зависимости от условия — например значения пользовательского поля)»?
0
authors.i-rs.ru/OOo3/WG3/0200WG3-Writer%20Guide.pdf
Это документация к OpenOffice Writer. Поиск по «условный текст» приведет почти сразу куда нужно.
Это документация к OpenOffice Writer. Поиск по «условный текст» приведет почти сразу куда нужно.
0
К сожалению, в гос.организации, которой программлю и аутсорсю, используют сплошные MS Word/Excel. :-( А тоже очень хотелось генерировать ODF на лету. Промучавшись с попытками адекватно выводить что-то в Ворд/Эксель пошел по пути наименьшего сопротивления — выдавать наружу html с расширением doc/xls и соответствующим mime-type. Получающиеся файлы отлично всасываются хоть MSOffice'ом, хоть OpenOffice'ом, чем все и довольны. Но не оставляю надежду таки доказать представителям гос.организации, что использовать пиратское — нехорошо и лучше перейти на тот же бесплатный OpenOffice. :-)
0
Можно работать с OO (шаблоны хранить в ODF), а потом из файла генерить MS-совместимые файлы (запуская oo в headless режиме).
0
хех… У нас у заказчика тоже самое, спрошлой ворд да эксель, но по большей части все-таки отчеты в экселе. Раньше тоже так же отдавал под нужным mime-type html, но потом нашли библиотечку одну php_writeexcel, слегка допилили ее и в общем используем.
0
Минусуйте, если совсе не в тему, но интересен вопрос — как(чем?) сгенерить серию jpg/png/gif (да хоть многостраничный tiff или pdf) из этих чертовых doc/docx/xls/xlsx/odf…
сорри за оффтоп, сорри, но наболело
сорри за оффтоп, сорри, но наболело
0
Спасибо, статья пригодится, только мы наверное пойдем дальше, попробуем присобачить OOo в headless режиме, для печати и конвертации в другие форматы (.doc, .pdf).
0
Sign up to leave a comment.
Простейшая генерация odt файла из существующего