Heim >Backend-Entwicklung >Python-Tutorial >Wie überlagere ich mit Python zusätzlichen Text in vorhandene PDFs?

Wie überlagere ich mit Python zusätzlichen Text in vorhandene PDFs?

Barbara Streisand
Barbara StreisandOriginal
2024-10-22 14:41:23352Durchsuche

How to Overlay Additional Text onto Existing PDFs using Python?

Hinzufügen von Text zu vorhandenen PDFs mit Python

PyPDF und ReportLab sind in der Lage, PDFs zu erstellen und zu bearbeiten, aber sie sind in dieser Hinsicht unzureichend Bearbeiten vorhandener. Lassen Sie uns einen alternativen Ansatz erkunden.

Um zusätzlichen Text über ein vorhandenes PDF zu legen, bietet Python eine Kombination aus den Modulen PyPDF2 und Reportlab. PyPDF2 bietet die Funktionalität zum Extrahieren von Seiten aus dem Originaldokument, während Reportlab es uns ermöglicht, neue Textinhalte zu generieren.

Hier ist ein detailliertes Beispiel in Python 2.7:

<code class="python">import StringIO
from pyPdf import PdfFileWriter, PdfFileReader
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter

# Create a new PDF with the additional text
buffer = StringIO.StringIO()
canvas = canvas.Canvas(buffer, pagesize=letter)
canvas.drawString(10, 100, "Hello world")
canvas.save()

new_pdf = PdfFileReader(buffer)
buffer.seek(0)

# Read the existing PDF
existing_pdf = PdfFileReader(open("original.pdf", "rb"))
output = PdfFileWriter()

# Merge the new text onto the existing pages
page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(0))
output.addPage(page)

# Save the updated PDF
outputStream = open("destination.pdf", "wb")
output.write(outputStream)
outputStream.close()</code>

Für Python 3.x , verwenden Sie diesen ähnlichen Ansatz:

<code class="python">from PyPDF2 import PdfFileWriter, PdfFileReader
import io
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter

buffer = io.BytesIO()
canvas = canvas.Canvas(buffer, pagesize=letter)
canvas.drawString(10, 100, "Hello world")
canvas.save()

new_pdf = PdfFileReader(buffer)
buffer.seek(0)

existing_pdf = PdfFileReader(open("original.pdf", "rb"))
output = PdfFileWriter()

page = existing_pdf.pages[0]
page.merge_page(new_pdf.pages[0])
output.add_page(page)

output_stream = open("destination.pdf", "wb")
output.write(output_stream)
output_stream.close()</code>

Das obige ist der detaillierte Inhalt vonWie überlagere ich mit Python zusätzlichen Text in vorhandene PDFs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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