私は最終的に解決策を見つけました: 結局のところ、thisが正しいアプローチであることが判明しました。 しかし、私はそれが十分に冗長ではないと感じています。 ポスターはおそらくhere(同じ変数名など)から取ったようです。
アイデア:テキスト文字列のみを含むReportlabで新しい空のPDFを作成します。 次に、pyPdfを使用してウォーターマークとしてマージ/追加します。
from pyPdf import PdfFileWriter, PdfFileReader
import StringIO
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
packet = StringIO.StringIO()
# create a new PDF with Reportlab
can = canvas.Canvas(packet, pagesize=letter)
can.drawString(100,100, "Hello world")
can.save()
#move to the beginning of the StringIO buffer
packet.seek(0)
new_pdf = PdfFileReader(packet)
# read your existing PDF
existing_pdf = PdfFileReader(file("mypdf.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("/home/joe/newpdf.pdf", "wb")
output.write(outputStream)
outputStream.close()
これが他の人に役立つと願っています。
テキストファイルを画像ファイルに変換してテキストを書き込んで、ハイブリッド画像/テキスト形式に変換していますか? '.pdf'に注釈をつけたり、' .pdf'フォームに記入する最も良い方法は__no way__です。 – agf
あなたはおそらく正しいでしょう。私はPythonの既存のpdfを修正する適切な方法を見つけることができないようです:/ –
[既存のPDFへのテキストの追加(Pythonを使用したテキストの追加)](http://stackoverflow.com/questions/1180115/add-text-to-existing -pdf-using-python) – bain