0

したがって、SyncFusionのEssentialPDFモジュールを使用してPDFにフォームフィールドを作成する次のVB.NETコードがあります。

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)

これは、1つのことを除いてうまく機能します。PDFをAcrobatで開いてフィールド名を見ると、「txt1-0」と表示されていることがわかります。今、私は「-0」がどこから来ているのか、そしてそれを取り除く方法を理解することができません。

これはSyncFusionの問題である可能性があります。その場合は、すぐに回答が得られることを願っています(フォーラムで質問しました)。しかし、それは私が知らないPDFと命名についての基本的な詳細でもあるかもしれないと思いました。

4

1 に答える 1

2

ああ、これの原因がわかりました。

以前は、PdfLoadedDocument クラスと PdfDocument クラスの両方を使用していました。ImportPages を介して PdfLoadedDocument を PdfDocument にロードしていましたが、明らかにこのプロセスにより、フィールド名に「-0」サフィックスが追加されます。

私の場合、 PdfDocument オブジェクトを取り除き、 PdfLoadedDocument を使用するだけで修正できることがわかりました。

アップデート:

これをさらに詳しく説明すると、実際にはこれを制御するのは PdfDocument.Form.FieldAutoNaming プロパティであることがわかりました。デフォルト値は true です。true に設定すると、フィールド名の重複を防ぐために、必要に応じてサフィックスが自動的に追加されます。しかし、これを false に設定すると、サフィックス "-0" が追加されなくなります。代わりに、コードでエラーが発生する可能性があります。

于 2009-09-23T19:03:46.267 に答える