2009-02-03 19 views
5

pyPdf es una gran biblioteca para dividir, combinar archivos PDF. Lo estoy usando para dividir documentos pdf en documentos de 1 página. pyPdf es python puro y pasa bastante tiempo en el método _sweepIndirectReferences() del objeto PdfFileWriter al guardar la página extraída. Necesito algo con un mejor rendimiento. He intentado usar multi-threading pero dado que la mayor parte del tiempo lo paso en código python, no hubo ganancia de velocidad debido al GIL (en realidad, se ejecutó más despacio).Biblioteca de divisor de PDF rápido

¿Hay alguna biblioteca escrita en c que proporcione la misma funcionalidad? o alguien tiene una buena idea sobre cómo mejorar el rendimiento (aparte de generar un nuevo proceso para cada archivo pdf que quiero dividir)

Gracias de antemano.

Seguimiento. Los enlaces a un par de soluciones de línea de comandos, que pueden resultar a veces más rápido que pyPDF:

modifiqué clase pyPDF PDFWriter para realizar un seguimiento de cuánto tiempo se ha gastado en el método _sweepIndirectReferences(). Si ha sido demasiado largo (ahora uso el valor mágico de 3 segundos), entonces vuelvo a usar ghostscript llamándolo desde python.

Gracias por todas sus respuestas. (La referencia xpdf de codelogic es la que me hizo buscar un enfoque diferente)

Respuesta

3

mbtPdfAsm es una herramienta rápida y de código abierto para el procesamiento de PDF.

Xpdf también vale la pena mencionar ya que es GPL y está escrito en C++. El código fuente está bien modularizado y permite escribir herramientas de línea de comando.

+0

Necesito desmontar el pdf. Si entiendo correctamente mbtPdfAsm ensambla pdfs. – Nathan

+0

Se puede usar para ensamblar y desmontar pdfs. – codelogic

1

pdfLaTex puede hacer una gran cantidad de administración de PDF y es muy rápido.

lo he usado para algunos worflows de imposición bastante complejos. el lenguaje TeX es realmente ajeno a la programación, pero es fácil escribir un script de python que genere el diseño de LaTex necesario y lo procese.

1

¿Ha intentado utilizar Psyco con pyPdf?

+0

psyco no está disponible en mi instalación ubuntu de 64 bits – Nathan

2

¿Tiene que ser python? Mi biblioteca Perl pura CAM::PDF es bastante rápida para agregar y eliminar páginas de documentos PDF. Guarda el barrido para el final, siempre que sea posible.

Cuestiones relacionadas