下面的 VB.Net 代码在 v 5.3.4 下工作,但 .Close 语句在 v5.4.1 和 v5.4.1 下失败。我可以使用相同的代码并切换 .dll 来重现问题。
第二行中的 Me.Text 是一个包含文件路径的文本框。该文件是使用 AcroBat 9.5 创建的,它有两个名为“NAME”和“PHONE”的表单字段。
core.zip 中的 itextsharp.dll 作为对项目的引用添加。在表单级别:导入 itextsharp.text 和 .text.pdf。谢谢!
有人可以验证这一点并报告错误吗?或者让我知道我做错了什么(除了使用 WinForms 和 VB.Net :)?
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Dim newFile As String = Me.Text.Replace(".pdf", "_Out.pdf")
''//create w/overwrite copy of the template
Dim pdfReader As New PdfReader(pdfTemplate)
Dim pdfStamper As New PdfStamper(pdfReader, New FileStream(newFile, FileMode.Create))
pdfFormFields = pdfStamper.AcroFields
''//set form pdfFormFields ' field names are case sensitive
pdfFormFields.SetField("NAME", "Firstname Lastname")
pdfFormFields.SetField("PHONE", "805.555.1212")
''//report by reading values from completed PDF
Dim sTmp As String = "Completed: " + pdfFormFields.GetField("NAME") + " " + _
pdfFormFields.GetField("PHONE")
MessageBox.Show(sTmp, "Finished")
''//flatten the form to remove editting options, set it to false
''//to leave the form open to subsequent manual edits
pdfStamper.FormFlattening = False
''//close the pdf
pdfStamper.Close()
End Sub