Python: как заставить Reportlab перейти на следующую страницу в выводе PDF - PullRequest
7 голосов
/ 14 марта 2012

Я использую версию с открытым исходным кодом 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()                                                      

1 Ответ

9 голосов
/ 14 марта 2012

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

Используйте 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

...