Ich versuche, PDFs in Python mit ReportLab zu erstellen. Ich muss die Größe des PNG-Bildes ändern, damit es korrekt auf die Seite passt. Wenn ich die Größe des Bildes ändere, sehen sie in Microsoft Photos gut aus oder werden per Drag & Drop auf ein Word-Dokument gezogen, aber wenn sie in das PDF-Dokument eingefügt werden, sind sie sehr unscharf.PNG unscharf, wenn mit ReportLab in PDF hinzugefügt.
This is the scaled image, die knackig erscheint.
This is a screen grab of the pdf, die unscharf erscheint.
Dies ist der Code, den ich bisher
bin mitdef resizeImage():
basewidth = 500
img = PIL.Image.open('test.png')
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
img = img.resize((basewidth,hsize), PIL.Image.ANTIALIAS)
img.save('sompic.png')
def generatePDF():
c = canvas.Canvas('template.pdf', pagesize=portrait(letter))
#Header text
c.setFont('Helvetica', 48, leading=None)
c.drawCentredString(200, 300, "This is a pdf")
test = 'sompic.png'
c.drawImage(test, 50,350, width=None, height=None)
c.showPage()
c.save()
resizeImage()
generatePDF()
Wenn jemand irgendwelche Vorschläge auf hat, wie ein scharfes Bild bekommen es wäre sehr dankbar!
Der Resize-Code kam von hier: How do I resize an image using PIL and maintain its aspect ratio?
Sieht noch ziemlich knackig aus, aber das Bild im PDF ist größer als Ihr skaliertes Bild. Verwenden Sie ein Bild mit höherer Auflösung. – Kenney
Ich weiß nicht viel über PIL oder Report Lab - aber ich frage mich, ob es eine Möglichkeit gibt, Interpolation für dieses Bild zu aktivieren (siehe Pdf Spec 8.9.5.3) – Jimmy