Есть ли способ динамически подгонять изображения к кадру в reportlab с помощью утконоса?

Я использую 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'. Я пытался несколько раз добавить изменение аргументов ширины и высоты, но это не помогает. Есть ли способ динамически изменять ширину и высоту изображений диаграммы, чтобы они соответствовали рамке/шаблону?


person BarFooBar    schedule 10.01.2015    source источник


Ответы (1)


Просто умножьте ширину и высоту на желаемую единицу измерения, например (ширина = 1 * дюйм, высота = 1 * дюйм).

Единицы измерения можно ввести с помощью: from reportlab.lib.units import inch.

Удачи!

person tylerswright    schedule 16.06.2015