我正在尝试使用 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")
这是我的PdfFile的屏幕截图:
答案 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中显示如下:
因此,字段已正确填充。我还内部检查了PDF,例如字段“基准”:
如您所见,文本“ txtdatum.Text”也作为抽象字段的值( V 值)存在,不仅在外观上。