Comment exactement la position d'une Image à l'intérieur d'un PDF de la page à l'aide de PDFBox?
Je suis en mesure d'insérer une Image dans un document pdf existant, mais le problème est,
- L'image est placé au bas de la page
- La page devient blanche avec le texte nouvellement ajoutée montrant sur elle.
Je suis à l'aide de code suivant.
List<PDPage> pages = pdDoc.getDocumentCatalog().getAllPages();
if(pages.size() > 0){
PDJpeg img = new PDJpeg(pdDoc, in);
PDPageContentStream stream = new PDPageContentStream(pdDoc,pages.get(0));
stream.drawImage(img, 60, 60);
stream.close();
}
Je veux que l'image sur la première page.
OriginalL'auteur NiTiN | 2012-02-17
Vous devez vous connecter pour publier un commentaire.
PDFBox est une bibliothèque bas niveau pour travailler avec des fichiers PDF. Vous êtes responsable du plus haut niveau de fonctionnalités. Donc, dans cet exemple, vous placez votre image à
(60, 60)
partir du coin inférieur gauche de votre document. C'est ce questream.drawImage(img, 60, 60);
.Si vous souhaitez déplacer votre image quelque part d'autre, vous devez calculer et fournir à l'emplacement voulu (peut-être de dimensions obtenues avec
page.findCropBox()
ou manuellement, à l'entrée de votre lieu de résidence).Comme pour le texte, PDF document les éléments sont en position absolue. Il n'y a pas de bas-niveau des capacités pour la re-mise en page de texte, flottant ou quelque chose de similaire. Si vous écrivez votre texte sur votre image, il sera écrit sur le dessus de votre image.
Enfin, pour votre page devient blanche -- vous êtes la création d'un nouveau flux de contenu et donc d'écraser l'original pour votre page. Vous devez être ajoutant à la disposition de flux.
La ligne correspondante est:
Ce que vous devez faire est de l'appeler comme ceci:
La première
true
est de savoir si l' ajouter du contenu, et la finaletrue
(pas de critique ici) est de savoir si l' compresser le flux.Prendre un coup d'oeil à AddImageToPDF de l'échantillon disponible à partir de PDFBox sources.
OriginalL'auteur ipavlic
Essayer cette
Ce imprime l'image en première page. Si tu veux imprimer dans toutes les pages, il suffit de mettre une boucle avec une condition de nombre de pages que la limite.
Cela a fonctionné pour moi!
OriginalL'auteur user1990256
Ce lien vous donne des détails sur Classe PrintImageLocations.
Cette PrintImageLocations vous donnera les coordonnées x et y de l'image.
Utilisation: java org.apache.pdfbox.des exemples.util.PrintImageLocations d'entrée-pdf
OriginalL'auteur Neeraj
Je suis entrain de créer un nouveau document PDF et l'exécution de code ci-dessous dans une boucle - pour ajouter une image par page, et au-dessous des coordonnées et de la hauteur et la largeur de travail bien pour moi.
où hors est BufferedImage variable de référence
OriginalL'auteur Onkar Vaidya