Comment calculer la bonne taille de l'image dans le pdf à l'aide de itextsharp?
Je suis d'essayer d'ajouter une image à un fichier pdf à l'aide itextsharp, quelle que soit la taille de l'image, il semble toujours être associé à un autre de plus grande taille à l'intérieur du pdf ?
L'image que j'ai ajouter, c'est 624x500 pixel (DPI:72):
le texte d'alt http://www.freeimagehosting.net/uploads/727711dc70.png
Et voici un écran de la sortie pdf:
le texte d'alt http://www.freeimagehosting.net/uploads/313d49044d.png
Et voici comment j'ai créé le document:
Document document = new Document();
System.IO.MemoryStream stream = new MemoryStream();
PdfWriter writer = PdfWriter.GetInstance(document, stream);
document.Open();
System.Drawing.Image pngImage = System.Drawing.Image.FromFile("test.png");
Image pdfImage = Image.GetInstance(pngImage, System.Drawing.Imaging.ImageFormat.Png);
document.Add(pdfImage);
document.Close();
byte[] buffer = stream.GetBuffer();
FileStream fs = new FileStream("test.pdf", FileMode.Create);
fs.Write(buffer, 0, buffer.Length);
fs.Close();
Aucune idée sur comment calculer la bonne taille ?
Je alreay essayé ScaleAbsolute et l'image est encore rendu avec des dimensions incorrectes.
OriginalL'auteur MK. | 2010-05-02
Vous devez vous connecter pour publier un commentaire.
J'ai oublié de mentionner que je suis en utilisant itextsharp 5.0.2.
Il s'est avéré que PDF DPI = 110, ce qui signifie 110 pixels par pouce, et depuis itextsharp utilise le point comme unité de mesure, puis :
Avoir une méthode d'aide à convertir les pixels en points est tout ce dont j'avais besoin:
À l'aide de la formule ci-dessus, et en passant une valeur ppp de 110 il a parfaitement fonctionné:
le texte d'alt http://www.freeimagehosting.net/uploads/1c8287b8d9.png
Remarque: vous pouvez créer des documents pdf à la taille que vous voulez, ce qui peut conduire à une mauvaise mise à l'échelle lors de l'impression de vos documents. Pour surmonter ce problème tout ce que vous devez faire est d'avoir le bon ratio d'aspect entre la largeur et la hauteur [environ 1:1.4142] (voir : Taille de papier de La norme internationale ISO 216 ).
OriginalL'auteur MK.
Multiplier la hauteur de l'image et de la largeur de 72 et de les diviser par le dpi(ppp):
points = pixels * 72 /dpi
.OriginalL'auteur Zepta B