Вопрос

pyPdf — отличная библиотека для разделения и объединения PDF-файлов.Я использую его для разделения PDF-документов на одностраничные документы.pyPdf — это чистый Python, и он тратит довольно много времени в методе _sweepIndirectReferences() объекта PdfFileWriter при сохранении извлеченной страницы.Мне нужно что-то с большей производительностью.Я пробовал использовать многопоточность, но поскольку большая часть времени тратится на код Python, прироста скорости не было из-за GIL (на самом деле он работал медленнее).

Есть ли какая-нибудь библиотека, написанная на c, которая обеспечивает ту же функциональность?или есть ли у кого-нибудь хорошая идея, как повысить производительность (кроме создания нового процесса для каждого PDF-файла, который я хочу разделить)

Заранее спасибо.

Следовать за.Ссылки на пару решений для командной строки, которые иногда могут оказаться быстрее, чем pyPDF:

Я изменил класс pyPDF PdfWriter, чтобы отслеживать, сколько времени было потрачено на метод _sweepIndirectReferences().Если прошло слишком много времени (сейчас я использую магическое значение в 3 секунды), я возвращаюсь к использованию Ghostscript, вызывая его из Python.

Спасибо за все ваши ответы.(ссылка на xpdf codelogic заставила меня искать другой подход)

Это было полезно?

Решение

mbtPdfAsm — это быстрый инструмент командной строки с открытым исходным кодом для обработки PDF-файлов.

Xpdf также стоит упомянуть, поскольку он находится под лицензией GPL и написан на C++.Исходный код хорошо модульен и позволяет писать инструменты командной строки.

Другие советы

Это обязательно должен быть питон?Моя библиотека на чистом Perl КАМ::PDF довольно быстро добавляет и удаляет страницы PDF-документа.Это позволяет приберечь подметание до самого конца, где это возможно.

pdfLaTex может выполнять большую работу по управлению PDF-файлами и очень быстрый.

я использовал его для некоторых довольно сложных рабочих процессов наложения.язык TeX действительно чужд программированию, но написать скрипт на Python, который генерирует нужную LaTex-разметку и обрабатывает ее, несложно.

Вы пробовали использовать Псико с pyPDF?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top