ホームページ  >  記事  >  バックエンド開発  >  Python を使用して既存の PDF に追加のテキストをオーバーレイする方法

Python を使用して既存の PDF に追加のテキストをオーバーレイする方法

Barbara Streisand
Barbara Streisandオリジナル
2024-10-22 14:41:23272ブラウズ

How to Overlay Additional Text onto Existing PDFs using Python?

Python を使用して既存の PDF にテキストを追加する

PyPDF と ReportLab は PDF を作成および操作できますが、次の点に関しては不十分です。既存のものを編集します。別のアプローチを検討してみましょう。

既存の PDF に追加のテキストをオーバーレイするために、Python では PyPDF2 モジュールと reportlab モジュールの組み合わせが提供されています。 PyPDF2 は元のドキュメントからページを抽出する機能を提供し、reportlab では新しいテキスト コンテンツを生成できます。

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>

Python 3.x の場合場合は、次の同様のアプローチを使用します:

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

以上がPython を使用して既存の PDF に追加のテキストをオーバーレイする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。