我正在使用reportlab生成一些pdf。我需要追加一些图像。旧脚本依赖于一个已弃用的库将这些图像的pdf版本添加到新的pdf中,但我认为我应该能够将它们添加为png,如下所示:
doc = SimpleDocTemplate("GBD Country Report - " + country_name + ".pdf",
pagesize=letter,
rightMargin=0.25 * inch, leftMargin=0.25 * inch,
topMargin=0.75 * inch, bottomMargin=0.25 * inch)
elements = []
elements.append(Image(data_dir + 'figure1.png'), width=1, height=1)
doc.build(elements)
但是,当我这样做时,我得到了这个错误:reportlab.platypus.doctemplate.LayoutError: Flowable <Image at 0x10bd6ae10 frame=cod filename=.../figure1.png>(28.346456692913385 x 612.0) too large on page 1 in frame 'cod'(475.2 x 90.0*) of template 'FirstPage'
.我已经尝试添加更改宽度和高度参数多次,但它没有帮助.有什么方法可以动态修改图表图像的宽度和高度,使它们适合框架/模板?
2条答案
按热度按时间1tuwyuhd1#
这是一个很老的问题。但我找不到一个我满意的解决方案,所以我想我会分享我的毛定制解决方案。请注意,你需要交换信件为任何模板大小的对象,你导入。你还需要改变数字80和300,以适应自己的利润率偏好,但我发现这些有效。
iezvtpos2#
只需将您的宽度和高度乘以您所需的单位,即(宽度=1* 英寸,高度=1* 英寸)。
测量单位可通过以下方式引入:从reportlab.lib导入英寸单位。
祝你好运!