VB.NET表单填充值不可见

时间:2018-12-25 17:43:45

标签: vb.net itext

我正在尝试使用 iTextSharp (版本 5.5.13 )填充PDF表单文件。

我的代码不起作用,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")

My PDF file

这是我的PdfFile的屏幕截图:

My Acro Fields

1 个答案:

答案 0 :(得分:0)

您的问题无法复制。

经过测试的代码

很显然,我无法按原样测试您的代码,因为我手头没有您的变量值,尤其是不是所有这些测试字段。因此,我改用固定字符串:

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,例如字段“基准”:

structure

如您所见,文本“ txtdatum.Text”也作为抽象字段的值( V 值)存在,不仅在外观上。