Bei der Arbeit mit PDF-Dokumenten kommt es häufig vor, dass zusätzlicher Text hinzugefügt werden muss. Dies kann von einfachen Anmerkungen bis hin zu komplexen Wasserzeichen reichen. Da es keine integrierte Python-Bibliothek zum Bearbeiten von PDFs gibt, müssen externe Module eingesetzt werden, um diese Funktionalität zu erreichen.
PyPDF und ReportLab sind zwei beliebte Optionen zum Bearbeiten von PDFs in Python . Allerdings bietet keines dieser Module eine direkte Unterstützung für die Bearbeitung bestehender PDF-Dateien. Sie werden hauptsächlich zum Erstellen neuer PDFs mit benutzerdefinierten Inhalten verwendet.
Um Text zu einem vorhandenen PDF hinzuzufügen, kann eine Kombination aus PyPDF und ReportLab verwendet werden. Hier ist ein detailliertes Beispiel, das sowohl unter Windows als auch unter Linux funktioniert:
Python 2.7:
<code class="python">from pyPdf import PdfFileWriter, PdfFileReader import StringIO from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import letter packet = StringIO.StringIO() can = canvas.Canvas(packet, pagesize=letter) can.drawString(10, 100, "Hello world") can.save() # move to the beginning of the StringIO buffer packet.seek(0) # create a new PDF with Reportlab new_pdf = PdfFileReader(packet) # read your existing PDF existing_pdf = PdfFileReader(file("original.pdf", "rb")) output = PdfFileWriter() # add the "watermark" (which is the new pdf) on the existing page page = existing_pdf.getPage(0) page.mergePage(new_pdf.getPage(0)) output.addPage(page) # finally, write "output" to a real file outputStream = file("destination.pdf", "wb") output.write(outputStream) outputStream.close()</code>
Python 3 .x:
<code class="python">from PyPDF2 import PdfFileWriter, PdfFileReader import io from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import letter packet = io.BytesIO() can = canvas.Canvas(packet, pagesize=letter) can.drawString(10, 100, "Hello world") can.save() # move to the beginning of the StringIO buffer packet.seek(0) # create a new PDF with Reportlab new_pdf = PdfFileReader(packet) # read your existing PDF existing_pdf = PdfFileReader(open("original.pdf", "rb")) output = PdfFileWriter() # add the "watermark" (which is the new pdf) on the existing page page = existing_pdf.pages[0] page.merge_page(new_pdf.pages[0]) output.add_page(page) # finally, write "output" to a real file output_stream = open("destination.pdf", "wb") output.write(output_stream) output_stream.close()</code>
Diese Lösung kombiniert effektiv die Flexibilität von ReportLab zum Erstellen von Wasserzeichentext mit den Seitenbearbeitungsfunktionen von PyPDF.
Das obige ist der detaillierte Inhalt vonWie füge ich mit Python und externen Modulen Text zu vorhandenem PDF hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!