2017-09-12 4 views
1

J'essaie de créer une zone de texte en utilisant iText 7, et je continue à obtenir nullpointerexception lors de l'appel de la méthode createText. Je n'ai vu personne discuter de ce genre de problème - toute aide serait grandement appréciée. Telle est la ligne du code qui provoque l'exception:création de zone de texte dans iText 7

PdfTextFormField textfield = PdfFormField.createText(
    doc, 
    new Rectangle(
     params.xfrom, 
     params.yfrom, 
     params.xtill, 
     params.ytill), 
    params.name); 
+0

Comme @Bruno indique déjà dans un commentaire à sa réponse, rendre votre problème reproductible. L'utilisation de 'PdfFormField.createText' avec les paramètres appropriés fonctionne très bien comme l'illustre @Bruno. Ainsi, vos paramètres ne sont pas appropriés en quelque sorte. Certains «nul» parmi eux? Un document fermé? Ainsi, veuillez fournir un [SSCCE] (http://sscce.org/). – mkl

Répondre

0

Votre extrait de code ne nous dit pas ce que doc ou params sont sur le point, mais je viens de tester l'exemple de la official tutorial: c04e02_JobApplication.java, et exécutée sans erreur, ce qui dans le fichier PDF suivant:

enter image description here

la méthode createText() de la classe PdfTextFormField est utilisé comme ceci:

PdfTextFormField nameField = PdfTextFormField.createText(doc.getPdfDocument(), 
    new Rectangle(99, 753, 425, 15), "name", ""); 

J'ai aussi testé cette variation:

PdfTextFormField nameField = PdfTextFormField.createText(doc.getPdfDocument(), 
    new Rectangle(99, 753, 425, 15), "name"); 

Aucune exception n'a été jetés soit.

succincts:

  • Soit il y a un problème avec doc ou params, mais nous ne pouvons pas vous en dire plus à ce sujet, parce que vous ne nous montrez pas où vous avez obtenu ces paramètres,
  • Ou vous n'utilisez pas la même version d'iText 7 que j'utilise.
+0

params est un objet - le nom du champ est une chaîne. doc est un objet PdfDocument. –

+1

Et que dit le 'NullPointerException': est-il possible que' params' soit 'null'? Je veux dire: j'ai été utile. J'ai testé la méthode, et je ne peux pas reproduire le problème. Si vous voulez de l'aide, c'est à votre tour d'être utile. Ecrivez-moi un [SSCCE] (http://sscce.org) que je peux exécuter, et cela reproduit le problème. Mettez-vous à ma place: comment suis-je censé résoudre un problème si je ne peux même pas reproduire le problème? –