La création de PDF à partir d'une image TIFF à l'aide de la bibliothèque iText
Je suis en train de générer des fichiers PDF à partir d'images TIFF à l'aide de la bibliothèque iText.
Fondamentalement, la procédure est comme suit:
1. Lire le fichier TIFF.
2. Pour chaque "page" de l'TIFF, instancier un Image de l'objet et de l'écrire à un Document exemple, qui est le fichier PDF.
Je vais avoir du mal à comprendre comment ajouter des images au format PDF en gardant la résolution d'origine.
J'ai essayé à l'échelle de la Image les dimensions en pixels de l'image originale de l'TIFF, par exemple:
//Pixel Dimensions 1728 × 2156 pixels
//Resolution 204 × 196 ppi
RandomAccessFileOrArray tiff = new RandomAccessFileOrArray("/path/to/tiff/file");
Document pdf = new Document(PageSize.LETTER);
Image temp = TiffImage.getTiffImage(tiff, page);
temp.scaleAbsolute(1728f, 2156f);
pdf.add(temp);
Je serais vraiment reconnaissant si quelqu'un peut jeter quelque lumière sur ce point. Je suis peut-être la fonction de la Image les méthodes de la classe...
Merci d'avance!
Vous devez vous connecter pour publier un commentaire.
Je pense que si tu l'échelle de l'image, alors vous ne pouvez pas conserver la résolution d'origine (s'il vous plaît corrigez-moi si je me trompe :)).
Ce que vous pouvez essayer de faire est de créer un document PDF avec différentes tailles de pages (si les images sont de résolution différente dans le tif image).
Essayez le code suivant. Il définit la taille de la page PDF égale à celle du fichier image et ensuite créer la page PDF. la page PDF taille varie en fonction de la taille de l'image de sorte que la résolution est maintenue 🙂
J'ai trouvé que cette ligne ne fonctionne pas bien:
Si vos fichiers TIFF ne contiennent qu'une image, alors vous êtes mieux de les utiliser ceci à la place:
Il en résultera une taille de page qui s'adapte à la taille de l'image exactement, donc pas de mise à l'échelle est nécessaire.
Un autre exemple non dépréciées jusqu'à iText 5.5 avec la première page du numéro fixe. Je suis en utilisant 5.5.11 Itext.
TiffImage.getNumberOfPages(rafa)
doit être remplacé avecTiffImageData.getNumberOfPages(rafa)
etTiffImage.getTiffImage(rafa, i)
tout simplement ne fonctionne pas parce que la méthode a besoin d'uncom.itextpdf.text.pdf.RandomAccessFileOrArray
mais nous avons uncom.itextpdf.io.source.RandomAccessFileOrArray
.