2016-06-29 3 views
0

iText 7 vient de sortir en mai 2016, et bien que certains didacticiels aient été utiles, certaines des fonctions les plus avancées ont été plus difficiles à comprendre. This page a un exemple de comment utiliser le texte comme un filigrane (environ 90% du chemin de la page), mais je ne peux pas comprendre comment utiliser une image comme filigrane, et je ne sais vraiment pas par où commencer la nouvelle version. Quelqu'un sait comment utiliser une image comme filigrane dans iText 7? Des idées par où commencer?Utiliser une image comme un filigrane dans iText 7

Répondre

4

Je ne suis pas 100% positif c'est la bonne façon de le faire mais je dirais que je suis à 95% confiant. En utilisant le tutorial for iText 7 that you linked to comme guide de démarrage avec le iText 5 version, nous pouvons utiliser un "état graphique" pour modifier le canevas actuel.

(Le code ci-dessous est C# mais vous devriez pouvoir le convertir en Java assez facilement, à peu près tout juste en minuscule la première lettre des propriétés et des méthodes.En outre, j'utilise des chemins d'espaces de noms complets les choses sont à)

Tout d'abord, créer un état personnalisé et définir sa transparence.

//Create a transparent state 
iText.Kernel.Pdf.Extgstate.PdfExtGState tranState = new iText.Kernel.Pdf.Extgstate.PdfExtGState(); 
tranState.SetFillOpacity(0.5f); 

Deuxièmement, obtenir votre image:

//Get your image somehow 
iText.IO.Image.ImageData myImageData = ImageDataFactory.Create("D:\\14.jpg", false); 
iText.Layout.Element.Image myImage = new iText.Layout.Element.Image(myImageData); 

troisième (et en option), changer votre image si nécessaire:

//Position, rotate and scale it as needed 
myImage.SetFixedPosition(100, 100); 
myImage.SetRotationAngle(45); 
myImage.ScaleAbsolute(200, 200); 

Quatrièmement, sauver les pdfCanvas (du tutoriel) état et définir une nouvelle:

pdfCanvas.SaveState().SetExtGState(tranState); 

Cinquième, ajoutez votre image à la toile de niveau supérieur (encore une fois, du tutoriel):

canvas.Add(myImage); 

Et sixième, réinitialiser l'état de pdfCanvas:

pdfCanvas.RestoreState(); 

Mise à jour par Bruno:

Ajout d'images est expliqué dans Chapter 3 of the "iText 7: Building Blocks" tutoriel. Dans le chapitre 3 de "iText 7: Tutoriel Jump-Start", nous travaillons avec un objet PdfCanvas et Canvas. Les informations manquantes sur la création et l'ajout d'une image se trouvent dans le didacticiel "Building Blocks".

+1

Merci pour l'édition @BrunoLowagie! Je n'étais pas 100% positif sur l'utilisation de 'PdfExtGState' –

+1

Je suis encore en train d'écrire. Je n'ai pas encore eu le temps de couvrir cette partie ;-) Le chapitre 4 traitera de Div, LineSeparator, Paragraph, List et ListItem. Le chapitre 5 portera sur Table et Cellule. Le chapitre 6 traitera des gestionnaires d'événements (je pourrais aborder la transparence dans ce chapitre), le chapitre 7 traitera des actions et des signets. –

+0

Merci à vous deux! – lucasvw