2012-03-14 34 views
6

Tôi đang sử dụng phiên bản mã nguồn mở Reportlab với Python trên Windows. Mã của tôi lặp qua nhiều tệp PNG & kết hợp chúng để tạo thành một tệp PDF. Mỗi PNG được kéo dài đến thông số LETTER đầy đủ (8.5x11).Python: Cách làm cho Reportlab chuyển sang trang tiếp theo trong đầu ra PDF

Sự cố là, tất cả hình ảnh được lưu vào output.pdf được kẹp trên đầu trang của nhau và chỉ hiển thị hình ảnh cuối cùng. Có điều gì tôi cần thêm vào giữa mỗi drawImage() để bù đắp cho một trang mới không? Dưới đây là một cái nhìn tuyến tính đơn giản về những gì tôi đang làm -

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()              
+2

hãy thử sử dụng canv.showPage() sau khi bạn sử dụng canv.drawImage (...) mỗi lần. –

+0

Ah ha! Tôi đã tò mò về những gì thực sự đã làm ... Tricky. Nếu bạn đăng lại câu trả lời này, tôi sẽ chấp nhận! – user1145643

Trả lời

8

[Theo dõi các bình luận của bài]

Sử dụng canv.showPage() sau khi bạn sử dụng canv.drawImage(...) mỗi lần. (http://www.reportlab.com/apis/reportlab/dev/pdfgen.html#reportlab.pdfgen.canvas.Canvas.showPage)

Thực hiện theo các tài liệu nguồn (cho rằng vấn đề bất kỳ công cụ mà bạn đang sử dụng, bạn nên thâm nhập vào tài liệu trang web tương ứng của nó): http://www.reportlab.com/apis/reportlab/dev/pdfgen.html

Các vấn đề liên quan