Для одного первый пример короче и выглядит более хорошим. Согласно другим сообщениям, что Вы выбираете также, зависит от того, что Вы действительно хотите сделать со сравнением.
Reportlab отлично подходит, если вы создаете очень динамичные PDF-файлы и вам нужно программно управлять всем этим: данными и макетом.
Чтобы просто заполнить формы в существующих PDF-файлах, reportlab слишком много, и вам, по сути, придется перестраивать PDF-файл с нуля в reportlab, а не просто брать PDF-файл с уже созданной формой.
PDF-формы работают с данными FDF . Я портировал библиотеку PHP FDF на Python некоторое время назад, когда мне приходилось это делать, и выпустил ее как fdfgen . Я использую это для создания файла fdf с данными для формы, затем использую pdftk , чтобы поместить fdf в форму PDF и сгенерировать вывод.
Весь процесс работает следующим образом:
Используйте fdfgen для создания файла FDF:
from fdfgen import forge_fdf
fields = [('имя', 'Джон Смит'), ('телефон', '555-1234')]
fdf = forge_fdf ("", поля, [], [], [])
fdf_file = open ("data.fdf", "w")
fdf_file.write (fdf)
fdf_file.close ()
Затем вы запускаете pdftk для объединения и сглаживания:
pdftk form.pdf fill_form data.fdf output output.pdf flatten
и заполненный, сплющенный (что означает, что больше нет редактируемых полей формы) pdf будет в output.pdf.
Это немного сложно, и установка pdftk может быть проблемой (требуется стек java и в Ubuntu 9.10 есть ошибки, которые необходимо обойти), но это самый простой процесс, который мне удалось придумать, и рабочий процесс удобен (то есть наши дизайнеры могут вносить все изменения макета в PDF-файл, который они хотят, и пока они не меняют имена полей, я могу вставить новое, и все будет работать).
Прошу прощения за отсутствие документации по fdfgen. forge_fdf () - единственная функция, которая вам может понадобиться, и у нее есть строки документации для объяснения аргументов. Просто у меня никогда не было времени, чтобы сделать с ним больше.
Попробуйте reportlab .
Также обратите внимание на Вывод PDF-файлов .
У меня была другая мысль (но это не поможет, если у вас уже есть файлы PDF, а мне нравится @ thraxil's ответьте лучше).
Ранее в этом году я работал над проектом, в котором я сгенерировал «сертификаты об окончании» курсов повышения квалификации. Один из аспектов, на который я обратил внимание, - это попытка создать PDF-файл непосредственно из веб-страницы с соответствующим стилем (что-то вроде серверной "
Идея состоит в том, что вы используете механизм шаблонов django, чтобы собрать страницу, содержащую все, что вы хотите (включая изображения), передать ее URL-адрес в wkhtmltopdf, получить результат и вернуть его пользователю.
Мне понравился этот подход, потому что он действительно прост в реализации (просто откройте канал), вам не нужно беспокоиться о том, чтобы исходные файлы PDF оставались доступными для сервера, и вы можете перепроектировать файлы PDF, изменив HTML.
Идея состоит в том, что вы используете механизм шаблонов django, чтобы собрать страницу, содержащую все, что вы хотите (включая изображения), передать ее URL-адрес в wkhtmltopdf, получить результат и вернуть его пользователю.
Мне понравился этот подход, потому что он действительно прост в реализации (просто откройте канал), вам не нужно беспокоиться о том, чтобы исходные файлы PDF оставались доступными для сервера, и вы можете перепроектировать файлы PDF, изменив HTML.
и вы можете изменить дизайн PDF-файлов, изменив HTML. и вы можете изменить дизайн PDF-файлов, изменив HTML.