2009-09-23 11 views
0

J'ai donc le code VB.NET suivant qui crée un champ de formulaire dans un fichier PDF en utilisant le module PDF Essential Syncfusion:Pourquoi chaque champ de formulaire dans mon fichier PDF généré se termine-t-il par "-0"?

Dim pdfField As New Pdf.Interactive.PdfTextBoxField(pdfDoc.Pages(iPage), "txt1") 
pdfField.Location = New PointF(50, 50) 
pdfField.Size = New SizeF(100, 10) 
pdfDoc.Form.Fields.Add(pdfField) 

Cela fonctionne très bien sauf pour une chose. Lorsque j'ouvre le PDF dans Acrobat et que je regarde le nom du champ, je remarque qu'il est écrit "txt1-0". Maintenant, je ne peux pas savoir d'où vient le "-0" et comment m'en débarrasser.

Cela peut être un problème de SyncFusion, auquel cas j'espère avoir bientôt une réponse de leur part (j'ai posé la question sur leur forum). Mais je pensais que cela pourrait aussi être un détail fondamental sur les PDF et les noms que je ne connais pas.

Répondre

2

Ah ah, je viens de découvrir ce qui causait cela.

Auparavant, j'utilisais les classes PdfLoadedDocument et PdfDocument. Je chargais le PdfLoadedDocument dans le PdfDocument via ImportPages et apparemment ce processus va ajouter le suffixe "-0" aux noms de champs.

J'ai trouvé que dans mon cas je peux me débarrasser de l'objet PdfDocument et juste utiliser PdfLoadedDocument et qui l'a corrigé.

MISE À JOUR:

Juste pour développer, je l'ai trouvé que c'est en fait la propriété PdfDocument.Form.FieldAutoNaming qui contrôle cela. Sa valeur par défaut est true. Et lorsqu'il est défini sur true, il ajoute automatiquement les suffixes nécessaires pour éviter les noms de champs en double. Mais si vous le définissez sur false, il n'ajoutera plus le suffixe "-0", mais vous pourriez avoir des erreurs dans votre code.