2009-03-23 2 views
5

Я использую toollit reportlab в Python для создания отчетов в формате PDF. Я хочу использовать некоторые предопределенные части документов, уже опубликованных в формате PDF, которые будут включены в сгенерированный PDF-файл. Возможно ли (и как) выполнить это в reportlab или в библиотеке python?Как включить страницу в PDF в PDF-документе в Python

Я знаю, что могу использовать некоторые другие инструменты, такие как PDF Toolkit (pdftk), но я ищу решение на основе Python.

ответ

6

В настоящее время я использую PyPDF, чтобы читать, писать и комбинировать существующие PDF и ReportLab для создания нового контента. Использование двух пакетов, казалось, работало лучше, чем любой отдельный пакет, который я смог найти.

+0

Да, мне нравится этот пакет. Первый пример - это то, что я хочу, я попробую. – Jiri

1

Существует надстройка для ReportLab — PageCatcher.

+0

Хорошо, это кажется правильным инструментом. К сожалению, это в коммерческой версии инструментария reportlab, и я не могу использовать его напрямую - я использую версию с открытым исходным кодом. И нет никакой цены - похоже, мне нужно обсудить некоторую цену с reportlab перед загрузкой. – Jiri

2

Если вы хотите разместить существующие страницы PDF в своих отчетах Reportlab, я рекомендую pdfrw. В отличие от PageCatcher это бесплатно.

Я использовал его для нескольких проектов, где мне нужно добавить штрих-коды и т. Д. К существующим документам, и это работает очень хорошо. Есть пара examples на странице проекта о том, как использовать ее с Reportlab.

Пару вещей отметить, хотя:

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

Кроме того, pdfrw работает, будучи полностью агностическим для фактического содержимого страницы PDF, которую вы размещаете. Например, вы не сможете использовать pdfrw для проверки страницы, чтобы увидеть, содержит ли она определенную строку текста в правом нижнем углу. Однако если вы не делаете, вам нужно сделать что-нибудь подобное, все должно быть в порядке.

Смежные вопросы