簡體   English   中英

如何在reportlab中創建具有不同頁面大小的PDF文檔,python

[英]How to create a PDF document with differing page sizes in reportlab, python

是否可以在 reportlab 中創建具有不同頁面大小的 PDF 文檔?

我想創建一個文檔,其中第一頁的大小與其他頁面不同。 任何人都可以幫忙嗎?

是的,這應該是可能的,因為 PDF 支持這一點,這只是如何在 ReportLab 中實現它的問題。 我從來沒有這樣做過,但以下應該工作:

c = reportlab.pdfgen.canvas.Canvas("test.pdf")
# draw some stuff on c
c.showPage()
c.setPageSize((700, 500)) #some page size, given as a tuple in points
# draw some more stuff on c
c.showPage()
c.save()

您的文檔現在應該有兩頁,一頁具有默認大小的頁面,另一頁的頁面大小為 700 pt x 500 pt。

如果您使用的是 PLATYPUS,您應該能夠實現相同的目標,但可能需要花哨的BaseDocTemplate子類來處理頁面大小的變化,因為我很確定PageTemplate機器不支持這個,因為每個PageTemplate主要是一種改變框架在每個頁面上的布局方式的方法。 但這在技術上是可行的,只是沒有記錄,您可能需要花一些時間閱讀和了解 PLATYPUS 內部的工作原理。

我的用例是在 pdf 中創建一個大表。 由於桌子很大,兩邊都被剪掉了。 這是如何創建具有自定義尺寸的 pdf。我正在使用來自 reportlab 的鴨嘴獸。

from reportlab.platypus import  SimpleDocTemplate
from reportlab.lib.units import mm, inch

pagesize = (20 * inch, 10 * inch)  # 20 inch width and 10 inch height.
doc = SimpleDocTemplate('sample.pdf', pagesize=pagesize)
data =    [['sarath', 'indiana', 'usa'],
                            ['jose', 'indiana', 'shhs']]
table = Table(data)
elems = []
elems.append(table)
doc.build(elems)

這種技術的一個缺點是所有頁面的大小相同。但會幫助希望創建具有自定義大小的 pdf 的人(所有頁面都相同)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM