【发布时间】:2017-01-01 17:53:41
【问题描述】:
我生成的 pdf 文件有问题,生成的 pdf 文件有 4 页,而我使用的现有 pdf 文件有两页。我必须使用pyPD2 和reportlab 写一些文字。
当我使用getPage() 方法时,我想在合并之前制作一个页面副本,但由于某些原因它使用相同的页面并且我的文本打印了好几次。
我怎样才能避免这种情况?
我的代码:
packet = io.BytesIO()
can = canvas.Canvas(packet)
can.drawString(0,0, "Print on page 1")
can.showPage()
can.drawString(200,200, "Print on page 2")
can.showPage()
can.drawString(0,0, "Print on page 3")
can.showPage()
can.drawString(200,200, "Print on page 4")
can.save()
new_pdf = PdfFileReader(packet)
path_of_two_page_pdf = 'overview.pdf'
existing_pdf = PdfFileReader(file(path_of_two_page_pdf, "rb"))
output = PdfFileWriter()
for pi in range(4):
page = existing_pdf.getPage(pi % 2)
page.mergePage(new_pdf.getPage(pi))
output.addPage(page)
outputStream = file("NEW_PDF.pdf", "wb")
output.write(outputStream)
outputStream.close()
【问题讨论】:
-
您能链接到输入文件,以便我进一步查看吗?
-
@B8vrede 我不明白为什么要投反对票。任何有两页的 PDF 都可以(我在每一页上绘制不同的字符串)。
-
但是因为我刚刚修复了那部分,所以我删除了反对票
-
@B8vrede 感谢您的编辑。
标签: python python-2.7 reportlab pypdf2