JawsIk
@JawsIk
Python Django, Lua, ЧПУ-станки(ArtCam, Aspire)

Как на python делать платёжные бланки в pdf?

Всем доброго времени.
Делаю проекты на Django и временами заказчики ставят задачи, которые, способами которые я уже владею, делать крайне тяжело.

Как я работаю в pdf сейчас и что делаю.
  • Из каталога изделия делается прайс в pdf
  • Делаются бланки заказов с перечнем изделий, их количеством и суммой в конце

Для создания вышеперечисленного сделаны простецкие шаблоны HTML на основе таблиц и очень долго и геморно делались css стили для печати. Сгенерировано миллион тестовых файлов и распечатаны сотни бумажных вариантов. Для генерации PDF использую батарейку weasyprint, которой скармливаю отрендеренный HTML шаблон и CSS для печати. В итоге выглядит сносно, а заказчика устраивает результат и все довольны.

Но теперь пришла задача, что нужно взять целую группу разных бланков, заполнить их данными и на выходе отдать всё тот же PDF. Идти по тому пути, который описал выше не получается, т.к. бланки должны быть такими, какие предоставил заказчик.

Рисовать в HTML для меня тяжко и это будет крайне долго. А писать для всего этого ещё и css print ну вообще тяжело. Опять же, если вдруг что-то поменяется, или принесут ещё какой-то бланк, то это ну дикость всё перерисовывать и тестировать заново.

Бланки кстати предоставили в обычном Word (docx) формате и из ворда их можно сохранить во много разных форматов.

Кто нибудь уже выполнял вот именно такую задачу? Чтобы заполнять конкретный бланк данными и выводить их в PDF?

Как вижу это я.
  1. В бланке (в ворде) вписываю некоторые "маяки".
  2. Сохраняю бланки в какой-то хитрый формат, файл которого...
  3. Открываю питоном и найдя, оставленные маяки, заменяю их нужными данными
  4. Сохраняю новый свеже-свёрстанный файл бланка всё в том же хитром формате
  5. Генерирую при помощи чего-то из файла в хитром формате, готовый PDF, в котором бланк выглядит чётко как в оригинале.


Соответственно вопросы:
В каком таком формате можно сохранить, чтобы это дело можно было открыть для замены данных и при этом в этом же файле сохранялось эталонное форматирование бланка?

При помощи какого расширения всё это можно конвертнуть в PDF?

p.s. под python2 батарейки не предлагайте пожалуйста.
  • Вопрос задан
  • 482 просмотра
Пригласить эксперта
Ответы на вопрос 2
В LibreOffice есть headless режим. Он может конвертить в PDF.

Более того, им можно управлять из питоновских скриптов. А это значит, что можно править не исходный код в XML, а делать замену текста "якорей" в самой программе.
Ответ написан
milssky
@milssky
Координатор племени фиолетовых обезьянок
LaTeX рассматривался как вариант?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы