Значение заполнения формы VB.NET не отображается - PullRequest
0 голосов
/ 25 декабря 2018

Я пытаюсь заполнить файл формы PDF с помощью iTextSharp (версия 5.5.13 ).

Мой код не работает, поля вPdfFile пуст:

Dim pdfreader As PdfReader = New PdfReader(My.Resources.Dienstnachweis_BRK_Bereitschaft_Münchberg)
Dim pdfStamper As PdfStamper = New PdfStamper(pdfreader, New FileStream(newFile, FileMode.Create, FileAccess.ReadWrite), "\0", True)
pdfreader.RemoveUsageRights()
Dim pdfformfields As AcroFields = pdfStamper.AcroFields
pdfStamper.AcroFields.SetField("Datum", txtdatum.Text)
pdfStamper.AcroFields.SetField("Veranstaltung", txtdatum.Text)
pdfStamper.AcroFields.SetField("Dienstverantwortlicher", txtel.Text)
pdfformfields.SetField("Datum", txtdatum.Text, txtdatum.Text, True)
pdfformfields.SetField("Veranstaltung", txtdienstname.Text, txtdienstname.Text, True)
pdfformfields.SetField("Ort", txtdienstname.Text, txtdienstname.Text, True)
pdfformfields.SetField("Dienstverantworlicher", txtel.Text, txtel.Text, True)
pdfStamper.FormFlattening = False

pdfStamper.Close()
pdfreader.Close()
Process.Start(folderPath & "Dienstnachweis vom " & Now.ToShortDateString & ".pdf")

Мой PDF-файл .

Это скриншот из моего PdfFile:

My Acro Fields

1 Ответ

0 голосов
/ 07 января 2019

Ваш вопрос не может быть воспроизведен.

Протестированный код

Очевидно, я не смог протестировать ваш код как есть, потому что у меня нет ваших переменных значений, в частности, не всех этихтестовые поля.Таким образом, вместо этого я использовал фиксированные строки:

Dim pdfreader As PdfReader = New PdfReader("Dienstnachweis BRK Bereitschaft Münchberg.pdf")
Dim pdfStamper As PdfStamper = New PdfStamper(pdfreader, New FileStream("Dienstnachweis BRK Bereitschaft Münchberg-filled.pdf", FileMode.Create, FileAccess.ReadWrite), "\0", True)
pdfreader.RemoveUsageRights()
Dim pdfformfields As AcroFields = pdfStamper.AcroFields
pdfStamper.AcroFields.SetField("Datum", "txtdatum.Text")
pdfStamper.AcroFields.SetField("Veranstaltung", "txtdatum.Text")
pdfStamper.AcroFields.SetField("Dienstverantwortlicher", "txtel.Text")
pdfformfields.SetField("Datum", "txtdatum.Text", "txtdatum.Text", True)
pdfformfields.SetField("Veranstaltung", "txtdienstname.Text", "txtdienstname.Text", True)
pdfformfields.SetField("Ort", "txtdienstname.Text", "txtdienstname.Text", True)
pdfformfields.SetField("Dienstverantworlicher", "txtel.Text", "txtel.Text", True)
pdfStamper.FormFlattening = False

pdfStamper.Close()
pdfreader.Close()

Результат

Запустив приведенный выше код с вашим примером PDF в текущей рабочей директории, я получаю PDF-результат, который отображается следующим образом:текущий PDF Acrobat Reader:

screen shot

Таким образом, поля заполнены правильно.Я также проверил PDF внутри, например, поле "Datum":

structure

Как видите, текст "txtdatum.Text" также присутствуеткак значение абстрактного поля (значение V ), а не только по внешнему виду.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...