Python と外部モジュールを使用して既存の PDF にテキストを追加するにはどうすればよいですか?

DDD
リリース: 2024-10-22 15:30:03
オリジナル
253 人が閲覧しました

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

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

PDF ドキュメントを操作する場合、追加のテキストを追加する必要があることがよくあります。これは、単純な注釈から複雑な透かしまで多岐にわたります。 PDF を編集するための組み込みの Python ライブラリがないため、この機能を実現するには外部モジュールを使用する必要があります。

PyPDF と ReportLab

PyPDF と ReportLab は、Python で PDF を操作するための 2 つの一般的なオプションです。 。ただし、これらのモジュールはいずれも、既存の PDF ファイルの編集を直接サポートしません。これらは主に、カスタム コンテンツを含む新しい PDF を作成するために使用されます。

PyPDF と ReportLab の組み合わせ

既存の PDF にテキストを追加するには、PyPDF と ReportLab を組み合わせて使用​​できます。 Windows と Linux の両方で動作する詳細な例を次に示します。

サンプル コード:

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.add_page(page)
# finally, write "output" to a real file
output_stream = open("destination.pdf", "wb")
output.write(output_stream)
output_stream.close()</code>
ログイン後にコピー

このソリューションは、透かしテキストを作成する ReportLab の柔軟性と PyPDF のページ操作機能を効果的に組み合わせています。

以上がPython と外部モジュールを使用して既存の PDF にテキストを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!