Ich weiß, dass dies ein älterer Beitrag ist, aber ich habe lange versucht, eine Lösung zu finden. Ich bin auf einen anständigen gestoßen, der nur ReportLab und PyPDF verwendet, also dachte ich, ich würde teilen:
- Lesen Sie Ihr PDF mit
PdfFileReader()
, wir nennen diese Eingabe
- Erstellen Sie ein neues PDF mit Ihrem Text, das Sie mit ReportLab hinzufügen möchten, und speichern Sie dieses als Zeichenfolgenobjekt
- Lesen Sie das String-Objekt mit
PdfFileReader()
, wir nennen diesen Text
- Erstellen Sie ein neues PDF-Objekt mit
PdfFileWriter()
, wir nennen diese Ausgabe
- Durchlaufen Sie die Eingabe und wenden Sie sie
.mergePage(*text*.getPage(0))
für jede Seite an, zu der der Text hinzugefügt werden soll. Verwenden Sie dann diese Option output.addPage()
, um die geänderten Seiten einem neuen Dokument hinzuzufügen
Dies funktioniert gut für einfache Textzusätze. Informationen zum Wasserzeichen eines Dokuments finden Sie im PyPDF-Beispiel.
Hier ist ein Code zur Beantwortung der folgenden Frage:
packet = StringIO.StringIO()
can = canvas.Canvas(packet, pagesize=letter)
<do something with canvas>
can.save()
packet.seek(0)
input = PdfFileReader(packet)
Von hier aus können Sie die Seiten der Eingabedatei mit einem anderen Dokument zusammenführen.
Beispiel für [Python 2.7]:
Beispiel für Python 3.x:
quelle
io.BytesIO
und PyPDF2 anstelle von pyPDF (das nicht verwaltet wird) verwenden. Gute Antwort!open
anstatt zu verwendenfile
.existing_pdf
nach zu kopierenoutput
, der Beispielcode einfach nicht.Mit pdfrw können Sie Seiten aus einer vorhandenen PDF-Datei einlesen und auf eine Reportlab-Leinwand zeichnen (ähnlich wie beim Zeichnen eines Bildes). Beispiele hierfür finden Sie im Unterverzeichnis pdfrw examples / rl1 auf github. Haftungsausschluss: Ich bin der pdfrw-Autor.
quelle
Nutzung David Dehghan ‚s Antwort oben die folgenden Arbeiten in Python 2.7.13:
quelle
cpdf erledigt den Job über die Kommandozeile. Es ist jedoch keine Python (afaik):
quelle
Möglicherweise haben Sie mehr Glück, wenn Sie das Problem in die Konvertierung von PDF in ein bearbeitbares Format zerlegen, Ihre Änderungen schreiben und dann wieder in PDF konvertieren. Ich kenne keine Bibliothek, mit der Sie PDF direkt bearbeiten können, aber es gibt zum Beispiel viele Konverter zwischen DOC und PDF.
quelle
Wenn Sie unter Windows arbeiten, funktioniert dies möglicherweise:
PDF Creator Pilot
Es gibt auch ein Whitepaper eines PDF-Frameworks zum Erstellen und Bearbeiten in Python. Es ist etwas veraltet, kann Ihnen aber möglicherweise nützliche Informationen geben:
Verwenden von Python als PDF-Bearbeitungs- und Verarbeitungs-Framework
quelle
Haben Sie pyPdf ausprobiert ?
Der Inhalt einer Seite kann leider nicht geändert werden.
quelle