我正在使用iTextSharp来填充PDF表单模板。我有一个pdf模板中的许多表单域。然后,软件填充字段并将模板保存到新文件中。但是,新PDF文件中的字段不再可编辑。
我想让一些字段在调用AcroFields.SetField后仍然可以编辑,这可能吗?
感谢您的回答或建议。
发布于 2013-05-25 02:08:34
在PDFStamper对象上调用FormFlattening。
' flatten the form to remove editting options, set it to false
' to leave the form open to subsequent manual edits
pdfStamper.FormFlattening = False测试代码- master的路径在窗体的标题中:
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 SubVB项目需要引用itextsharp.dll (在我的例子中是\itextsharp-all-5.3.4\itextsharp.dll),并且在顶部:
导入iTextSharp.text
导入iTextSharp.text.pdf
https://stackoverflow.com/questions/16726967
复制相似问题