Seite 1 von 1

Image in PDF

Verfasst: Sonntag 5. Februar 2017, 18:36
von DMD-OL
hallo,
in meinem code scheint alles richtig, aber es wird nicht das eigentliche image angezeigt, sonder nur:
<PIL.PngImagePlugin.PngImageFile image mode=RGB size=80x80 at 0x8AF7AF0>
woran liegt das?

Code: Alles auswählen

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4, cm,landscape
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import Paragraph, Table, TableStyle, Image
from reportlab.lib.enums import TA_LEFT, TA_CENTER
from reportlab.lib import colors
from reportlab.lib.units import inch
import os
from PIL import Image, ImageTk
import PIL

#Bild laden
desktopFile = os.path.expanduser("~\Desktop")
folderpath = desktopFile+'\\QR-Codes'
imageName = "QR-Code.png"
filename = folderpath+"\\"+imageName

#Pdf-Doc speichern
pdf_Name = "Test PDF"
pdf_Document = desktopFile+'\\'+str(pdf_Name.encode("utf-8"))+".pdf"
file = pdf_Document.decode("utf-8")

try:
    os.makedirs(folderpath)
except:
    pass

a = Image.open(filename)
a.drawHeight = 2*inch
a.drawWidth = 2*inch
data=[['1',a],['3','4']]

c = canvas.Canvas(file, pagesize=landscape(A4))
table = Table(data, colWidths=200, rowHeights=50)
table.setStyle(TableStyle([
                           ('INNERGRID', (0,0), (-1,-1), 0.25, colors.black),
                           ('BOX', (0,0), (-1,-1), 0.25, colors.black),
                           ('BACKGROUND',(0,0),(-1,2),colors.lightgrey)
                           ]))
table.wrapOn(c, 200, 400)
table.drawOn(c,20,50)
c.save()

Re: Image in PDF

Verfasst: Sonntag 5. Februar 2017, 18:57
von noisefloor
Hallo,

weil du nur das Objekt `a` auf den Canvas zeichnest. Damit ReportLab es aber auch wirklich als Bild einfügt, muss du die Canvasmethode `drawImage` oder `drawInlineImage` einfügen. Siehe auch Seite 14 des ReportLab User Guides.

Abgesehen davon: du importierst diverse Sachen aus Platypus, nutzt sie aber nicht. Du zeichnest auf den "nackten" Canvas. Kann man machen, mit Platypus ist es aber wesentlich komfortabler, weil du auf einem höheren Level arbeitest.

Gruß, noisefloor

Re: Image in PDF

Verfasst: Montag 6. Februar 2017, 20:32
von DMD-OL
fuck ja, dankeschön... :)