Почему каждое поле формы в моем сгенерированном PDF-файле заканчивается знаком "-0"?

Итак, у меня есть следующий код VB.NET, который создает поле формы в PDF-файле с помощью модуля SyncFusion Essential 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)

Это прекрасно работает, за исключением одной вещи. Когда я открываю PDF в Acrobat и смотрю на имя поля, я замечаю, что оно говорит "txt1-0". Теперь я не могу понять, откуда взялась "-0" и как от нее избавиться.

Это может быть проблема SyncFusion, и в этом случае я надеюсь, что скоро получу от них ответ (я спрашивал об этом на их форуме). Но я подумал, что это также может быть фундаментальной деталью о PDF и именах, о которой я не знаю.

1 ответ

Решение

Ага, я только что выяснил, что было причиной этого.

Ранее я использовал классы PdfLoadedDocument и PdfDocument. Я загружал PdfLoadedDocument в PdfDocument через ImportPages, и, очевидно, этот процесс добавит суффикс "-0" к именам полей.

Я обнаружил, что в моем случае я могу избавиться от объекта PdfDocument и просто использовать PdfLoadedDocument, и это исправило его.

ОБНОВИТЬ:

Просто чтобы расширить это, я обнаружил, что это собственно свойство PdfDocument.Form.FieldAutoNaming, которое управляет этим. Это значение по умолчанию верно. И когда он установлен в true, он будет автоматически добавлять суффиксы по мере необходимости, чтобы предотвратить дублирование имен полей. Но если вы установите его в false, он больше не будет добавлять суффикс "-0" - вместо этого вы можете получить ошибки в своем коде.

Другие вопросы по тегам