在Python中合并背景图像上的不同文本的问题,如PDF中的多个页面。[Python] [PyPDF2] [Reportlab]

时间:2018-02-05 18:56:02

标签: python pdf reportlab pypdf2

page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(0))
output.addPage(page)
page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(1))
output.addPage(page)

此处existing_pdf是pdf格式的背景图片,将以不同方式合并 PDF仅包含文字。

我的目标是让一个大型PDF包含多个页面,这些页面具有相同的背景,但文本不同。

一个典型的例子是给出格式(背景)的表格,然后为不同的用户填写该格式(背景)的详细信息。

我使用IOBuffer作为临时PDF。 我的完整代码在

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

h,w = A4

existing_pdf = PdfFileReader(open("design.pdf", "rb"))

packet = io.BytesIO()
# create a new PDF with Reportlab
can = canvas.Canvas(packet, pagesize=A4)

#Itreative section

can.drawString(0,0, "Hello world")
can.showPage()
can.drawString(0,0, "Neel Mishra")

#Itreative portion ends

can.save()

#move to the beginning of the StringIO buffer
packet.seek(0)
new_pdf = PdfFileReader(packet)
# read your existing PDF

output = PdfFileWriter()
# add the "watermark" (which is the new pdf) on the existing page

for page in new_pdf.pages:
    print('Hello')

page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(0))
output.addPage(page)
page = existing_pdf.getPage(0)
page.mergePage(new_pdf.getPage(1))
output.addPage(page)
# finally, write "output" to a real file
outputStream = open("destination.pdf", "wb")
output.write(outputStream)
outputStream.close()

然而,每当我运行代码时,我都会遇到一个问题;这就是文本重叠,然后重复重叠的结果。您可以运行代码。

要求是: ReportLab的 PyPDF2 Python 3.6

我是新手,所以请帮我堆栈社区,我尽力构建我的问题;但是如果你发现了一些错误,请在投票前提出修改建议。

谢谢。

0 个答案:

没有答案