我正在使用ReportLab / Platypus为基于Django的网站编写一些PDF生成代码,以生成PDF。
我对PageTemplate进行了子类化,因此我可以进行一些一致的页面修剪,并包含用于生成多列布局的代码以满足我的要求。我目前有showBoundary = 1进行调试。
但是,当我渲染两列布局时,只会看到第一个框架边界出现。可能出什么问题了?
class ReportPageTemplate(PageTemplate):
def __init__(self, id='basic', columns=1, pagesize=A4, leftMargin=(2*cm), bottomMargin=(2.1*cm), colmargin=(0.5*cm)):
(right, top) = pagesize
right -= leftMargin
top -= bottomMargin
height = top - bottomMargin
width = (right - leftMargin)
# Subtract out blank space between columns
colwidth = (width - ((columns - 1) * colmargin)) / columns
frames = []
for col in range(columns):
left = leftMargin + (col * (colwidth + colmargin))
frames.append(Frame(left, bottomMargin, colwidth, height, showBoundary=1))
PageTemplate.__init__(self, id=id, frames=frames, pagesize=pagesize)
def beforeDrawPage(self, canvas, doc):
print self.id
(width, height) = canvas._pagesize
canvas.setLineWidth(0.2 * cm)
canvas.line(0.5*cm, height - (2*cm), width - (0.5*cm), height - (2*cm))
canvas.line(0.5*cm, (2*cm), width - (0.5*cm), (2*cm))
最佳答案
嗯,我觉得很愚蠢。
仅当第一个帧填满时才渲染第二个帧。为了进行测试,我需要包含一个FrameBreak对象,以强制它绘制两列。
该代码实际上已经在工作。
关于python - 鸭嘴兽-在页面模板中使用多个框架,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41585831/