Frage

pyPdf ist eine große Bibliothek zu teilen, PDF-Dateien zusammenführen. Ich verwende es pdf-Dokumente in 1 Seite Dokumente zu teilen. pyPdf ist reiner Python und verbringt sehr viel Zeit in der _sweepIndirectReferences () -Methode des PdfFileWriter Objekts, wenn die extrahierte Seite zu speichern. Ich brauche etwas mit einer besseren Leistung. Ich habe versucht, Multi-Threading verwenden, aber da die meiste Zeit in Python-Code ausgegeben wird, gab es keinen Geschwindigkeitsgewinn wegen der GIL (es lief eigentlich langsamer).

Gibt es eine Bibliothek in C geschrieben, die die gleiche Funktionalität bietet? oder hat jemand eine gute Idee, wie die Leistung zu verbessern (anders als einen neuen Prozess für jede PDF-Datei Laichen, die ich teilen mag)

Vielen Dank im Voraus.

Follow-up. Links zu ein paar Kommandozeilen-Lösungen, die nachweisen können, manchmal schneller als pyPDF:

I modifizierte pyPDF PDFWriter Klasse, um zu verfolgen, wie viel Zeit auf den _sweepIndirectReferences () -Methode ausgegeben. Wenn es zu lange war (jetzt verwende ich den magischen Wert von 3 Sekunden) dann zurückkehren ich ghost zur Verwendung durch einen Anruf, um es von Python zu machen.

Vielen Dank für Ihre Antworten. (Codelogic des xpdf Referenz ist derjenige, der mich für einen anderen Ansatz aussehen)

War es hilfreich?

Lösung

mbtPdfAsm ist ein schnelles, Open-Source-Kommandozeilen-Tool für PDF-Verarbeitung.

Xpdf ist auch erwähnenswert, da es in C GPL und geschrieben ist ++. Der Quellcode ist gut modularisiert und ermöglicht Kommandozeilen-Tools zu schreiben.

Andere Tipps

Hat es Python sein? Meine rein Perl-Bibliothek CAM :: PDF ist schnell ziemlich an anhängt und PDF Löschen Dokumentseiten. Es speichert das Fegen für das Ende, wo möglich.

pdfLaTeX kann eine Menge von PDF-Verwaltung tun und ist sehr schnell.

Ich habe es für einige ziemlich komplexe Auferlegung worflows verwendet. die TeX Sprache ist wirklich fremd Programmierung, aber es ist einfach ein Python-Skript zu schreiben, die die benötigte LaTex Layout und verarbeitet sie erzeugt.

Haben Sie versucht, mit Psyco mit pyPdf?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top