【发布时间】:2026-01-29 16:30:01
【问题描述】:
我很难解决这个问题。我有一个带有字段的 PDF 文件,因此用户可以填写它们。
我正在使用 iTextSharp(在 vb.net 上)打开 PDF 文件,读取字段并将数据写回(并将其显示给用户)。
文档没有被锁定,也没有任何安全措施。
我是这样读的:
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 是不支持这个还是我错过了什么?
编辑: Link to PDF
编辑: itext dll 已过时。下载最新的,问题依旧。
【问题讨论】:
-
你能分享有问题的pdf吗?
-
@mkl 谢谢!我已经添加了 Q 的链接。
标签: vb.net pdf itext acrofields