2009-02-03 73 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文档页面上速度非常快。在可能的情况下,它可以最大限度地节省清扫工作。