OVH Cloud OVH Cloud

Utilisation d'images avec reportlab.pdfgen

1 réponse
Avatar
Titouille
Bonjour !!

Je ne sais pas si il y en a qui ont testé reportlab pour faire des pdfs,
mais perso, j'ai quelques soucis...

Voilà le topo :

Récupérer une image de petite taille (130x48px) et l'intégrer dans un
pdf qui a 2 px de plus à chaque bords.

Alors bon, j'ai testé différentes manières, mais sans beaucoup de
succès... Au pire, l'image n'est pas placée, ou je n'arrive pas à
l'intégrer, au mieux, elle est présente, mais un peu déformée
(agrandie), et donc je perds beaucoup en qualité...



voilà le code :


import os

from reportlab.pdfgen import canvas
from reportlab.lib.units import inch
from reportlab.lib.utils import ImageReader

font = "Helvetica"
font_size = 12
text = "Hello, world"
x = 0.1 * inch
y = 11.0 * inch
destination_file = "first.pdf"


imgPath = 'sticker_rouge.gif'
ir = ImageReader(imgPath)

my_canvas = canvas.Canvas(destination_file, (130, 48))
my_canvas.drawImage( ir, 0*inch, 0*inch, 130, 48 )
my_canvas.setFont(font, font_size)
my_canvas.drawString(x, y, text)
my_canvas.save()


L'image est présente, mais dépréciée... Est-ce qu'il y a moyen de ne pas
changer ses dimensions, de garder une image inaltérée ??

D'avance merci pour les suggestions.


a++

Thierry

1 réponse

Avatar
Titouille
Ok... en fait, la solution est d'utiliser une image de grande taille
qu'on redimensionne avec la fonction drawImage.

:)


Bonjour !!

Je ne sais pas si il y en a qui ont testé reportlab pour faire des pdfs,
mais perso, j'ai quelques soucis...

Voilà le topo :

Récupérer une image de petite taille (130x48px) et l'intégrer dans un
pdf qui a 2 px de plus à chaque bords.

Alors bon, j'ai testé différentes manières, mais sans beaucoup de
succès... Au pire, l'image n'est pas placée, ou je n'arrive pas à
l'intégrer, au mieux, elle est présente, mais un peu déformée
(agrandie), et donc je perds beaucoup en qualité...



voilà le code :


import os

from reportlab.pdfgen import canvas
from reportlab.lib.units import inch
from reportlab.lib.utils import ImageReader

font = "Helvetica"
font_size = 12
text = "Hello, world"
x = 0.1 * inch
y = 11.0 * inch
destination_file = "first.pdf"


imgPath = 'sticker_rouge.gif'
ir = ImageReader(imgPath)

my_canvas = canvas.Canvas(destination_file, (130, 48))
my_canvas.drawImage( ir, 0*inch, 0*inch, 130, 48 )
my_canvas.setFont(font, font_size)
my_canvas.drawString(x, y, text)
my_canvas.save()


L'image est présente, mais dépréciée... Est-ce qu'il y a moyen de ne pas
changer ses dimensions, de garder une image inaltérée ??

D'avance merci pour les suggestions.


a++

Thierry