Как стать автором
Обновить

Комментарии 25

Респект за проделанную работу!
Дважды респект! Похоже то, что искал.
Огромнейшее спасибо! Очень давно искал удобный способ генерации pdf. Обязательно попробую.
если не ограничиваться php и не использовать нативные вызовы, то имхо лучше использовать Batik SVG Toolkit(java): http://xmlgraphics.apache.org/batik/
Правильнее сказать «если ограничиваться Java». А вообще да, конечно, использование системных вызовов и достаточно объемного Inkscape'а является минусом при использовании для мелких нужд. Но в моем случае, я эту схему применял для создания web-приложения для печати пропусков на одном предприятии. Там уже была инфраструктура в виде web-сервера под ubuntu и большом числе приложений на php, потому эта схема оказалась идеальной.
при наличии веб-сервера под убунтой java явно не является проблемой.
другое дело что для php-программиста написать сервлет на java будет сложно, вот с этим согласен.
Спасибо, пригодится!
Мы пошли другим путем. Делаем темплейты на TeX - их проще править для случая таблиц (\longtable), которых у нас множество, после чего запускаем pdflatex и готов pdf.

Работает через web.
Я тоже сперва хотел описать, что таким же способом можно использовать целую кучу приложений как LaTeX, с неболшими ухищрениями OpenOffice, ведь принцип один и тот же. Но те кому надо, догадаются=)
Ваш способ очень хорош тем, что темплейты можно делать кучей способов. Я показал пост народу - будем смотреть.
Однозначно в избранное.
Спасибо за статью, возможно пригодится...
"Adobe Illustrator, Corel Draw или Inkscape" — только бесплатны? :)
Вы можете использовать только бесплатный Inkscape. А можете, если у вас есть, использовать платные Adobe Illustrator или Corel Draw. As you wish=)
Inkscape уж очень тяжолая штука для сервера, нужны X-сы, насколько помню и пол Gnome что без dedicated-хостинга почти нереально. Потом например под FreeBSD последняя версия собиратся отказывалась, хотя может поправили уже, накосячили с разделяемой быблиотекой уборки мусора.
Попробуйте ReportLAB , всё может быть значительно проще и чище для системы.
У ReportLAB и прочих подобных библиотек есть одно важное различие с предложенным мною вариантом — это необходимость [i]менять код[/i] программы при изменении шаблона. При использовании этого метода все работы с шаблоном можно проводить [i]только в графической среде[/i]. Нужно учитывать, что в некторых областях важны не только затраты системных ресурсов, но и людских. Как я уже говорил, программу работающую по этому методу я создавал для предприятия, затратив минимум времени. При этом очень важно то, что поддержка такой программы в 10 раз проще решения с программируемым шаблоном.
В ReportLAB можна шаблонизировать и код менять не надо но это вопрос религиозный кому как Python нравится.
А насчёт статьи pdf- вы предлагаете генерировать на сервера по запросу пользователя. Значит нужен InkScape + XServer + Gnome и всё это на продакшин сервере и это только для генерации pdf, по моему тот же Batik с Java меньше потянет. Если всё это не будет оправдано очень серйозными аргументами то любой админ на такие поползновения сходу вам выскажет очень неприятные коментарии и будет прав. Хостинг dedicated вынесет никан не меньше 100 баков в месяц для очень большого количества проэктов такое разточительство неоправдано, только если генерация pdf есть killer feature для вашего приложения.
К Python'у я отношусь положительно, но это не имеет никакого отношения к разговору.
Да, именно так. Вы не услышали главного:
Как я уже говорил, программу работающую по этому методу я создавал для предприятия, затратив минимум времени. При этом очень важно то, что поддержка такой программы в 10 раз проще решения с программируемым шаблоном.

Какой хостинг? Это внутренний сервер предприятия. Вы просто мыслите другими категориями. Для вас, все что web — это интернет, но это далеко не так.

И раз уж разговор зашел о ReportLAB, опишите, каким образом в нем создаются шаблоны. Пример, вам нарисовали шаблон в векторном редакторе, как быстро вы сможете его вставить в программу?
> для предприятия
Тогда снимаю все вопросы. Мы просто о разных сферах применения подумали. Для них и требования разные.
О ReportLAB, я изначально не работал з произвольными шаблонами, там были формы где нужно задать Имя, Фамилию, и некоторые данные, а в результате генерировался pdf например с отчётом для налоговой. Будет время найду старые исходники и выложу примеры.
И да, я не против вашего комментария. ReportLAB поистине мощная вещь, затыкающая любые бесплатные средства доступные на PHP. Плюс вам, за упомнинание этой библиотеки в этой теме=))
Ну я думаю должны существовать обёртки или альтернативы этому решению. ReportLAB я упомянул, потому что это то чем пользовался и был удовлетворён качеством, а учитывая BSD лицинзию, цены этому пакету нет. Я не веб-разработчик (личный блог не в счёт), но админю разные системы достаточно времени чтобы видеть серйозные проблемы для production-системы у вашего решения. Хотя учитывая что желающих предложить рецепт альтернативный взгляд на проблему пока нет то новичок по крайней мере будет иметь от чего отталкиваться.
Я не говорю, что это панацея. Это лишь пример решения достаточно частной проблемы. Я думаю, вполне изящное решение, которое может сэкономить чье-нибудь время.
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Спасибо, пригодится
ЗЫ:Эту бы статью да на полгода раньше, когда танцевали с русским языком в PDF. :-(
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории