faire apparaître une fenêtre d’annotation itextsharp pour afficher des images et du texte

Je souhaite append une fenêtre contextuelle dans un projet C # pour afficher une image et du texte en cliquant sur l’annotation itextsharp.

iTextSharp.text.pdf.PdfAnnotation annot = iTextSharp.text.pdf.PdfAnnotation.CreateLink(stamper.Writer, c.rect, PdfAnnotation.HIGHLIGHT_INVERT, PdfAction.JavaScript("app.alert('action!')", stamper.Writer)); 

Le code ci-dessus est utilisé pour afficher l’alerte et je souhaite l’adapter à mes besoins. Quelqu’un peut-il me donner une option, je ne suis pas familier avec JavaScript. ou puis-je utiliser d’autres options?

Vous avez besoin de quelques annotations pour obtenir ce que vous voulez.

Permettez-moi de commencer par une simple annotation textuelle:

Supposer que:

  • writer est votre instance PdfWriter ,
  • rect1 et rect2 sont des rectangles qui définissent des coordonnées,
  • title et contents sont ssortingng objects ssortingng avec le contenu que vous souhaitez afficher dans l’annotation textuelle,

Ensuite, vous avez besoin de cet extrait de code pour append les annotations contextuelles:

 // Create the text annotation PdfAnnotation text = PdfAnnotation.CreateText(writer, rect1, title, contents, false, "Comment"); text.Name = "text"; text.Flags = PdfAnnotation.FLAGS_READONLY | PdfAnnotation.FLAGS_NOVIEW; // Create the popup annotation PdfAnnotation popup = PdfAnnotation.CreatePopup(writer, rect2, null, false); // Add the text annotation to the popup popup.Put(PdfName.PARENT, text.IndirectReference); // Declare the popup annotation as popup for the text text.Put(PdfName.POPUP, popup.IndirectReference); // Add both annotations writer.AddAnnotation(text); writer.AddAnnotation(popup); // Create a button field PushbuttonField field = new PushbuttonField(wWriter, rect1, "button"); PdfAnnotation widget = field.Field; // Show the popup onMouseEnter PdfAction enter = PdfAction.JavaScript(JS1, writer); widget.SetAdditionalActions(PdfName.E, enter); // Hide the popup onMouseExit PdfAction exit = PdfAction.JavaScript(JS2, writer); widget.SetAdditionalActions(PdfName.X, exit); // Add the button annotation writer.AddAnnotation(widget); 

Deux constantes ne sont pas encore expliquées:

JS1:

 "var t = this.getAnnot(this.pageNum, 'text'); t.popupOpen = true; var w = this.getField('button'); w.setFocus();" 

JS2:

 "var t = this.getAnnot(this.pageNum, 'text'); t.popupOpen = false;" 

Ceci est, bien sûr, expliqué dans mon livre, plus spécifiquement au chapitre 7. Vous pouvez trouver un exemple complet ici . Si vous avez besoin d’un exemple en C #, veuillez rechercher l’exemple correspondant ici .

Si vous voulez aussi une image, jetez un oeil à cet exemple: advertisement.pdf

Ici, vous avez une annonce qui se ferme lorsque vous cliquez sur “fermer cette annonce”. Ceci est également fait en utilisant JavaScript. Vous devez combiner l’extrait précédent avec le code de l’exemple Annonce .

Les principales méthodes JavaScript dont vous aurez besoin sont: getField() et getAnnot() . Vous devrez modifier les propriétés pour afficher ou masquer le contenu.