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 サイトの他の関連記事を参照してください。