Heim > Backend-Entwicklung > Python-Tutorial > Wie füge ich mit Python und externen Modulen Text zu vorhandenem PDF hinzu?

Wie füge ich mit Python und externen Modulen Text zu vorhandenem PDF hinzu?

DDD
Freigeben: 2024-10-22 15:30:03
Original
372 Leute haben es durchsucht

How to add text to existing PDF using Python and External Modules?

Mit Python Text zu vorhandenem PDF hinzufügen

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

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.

Kombination von PyPDF und ReportLab

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:

Beispielcode:

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage