2009-02-03 76 views
5

pyPdf是一個偉大的庫分裂,合併PDF文件。 我正在使用它將pdf文檔分成1頁文檔。 pyPdf是純粹的python,並且在保存提取頁面時,在PdfFileWriter對象的_sweepIndirectReferences()方法中花費了大量時間。我需要更好的表現。我試過使用多線程,但由於大部分時間都用在python代碼中,因爲GIL(它實際上運行速度較慢)沒有速度增益。快速PDF分割器庫

是否有任何用c編寫的庫提供相同的功能?或沒有人有一個好主意,如何提高性能(除了產生一個新的過程,我想分裂每個PDF文件)

在此先感謝您。

跟進。 鏈接到一對夫婦的命令行的解決方案,能夠證明有時比pyPDF快:

我修改pyPDF PdfWriter類跟蹤多少時間已經花在_sweepIndirectReferences()方法上。如果它太長了(現在我使用3秒的魔法值),那麼我通過從python調用它來恢復使用ghostscript。

感謝您的答案。 (codelogic的xpdf引用是讓我尋找不同的方法的那個)

回答

3

mbtPdfAsm是一款用於PDF處理的快速開源命令行工具。

Xpdf也值得一提,因爲它是GPL並用C++編寫。源代碼很好模塊化,並允許編寫命令行工具。

+0

我需要反彙編pdf。如果我理解正確mbtPdfAsm彙編pdfs。 – Nathan 2009-02-03 19:07:03

+0

它可以用於組裝和拆卸PDF文件。 – codelogic 2009-02-03 19:26:33

1

pdfLaTex可以做很多PDF管理,並且是非常快

我已經將它用於一些相當複雜的拼版worflows。 TeX語言與編程非常相似,但編寫一個生成所需LaTex佈局並對其進行處理的python腳本很容易。

1

您是否嘗試過使用Psyco與pyPdf?

2

它必須是python嗎?我的純Perl庫CAM::PDF在追加和刪除PDF文檔頁面上速度非常快。在可能的情況下,它可以最大限度地節省清掃工作。