2016-12-01 4 views
1

Ich habe eine Liste von .png Bilder. Ich muss alle von ihnen in eine pdf, 9 Bilder pro Seite umwandeln, aber nicht sie vertikal hintereinander zu setzen, aber füllen Sie die ganze Breite aus, und fahren Sie dann nur mit der nächsten Reihe fort. Bilderanzahl kann jedes Gerät unterschiedlich sein (12, ... 15)PNG Bilder zu einem pdf in Python

I fpdf

from fpdf import FPDF 

list_of_images = [1.png, 2.png, ... 15.png] 
w = 70 
h = 60 
pdf = FPDF(orientation = 'L') 
for image in list_of_images: 
    pdf.image(image, w=sizew, h=sizeh) 
pdf.output("Memory_usage.pdf", "F") 

versucht haben und wkhtmltopdf auch

template = Template('''<!doctype html> 
<html> 
<body> 
     <div style="display: flex; flex-direction: row"> 
     {% for image in images %} 
      <img src="{{ image }}" /> 
     {% endfor %} 
     </div> 
</body> 
</html>''') 
list_of_images = [1.png, 2.png, ... 15.png] 
html = template.render(images=list_of_pict) 
with open("my_new_file.html", "wb") as fh: 
    fh.write(html) 

p = subprocess.Popen(['wkhtmltopdf', '-', 'Memory_usage.pdf'], stdin=subprocess.PIPE, universal_newlines=True) 
p.communicate(html) 
p.wait() 

aber beide jedes Bild platzieren ein unter einem anderen

Antwort

0

Platzieren Sie einfach jedes Bild an den erforderlichen Koordinaten mit FPDF:

pdf.image(image, x=50, y=100, w=sizew, h=sizeh) 

Weitere Informationen zur FPDF-Dokumentation: image