为什么我生成的 PDF 中的每个表单字段都以“-0”结尾?

发布于 2024-08-05 19:49:49 字数 472 浏览 5 评论 0原文

因此,我有以下 VB.NET 代码,它使用 SyncFusion 的 Essential PDF 模块在 PDF 中创建表单字段:

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)

除了一件事之外,这非常有效。当我在 Acrobat 中打开 PDF 并查看字段名称时,我注意到它显示“txt1-0”。现在我不知道“-0”从哪里来以及如何摆脱它。

这可能是 SyncFusion 问题,在这种情况下,我希望尽快得到他们的答复(我已经在他们的论坛上问过这个问题)。但我认为这也可能是我不知道的有关 PDF 和命名的基本细节。

So I have the following VB.NET code that creates a form field in a PDF using SyncFusion's Essential PDF module:

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)

This works great except for one thing. When I open up the PDF in Acrobat and look at the field name I notice that it says "txt1-0". Now I can't figure out where the "-0" is coming from and how to get rid of it.

This may be a SyncFusion issue, in which case I hope I get an answer from them soon (I've asked this on their forum). But I thought it might also be a fundamental detail about PDF's and naming that I don't know about.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

痴情换悲伤 2024-08-12 19:49:49

啊哈哈,我刚刚才知道是什么原因造成的。

以前我同时使用 PdfLoadedDocument 和 PdfDocument 类。我通过 ImportPages 将 PdfLoadedDocument 加载到 PdfDocument 中,显然此过程将在字段名称中添加“-0”后缀。

我发现就我而言,我可以摆脱 PdfDocument 对象,只使用 PdfLoadedDocument 并修复它。

更新:

为了扩展这一点,我发现实际上是 PdfDocument.Form.FieldAutoNaming 属性控制它。它的默认值为 true。当它设置为 true 时,它​​会根据需要自动添加后缀,以防止重复的字段名称。但如果你将其设置为 false,那么它就不会再添加后缀“-0”——相反,你的代码可能会出现错误。

Ah ha, I just found out what was causing this.

Previously I was using both the PdfLoadedDocument and PdfDocument classes. I was loading the PdfLoadedDocument into the PdfDocument via ImportPages and apparently this process will add the "-0" suffix to the field names.

I found that in my case I can get rid of the PdfDocument object and just use PdfLoadedDocument and that fixed it.

UPDATE:

Just to expand on this, I've found that it's actually the PdfDocument.Form.FieldAutoNaming property that controls this. It's default value is true. And when it's set to true it'll automatically add suffixes as needed to prevent duplicate field names. But if you set it to false then it won't add the suffix "-0" anymore -- instead you might get errors in your code.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文