PDFからテキストを編集するためのPythonスクリプトを作成しています。Pythonを使用してPDFからテキストを消去する方法
私はPDFファイルの特定の位置にテキストを追加することができるこのPythonコードを持っています。
import PyPDF2
import io
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
import sys
packet = io.BytesIO()
# create a new PDF with Reportlab
can = canvas.Canvas(packet, pagesize=letter)
# Insert code into specific position
can.drawString(300, 115, "Hello world")
can.save()
#move to the beginning of the StringIO buffer
packet.seek(0)
new_pdf = PyPDF2.PdfFileReader(packet)
# read your existing PDF
existing_pdf = PyPDF2.PdfFileReader(open("original.pdf", "rb"))
num_pages = existing_pdf.numPages
output = PyPDF2.PdfFileWriter()
# add the "watermark" (which is the new pdf) on the existing page
page = existing_pdf.getPage(num_pages-1) # get the last page of the original pdf
page.mergePage(new_pdf.getPage(0)) # merges my created text with my PDF.
x = existing_pdf.getNumPages()
#add all pages from original pdf into output pdf
for n in range(x):
output.addPage(existing_pdf.getPage(n))
# finally, write "output" to a real file
outputStream = open("output.pdf", "wb")
output.write(outputStream)
outputStream.close()
私の問題:私は私のカスタムテキストと私の元のPDFの特定の位置にテキストを置き換えたいです。空白の文字を書く方法ではこのトリックができますが、これを行うことはできません。
PS:私は後で.EXEファイルとしてこれを配置する必要がありますし、私はPythonのコードを使用していることを行う方法を知っているので、これは、Pythonコードでなければなりません。
私はreportlabを使ってテキストの位置を見つけました。私はそのライブラリを使用したいと思ったものを書きました。私が追加したいテキストは常に同じ位置にあり、タスクをfscilitatesします。私の問題を解決する方法は、reportlabマージ機能を使用してテキストを空白に置き換える方法ですが、私はその方法を知らない –
PyPDF2を使って新しいコンテンツを作成するために使用できるReportlabを混乱させています。既存のPDFを操作するPyPDF2のドキュメントをよく読んでから、既存のコンテンツを削除することはできませんが、その位置にテキストを追加する前に、白い塗りのパスで隠すことができるかもしれません。このルートに行くと、元のテキストが隠れてしまう前に元のテキストが表示されることがあります。テキスト抽出は、そのテキストの元のテキストと新しいテキストの両方を引き出し、おそらく判読できないものと混在させる可能性があります。 –