2010-02-14 5 views
4

Я хочу автоматически создавать подтверждение бронирования PDF-файлов в Python. Большая часть контента будет статичной (т. Е. Логотипы, условия бронирования, номера телефонов), с несколькими динамическими битами (даты, затраты и т. Д.).Создание и слияние PDF-файлов в Python

Со стороны пользователя самым простым способом было бы начать с файла PDF со статическим содержимым, а затем с помощью python просто добавить динамические части. Это простой процесс?

Из-за небольшого поиска кажется, что я могу использовать reportlab для создания контента и pyPdf для объединения PDF вместе. Это лучший подход? Или есть действительно напуганный способ, с которым я еще не сталкивался?

Спасибо!

ответ

8

со стороны пользователя, самый простой способ сделать это было бы начать с файл PDF со статическим содержимым, а затем с помощью python просто добавить динамические части. Это простой процесс?

К сожалению, нет. Есть несколько инструментов, которые хороши при создании PDF-файлов с нуля (чаще всего для Python, ReportLab), но обычно они не загружают существующие PDF-файлы. Вам нужно будет включить код генерации для любого текстового текста, строк, блоков, фигур и изображений, а не для свободного редактирования пользователем.

С другой стороны есть pyPdf, который может загружать PDF-файлы, сортировать страницы и извлекать часть информации, но не может реально добавлять новый контент. Вы можете «объединить» страницы в один, но вам все равно придется создавать дополнительный оверлей информации в качестве страницы в ReportLab.

+0

Спасибо, я пойду с этим :-) Это означает, что пользователи могут легко создавать PDF так или иначе, как они хотят в качестве базы. – Humphrey

+2

, если вы используете SpooledTemporaryFile, вы можете создавать файлы reportlab в памяти, а затем добавлять их в файл master pdf с pyPdf. –

1

Вы можете сгенерировать документ с помощью, например, TeX или OpenOffice, или что угодно, что даст вам наиболее удобные привязки, а затем распечатает документ с помощью PDF-принтера.

Это позволяет вам не определять, где точно поместить поля, или выяснить, что делать, если ваш контент переполняет пространство, выделенное для него.

2

Посмотрите на docutils и перестройте текст. Вы можете быстро выписать свой PDF-документ в reST, а затем скомпилировать PDF с помощью rst2pdf.py

Я использовал это, он создает очень красивые документы, а разметка расширяема! Позже вы можете взять тот же код и запустить его в rst2html, чтобы создать сайт, если он!

Посмотрите здесь:

удачи