2013-04-18 1 views
1

J'ai créé un modèle de pdf avec «auteur de bureau ouvert» et ai rempli les champs avec iText. Dans le code pseudo comme ceci:Comment mettre en forme le texte dans le modèle de pdf avec iText

PdfReader reader = new PdfReader("C:/temp/Template.pdf"); 
FileOutputStream fileOutputStream = new FileOutputStream("C:/temp/TemplateTest.pdf"); 
PdfStamper stamper = new PdfStamper(reader, fileOutputStream); 
stamper.setFormFlattening(true); 
stamper.getAcroFields().setField("description", "This is a important description."); 

stamper.close(); 

Maintenant, je veux juste le mot « important » dans le texte « description » gras. Comment puis-je gérer cela? Est-il possible de modifier un format donné dans un modèle pdf avec iText et pour des sous-chaînes?

Répondre

1

Vous avez défini un champ de texte au format PDF avec une police devant être utilisée pour ce champ de texte, par ex. Helvetica. Dans ce cas, vous ne pouvez utiliser que cette police. Vous ne pouvez pas introduire une autre police, telle que Helvetica-Bold.

Ce que vous cherchez n'est pas un champ de texte, mais un champ de texte enrichi. Dans ce cas, vous définissez une valeur RTF. Cette valeur Rich Text ressemble beaucoup au HTML, mais elle est légèrement différente. Vous pouvez consulter ISO-32000-1 pour savoir ce qui est différent à ce sujet.

Vous pouvez remplir un champ de texte enrichi avec iText, mais ... seulement si vous n'afflez pas le formulaire. car si vous voulez qu'iText affiche le code HTML spécial, vous avez besoin de code pour analyser ce code HTML. En fait: c'est ce que nous faisons dans XFA Worker, mais cela ne vous aide pas parce que vous n'avez pas de formulaire XFA, vous avez un AcroForm.

Longue histoire courte: lisez le chapitre 8 de mon livre, et vous trouverez un exemple où je remplis des champs en utilisant ColumnText et les positions de champ. Si vous n'avez pas le livre, jetez un oeil à l'exemple MovieAds.

Questions connexes