Python:如何使 Reportlab 在 PDF 输出中移至下一页

Posted

技术标签:

【中文标题】Python:如何使 Reportlab 在 PDF 输出中移至下一页【英文标题】:Python: How to make Reportlab move to next page in PDF output 【发布时间】:2012-03-30 13:44:44 【问题描述】:

我在 Windows 上使用带有 Python 的开源版本 Reportlab。我的代码遍历多个 PNG 文件并将它们组合成一个 PDF。每个 PNG 都被拉伸到完整的 LETTER 规范 (8.5x11)。

问题是,保存到 output.pdf 的所有图像都被夹在彼此的顶部,只有最后添加的图像是可见的。我需要在每个 drawImage() 之间添加一些内容以偏移到新页面吗?这是我正在做的一个简单的线性视图 -

WIDTH,HEIGHT = LETTER                                            
canv = canvas.Canvas('output.pdf',pagesize=LETTER)               
canv.setPageCompression(0)                                       

page = Image.open('one.png')                                     
canv.drawImage(ImageReader(page),0,0,WIDTH,HEIGHT)

page = Image.open('two.png')                                     
canv.drawImage(ImageReader(page),0,0,WIDTH,HEIGHT)

page = Image.open('three.png')                                   
canv.drawImage(ImageReader(page),0,0,WIDTH,HEIGHT)

canv.save()                                                      

【问题讨论】:

每次使用canv.drawImage(...) 后尝试使用canv.showPage()。 啊哈!我很好奇这实际上做了什么……很棘手。如果您将此作为答案重新发布,我会接受! 【参考方案1】:

[跟进帖子评论]

在每次使用canv.drawImage(...) 后使用canv.showPage()。 (http://www.reportlab.com/apis/reportlab/dev/pdfgen.html#reportlab.pdfgen.canvas.Canvas.showPage)

关注源文档(对于您使用的任何工具,您都应该深入了解它的相应网站文档): http://www.reportlab.com/apis/reportlab/dev/pdfgen.html

【讨论】:

以上是关于Python:如何使 Reportlab 在 PDF 输出中移至下一页的主要内容,如果未能解决你的问题,请参考以下文章

如何将整个表格与 Python Reportlab 库对齐?

使用 Reportlab 的多个页面 - Django

Python Reportlab PDF - 在页面上居中文本

如何在reportlab中手动将新页面添加到PDF文档?

如何遍历 ReportLab 的 rml 文件中的列表

Python reportlab用画布保存到指定位置