Maison  >  Article  >  développement back-end  >  Comment ajouter du texte à des PDF existants à l'aide de Python ?

Comment ajouter du texte à des PDF existants à l'aide de Python ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-22 14:56:02690parcourir

How to Add Text to Existing PDFs Using Python?

Ajouter du texte à un PDF existant à l'aide de Python

Arrière-plan :

Souvent, vous devrez peut-être ajouter du texte supplémentaire à un document PDF existant. Heureusement, Python propose plusieurs modules qui simplifient cette tâche. Cependant, il est important d'identifier les modules compatibles avec les systèmes Windows et Linux.

Module recommandé :

Après avoir examiné diverses options, deux modules appropriés sont PyPDF2 et Python. Ces modules offrent un haut niveau de fonctionnalités et une prise en charge multiplateforme.

Exemples de code :

Vous trouverez ci-dessous des exemples de code pour Python 2.7 et Python 3. x :

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.addPage(page)
# Finally, write "output" to a real file
output_stream = open("destination.pdf", "wb")
output.write(output_stream)
output_stream.close()</code>

Ces exemples de code ajouteront le texte « Bonjour tout le monde » à la première page du fichier PDF existant et enregistreront le résultat dans un nouveau fichier PDF. Vous pouvez personnaliser le texte et la position en conséquence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn