Комментарии 29
Для чего-то не сложнее Заявления — да. Но ту же Форму 21001 она полностью гробит. Я решил не плодить зоопарк.
Да, Pisa отличная штука, мы ей печатаем вот такие инвойсы, совмещенные с трекингом и таможенными формами CN22 на одном листе самоклейки. Сделали за 3 часа примерно. Просто конвертируется HTML-ка, картинки и шрифты все подключаются автоматом. Никаких особых подводных камней не было замечено.
Дело в том, что при отладке шаблона я пишу html, тут же _одинаково_ вижу его в FireFox и любом webkit-браузере (да, можно достичь и такого) — при этом в конечный PDF рендерится так, как видно при отладке. Даже print preview из FireFox дает практически конечный результат.
А PISA рендерит совершенно по-своему. Сиречь — отладка шаблона замедляется в разы.
Ну и насчет page-break я не сильно уверен — кажется, не ловит. Могу и ошибаться.
А PISA рендерит совершенно по-своему. Сиречь — отладка шаблона замедляется в разы.
Ну и насчет page-break я не сильно уверен — кажется, не ловит. Могу и ошибаться.
Возможно, какие-то особо сложные конструкции она рендерит по-своему. Я задавал размер странице и дальше все размеры, включая шрифты, в мм, ширины ячеек таблицы в процентах. Сделал подобие reset.css, чтобы задать умолчания. Дальше были проблемы только с размером картинок, их пришлось подогнать вручную. Если у вас получился идеальный рендеринг, то это отлично.
А TeX не рассматривали? Вроде бы, наиболее простой и удобный вариант.
Я бы посоветовал, использовать например pdfcrowd.com/.
Это сервис использует Prince ( www.princexml.com/ ), стоимость которого начинается от $3800. Прекрасен он тем, что умеет рендерить практически любой html, таким образом сверстать на twitter-bootstrap страничку пару пустяков, а получить еще и pdf еще проще. Заметьте, все это при минимальном количестве кода — значит не упадет.
Это сервис использует Prince ( www.princexml.com/ ), стоимость которого начинается от $3800. Прекрасен он тем, что умеет рендерить практически любой html, таким образом сверстать на twitter-bootstrap страничку пару пустяков, а получить еще и pdf еще проще. Заметьте, все это при минимальном количестве кода — значит не упадет.
Два дня назад решал похожую проблему. Остановился на mPDF, он умеет конвертировать html в pdf, при этом написан полностью на php. Для предпросмотра может не подойти, так как его понимание html отличается от понимания браузеров, но добиться хорошего результата для мягких форм вполне можно.
Вот еще есть github.com/NetAngels/django-webodt
Относится к категории «LibreOffice демон:… или свой велосипед».
Кстати, можно посмотреть сразу доку packages.python.org/django-webodt/, чтобы понять на сколько красивая штука
wkhtmltopdf же. Наверняка к нему есть питоновский интерфейс.
Я использую с своем проекте trml2pdf от reportlab. Со временем разобрался в особенностях rml и дело пошло как по маслу.
Для рендера использую django шаблонизатор, и функцию подсмотренную где то на сайте RL.
Вызывается на подобие django.shortcuts.render типа так, это дает возможность использовать всю мощь шаблонов джанго и языка rml.
Для рендера использую django шаблонизатор, и функцию подсмотренную где то на сайте RL.
Вызывается на подобие django.shortcuts.render типа так, это дает возможность использовать всю мощь шаблонов джанго и языка rml.
Не поддерживает многие фичи RML. Нет preview. Нет визуального редактора.
Читайте внимательнее, пожалуйста.
Читайте внимательнее, пожалуйста.
Похоже — в QWebView 4.8 (или webkit 2.2 вообще?) поломалось page-break-*. ПО крайней мере — webkit-браузеры (кроме Chromium, что поняно) печатают без единого разрыва.
Ждем пачей — тогда проблема с html будет решена окончательно.
Ждем пачей — тогда проблема с html будет решена окончательно.
Резюме: Красивая печать в PDF из Django — это миф.
Тоже голову ломал в своё время…
Тоже голову ломал в своё время…
Ну почему же… Вы можете наблюдать реальное приложение с таки достаточно красивыми PDF (налоговой и ФМС нравится, по крайней мере).
Другой вопрос что сейчас это решается чуть-чуть некрасиво — через вызов внешних программ.
До нативного python осталось совсем немного:
* допилить webkit
* и допилить poppler
Другой вопрос что сейчас это решается чуть-чуть некрасиво — через вызов внешних программ.
До нативного python осталось совсем немного:
* допилить webkit
* и допилить poppler
>Резюме: Красивая печать в PDF из Django — это миф.
«Мы рождены, чтоб сказку сделать былью» ;)
«Мы рождены, чтоб сказку сделать былью» ;)
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Красивая печать в PDF из Django