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

问题描述

我正在尝试使用Python 3和reportlab手动创建页面并将其添加到PDF文件。

我可以轻松地创建第一页并在其上进行绘制。但是我不知道如何手动添加新页面。

示例:

from reportlab.pdfgen.canvas import Canvas
canvas = Canvas(pdf_path,pagesize=(WIDTH_OF_PAGE1,HEIGHT_OF_PAGE1))    
canvas.rect(100,100,200,fill=1,stroke=1) # draw on the first page,this is just an example...
# Now create and add a new page here,but how???
canvas2.rect(200,300,stroke=1) # draw on the second page,this is just an example...
# Finally,save the PDF
canvas.save()

如何启动特定尺寸的新页面?

请注意,我不使用鸭嘴兽。这些页面没有固定的高度。每个页面都有一个不同的高度,该高度是通过某种算法预先计算得出的。因此,此处不能使用“ flowables”的概念,我需要将特定(不同)尺寸的页面添加到PDF文档中。

一种变通方法是为每个页面创建一个单独的PDF文件,然后将它们与外部程序连接起来,但是我不喜欢这个想法。

解决方法

最后,我弄清楚了如何创建一个新页面。在reportlab文档中提到了这一点,我只是没有注意到。

canvas.showPage() #Close the current page and possibly start on a new page.

还有一种用于更改单个页面的页面大小的解决方案-这是鸭嘴兽无法做到的:

canvas.showPage() # Close the current page and possibly start on a new page.
canvas.setPageSize(A3) # Change size of the current page

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...