问题:我正在使用ReportLab生成图表。图表生成正确但生成不同的PDF。我想将它们组合成一个现有的pdf。
代码的基本结构是
class BreakdownPieDrawing():
def firstChart():
#code for generating first Pie chart
def secondChart():
#code for generating second Pie chart
if __name__=="__main__":
drawing1 = BreakdownPieDrawing()
drawing1.firstChart()
drawing1.save(formats=['pdf'],outDir='.',fnRoot='first')
drawing2 = BreakdownPieDrawing()
drawing2.secondChart()
drawing2.save(formats=['pdf'],outDir='.',fnRoot='second')
有关完整代码段,请参阅http://www.reportlab.com/snippets/4/
此代码生成两个单独的PDF。我如何将它们组合成单个PDF。
我试过这个代码:
def makePdf(self,drawing):
doc = SimpleDocTemplate('hello.pdf')
doc.build(drawing)
然后我将“BreakdownPieDrawing”类的对象传递给此方法。但这种方法不起作用 我是reportBab和python的新手,所以请原谅我这么难看的代码。
所以问题是如何将这些图表添加到现有的pdf中。任何帮助将不胜感激。
答案 0 :(得分:0)
这两个图表实际上是整页吗?如果是这样,您可以在绘制两者之间调用分页符。否则,您只需调整坐标,以便两者都适合页面。
或者,如果您正在做一些更复杂的事情并最终使用Platypus,那么创建一个自定义Flowable来渲染它们可能是有意义的。
答案 1 :(得分:0)
如果你仔细查看你提供的代码片段(免责声明:我写的;-)),特别是第33行,你会看到
# adding a pie chart to the drawing
self._add(self,Pie(),name='pie',validate=None,desc=None)
这些线条将饼图添加到图形中,然后您需要将第二个图表添加到使用_add方法的同一图形中,再次像第46行中用于添加图例的片段一样。你的绘图将有两个图表,当你将它保存为PDF时,你应该得到它们。