2012-03-14 42 views
6

Windows上でPythonを使用したオープンソースのReportlabを使用しています。私のコードは複数のPNGファイルをループします&はそれらを組み合わせて1つのPDFを形成します。各PNGは、完全な文字仕様(8.5x11)に拡張されています。Python:ReportlabをPDF出力の次のページに移動するには

問題は、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()              
+2

は(canv.showPageを使用してみてください) (...) 毎回。 –

+0

ああ!私はそれが実際に何をしたのか不思議でした...トリッキー。あなたが答えとしてこれを再投稿すれば私は受け入れます! – user1145643

答えて

8

あなたはcanv.drawImage(...)するたびに使用した後

使用canv.showPage() [投稿のコメントのフォローアップ] - ここで私がやっているの単純な線形ビューです。 (http://www.reportlab.com/apis/reportlab/dev/pdfgen.html#reportlab.pdfgen.canvas.Canvas.showPage

(使用しているすべてのツールそのことについては、あなたがそれのそれぞれのウェブサイトのドキュメントに掘る必要があります)、ソース文書に従ってください:あなたはcanv.drawImageを使用した後 http://www.reportlab.com/apis/reportlab/dev/pdfgen.html

関連する問題