PDFSharp remplissage dans les champs de formulaire
Je voudrais remplir les champs de formulaire dans une premade PDF doc, mais je reçois un Null Refrence erreur avec AcroForm lors de l'exécution.
string fileN4 = TextBox1.Text + " LOG.pdf";
File.Copy(Path.Combine(textBox4.Text + "\\", fileN4),
Path.Combine(Directory.GetCurrentDirectory(), fileN4), true);
//Open the file
PdfDocument document = PdfReader.Open(fileN4, PdfDocumentOpenMode.Modify);
PdfTextField currentField = (PdfTextField)(document.AcroForm.Fields["<CASENUM>"]);
//const
string caseName = TextBox1.Text;
PdfString caseNamePdfStr = new PdfString(caseName);
//set the value of this field
currentField.Value = caseNamePdfStr;
//Save the document...
document.Save(fileN4);
Donc PdfTextField currentField = (PdfTextField)(document.AcroForm.Fields["<CASENUM>"]);
est où l'erreur se produit. Il semble que AcroForm n'est même pas reconnaissant les champs.
Une autre option serait de rechercher et remplacer du texte dans un fichier PDF (sans l'aide de itextsharp que ne peut pas l'utiliser en raison de l'attribution de permis).
Toute aide serait génial!
source d'informationauteur user770344
Vous devez vous connecter pour publier un commentaire.
Vous avez également besoin de cette si vous essayez de remplir le formulaire PDF avec des champs, vous devez également définir la NeedsAppearances élément de vrai. Sinon le PDF "masquer" les valeurs du formulaire. Voici le code VB.
Que je viens de vivre quelque chose de semblable. Le premier fichier pdf, j'ai ouvert ne contient pas de acroform de données et a abouti à une exception nulle comme décrit ci-dessus. Le problème n'est pas avec l'ouverture du pdf, mais la référence à la Acroform membre de la variable ayant une valeur null. Vous pouvez tester votre fichier pdf à l'aide de l'exemple de code suivant:
ABDENDA
J'ai aussi remarqué la clé dans cette ligne de code ne devrait pas avoir de crochets de
Changer de
La solution pour sortir de la
NullReferenceException
est d'ouvrir votre pré-faitesPDF avec Adobe Acrobat et le donner à vos champs de formulaire une valeur par défaut, par la modification de leur propriété type à être autre chose que
null
.J'ai travaillé sur ce sujet aujourd'hui et j'ai réussi à créer une solution qui fonctionne. Je l'ai collé mon code de travail ci-dessous. La seule différence réelle je peux voir entre mon code et l'OP est la suivante:
J'espère que ce sera utile à quelqu'un d'essayer de faire de même.
Avez-vous essayé de mettre le répertoire courant lorsque vous essayez de l'ouvrir?
Changement
à
Je suis assez sûr que PdfReader aurez besoin d'un chemin de fichier complet, bien que je n'utilise que des ASPOSE pour la création de pdf.