3 votes

PNG flou lorsqu'il est ajouté à un PDF avec ReportLab

J'essaie de créer des PDF en Python en utilisant ReportLab. J'ai besoin de redimensionner l'image PNG pour qu'elle tienne correctement sur la page. Lorsque je redimensionne l'image, elle est correcte lorsqu'elle est visualisée dans Microsoft Photos ou glissée et déposée dans un document Word, mais lorsqu'elle est insérée dans le PDF, elle est très floue.

Voici l'image mise à l'échelle qui apparaît nette.

Voici une capture d'écran du pdf qui apparaît floue.

Voici le code que j'utilise jusqu'à présent

def 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()

Si quelqu'un a des suggestions sur la façon d'obtenir une image nette, il serait très apprécié !

Le code de redimensionnement provient d'ici : Comment redimensionner une image à l'aide de la LIP tout en conservant son rapport hauteur/largeur ?

0voto

Conner Leverett Points 158

Si quelqu'un tombe sur cette question, j'ai fini par utiliser un mélange de Python et de LaTex, car Latex traite très bien les PDF et les images, ce qui permet d'obtenir une image propre et nette.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X