我在这个问题上遇到了困难。我有一个带有字段的 PDF 文件,因此用户可以填写它们。
我正在使用 iTextSharp(在 vb.net 上)打开 PDF 文件,读取字段并将数据写回(并将其显示给用户)。
Doc 没有被锁定,也没有任何安全措施。
我是这样读的:
Dim readerPDF As New PdfReader(Application.StartupPath & "\PDF\" & filename)
Dim pathTemp = IO.Path.GetTempFileName & ".pdf"
Dim stamperPDF As New PdfStamper(readerPDF, New IO.FileStream(pathTemp, IO.FileMode.Create))
Dim pdfFormFields As AcroFields = stamperPDF.AcroFields
然后我只需循环 pdfFormFields (我已经将每个字段的密钥保存在数据库中。
For each f as field_keys
pdfFormFields.SetField(f, "dummy text")
Next
这适用于每个文本输入,没有问题。当我有一个多行字段时,这件事变得很糟糕。
使用这种方法填充给了我:
但是,如果我使用 Adobe Reader 打开原始 PDF 文件并编写相同的内容,我会得到:
所以...我什至不知道如何在互联网上查找。iTextSharp 是不支持这个还是我错过了什么?
编辑: 链接到 PDF
编辑: itext dll 已过时。下载最新的,问题依旧。