Menambah Teks pada PDF Sedia Ada dengan Python
PyPDF dan ReportLab mampu mencipta dan memanipulasi PDF, tetapi mereka gagal dalam hal menyunting yang sedia ada. Mari kita teroka pendekatan alternatif.
Untuk menindih teks tambahan pada PDF sedia ada, Python menawarkan gabungan modul PyPDF2 dan reportlab. PyPDF2 menyediakan fungsi untuk mengekstrak halaman daripada dokumen asal, manakala reportlab membolehkan kami menjana kandungan teks baharu.
Berikut ialah contoh terperinci dalam 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>
Untuk Python 3.x , gunakan pendekatan serupa ini:
<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>
Atas ialah kandungan terperinci Bagaimana untuk Melapisi Teks Tambahan ke PDF Sedia Ada menggunakan Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!