我正在使用Reportlab创建一个pdf文件,该文件可以跨越多个页面,格式如下:
二维码+ h1段落+ 2-3行文本
我们需要支持具有我上面描述的格式的动态数量的元素。
我正在考虑在SimpleDocTemplate中使用一个表,但是找不到一种方法来支持可以跨越多个页面的元素的动态数量。
你将如何应对这一挑战?
发布于 2016-10-05 19:54:52
这段代码并没有完全正常工作,但它可以帮助您开始
class StandardReport:
def __init__(self,):
self.doc = BaseDocTemplate(destinationPath , showBoundary = 0, leftMargin=0.7*cm, rightMargin=0.7*cm, topMargin=0.7*cm, bottomMargin=0.7*cm, pagesize=A4)
self.simpleFrame = Frame(self.doc.leftMargin, self.doc.bottomMargin, self.doc.width, self.doc.height - 5*cm, id='normal')
def createPdf(self):
templates = [];
self.doc.totalPages = 0;
self.fill_sample();
templates.append(SamplePageTempalte(self));
self.doc.totalPages = self.doc.totalPages + 1;
self.doc.addPageTemplates(templates);
self.doc.build(self.Elements)
class SamplePageTempalte (PageTemplate):
def __init__ (self, context):
self.context = context
self.largeur = self.context.doc.pagesize[0]
self.hauteur = self.context.doc.pagesize[1]
self.simpleFrame = Frame( self.context.doc.leftMargin, self.context.doc.bottomMargin, self.context.doc.width, self.context.doc.height - 3*cm, id='normal')
PageTemplate.__init__ (self, id="GraphStatPageTemplateMonth", frames = [self.simpleFrame], pagesize=A4, onPage = self.context.footerAndHeader)https://stackoverflow.com/questions/39869671
复制相似问题