Python: как заставить Reportlab перейти на следующую страницу в формате PDF

Я использую версию Reportlab с открытым исходным кодом и Python для Windows. Мой код перебирает несколько файлов PNG и объединяет их в один PDF-файл. Каждый PNG растягивается до полной спецификации LETTER (8,5x11).

Проблема в том, что все изображения, сохраненные в output.pdf, расположены друг над другом, и видно только последнее добавленное изображение. Есть ли что-то, что мне нужно добавить между каждым drawImage() для смещения на новую страницу? Вот простой линейный вид того, что я делаю -

WIDTH,HEIGHT = LETTER                                            
canv = canvas.Canvas('output.pdf',pagesize=LETTER)               
canv.setPageCompression(0)                                       

page = Image.open('one.png')                                     
canv.drawImage(ImageReader(page),0,0,WIDTH,HEIGHT)

page = Image.open('two.png')                                     
canv.drawImage(ImageReader(page),0,0,WIDTH,HEIGHT)

page = Image.open('three.png')                                   
canv.drawImage(ImageReader(page),0,0,WIDTH,HEIGHT)

canv.save()                                                      

person user1145643    schedule 14.03.2012    source источник
comment
попробуйте использовать canv.showPage() после того, как вы используете canv.drawImage(...) каждый раз.   -  person Harshith J.V.    schedule 14.03.2012
comment
Ах ха! Мне было любопытно, что это на самом деле сделало... Сложно. Если вы повторно опубликуете это как ответ, я приму!   -  person user1145643    schedule 14.03.2012


Ответы (1)


[Продолжение комментария к посту]

Используйте canv.showPage() каждый раз после использования canv.drawImage(...). ( http://www.reportlab.com/apis/reportlab/dev/pdfgen.html#reportlab.pdfgen.canvas.Canvas.showPage )

Следуйте исходному документу (в этом отношении любой инструмент, который вы используете, вы должны изучить его соответствующую документацию веб-сайта): http://www.reportlab.com/apis/reportlab/dev/pdfgen.html

person Harshith J.V.    schedule 14.03.2012