通过 Python 将文本添加到 PDF

Adding Text to a PDF via Python

现在我正在尝试使用 PyPDF2 自动完成文档填写过程。我查看了所有文档和一些 Whosebug 帖子,但我看到的基本上是相同的示例代码,但它并没有引导我到任何地方。现在代码只是复制 basePDF 文件并将文本添加到刚刚复制的新文件中。但是在尝试添加文本并将其保存到新文件时,它只是清除所有内容并使其成为带有“Hello World”的空白 PDF。如何在不清除所有内容的情况下保留原始模板 新文本?

我的代码:

from PyPDF2 import PdfFileWriter, PdfFileReader
import io
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
from shutil import copyfile
copyfile("basePDF.pdf", "newPDF.pdf")

open("newPDF.pdf")

#PyPDF2 Defines
packet = io.BytesIO()

## Read existing PDF
can = canvas.Canvas("newPDF.pdf")
can.setFont("Courier", 16)

can.drawString(10, 100, "Hello world")
can.drawString(0, -10, "Hello world")
can.drawString(10, -100, "Hello world")
can.save()
#Text get's saved but now its a blank PDF with "Hello World"

提前致谢!

按照已经提到的方法尝试这个here

from PyPDF2 import PdfFileWriter, PdfFileReader
import io
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter

copyfile("newPDF.pdf", "basePDF.pdf")

packet = io.BytesIO()

# do whatever writing you want to do
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)
new_pdf = PdfFileReader(packet)
# read your existing PDF
existing_pdf = PdfFileReader(open("basePDF.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 = open("destination.pdf", "wb")
output.write(outputStream)
outputStream.close()