使用iTextSharp.text.pdf.PdfStamper.AcroFields.SetField时,我会在文档中某个点之后出现的pdf表单字段上获得ArgumentException。它说:
这个名字 'Helveia01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678' 太长(156个字符)。
这是pdf编辑器为表单字段指定的内部名称。随着您添加更多表单字段(使用Foxit),内部名称似乎变得越来越长。它的用户友好名称只是一个短字符串(LiabilityTotal - 下面)。如果你看一下记事本中的pdf,你可以看到上面的字符串:
<> / DA(/ Helveia0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 0 Tf 0 0 0 rg)/ AP<> / T(LiabilityTotal)>>
我无法控制这个内部名称。有什么想法,当它被iTextSharp.text.pdf.PdfStamper.AcroFields.SetField引用时有限制? PDF文档是有效的,我可以手动填写,只是不使用PdfStamper
作为实验,我使用FoxitPhantomPDF 6.0.5.0618创建了一个空白pdf,并添加了30个表单字段,保留了它们的默认名称。结果:最终表单字段的对象名称为Helveia0123456789012345678901234567,第一个名为Helvei。来自记事本++:
搜索“DA(/ Helvei”(1档30次点击)
C:\ Users \ sean.fackrell \ Desktop \ NewFoxit.pdf(30次点击)第36行: <> / DA(/ Helvei 0 Tf 0 0 0 rg)/ AP>>>第50行:<> / DA(/ Helveia 0 Tf 0 0 0 rg)/ AP>>第64行:<> / DA(/ Helveia0 0 Tf 0 0 0 rg)/ AP>>>第78行:<> / DA(/ Helveia01 0 Tf 0 0 0 rg)/ AP>>>第92行:<> / DA(/ Helveia012 0 Tf 0 0 0 rg)/ AP>>>线106:<> / DA(/ Helveia0123 0 Tf 0 0 0 rg)/ AP>>>行120:<> / DA(/ Helveia01234 0 Tf 0 0 0 rg)/ AP>>>第134行:<> / DA(/ Helveia012345 0 Tf 0 0 0 rg)/ AP>>>第148行:<> / DA(/ Helveia0123456 0 Tf 0 0 0 rg)/ AP>>>行162:<> / DA(/ Helveia01234567 0 Tf 0 0 0 rg)/ AP>>>第176行:<> / DA(/ Helveia012345678 0 Tf 0 0 0 rg)/ AP>>>线190:<> / DA(/ Helveia0123456789 0 Tf 0 0 0 rg)/ AP>>>线204:<> / DA(/ Helveia01234567890 0 Tf 0 0 0 rg)/ AP>>>线218:<> / DA(/ Helveia012345678901 0 Tf 0 0 0 rg)/ AP>>>线232:<> / DA(/ Helveia0123456789012 0 Tf 0 0 0 rg)/ AP>>>行246:<> / DA(/ Helveia01234567890123 0 Tf 0 0 0 rg)/ AP>>>行260:<> / DA(/ Helveia012345678901234 0 Tf 0 0 0 rg)/ AP>>>第274行:<> / DA(/ Helveia0123456789012345 0 Tf 0 0 0 rg)/ AP>>>第288行:<> / DA(/ Helveia01234567890123456 0 Tf 0 0 0 rg)/ AP>>>线302:<> / DA(/ Helveia012345678901234567 0 Tf 0 0 0 rg)/ AP<>>>第316行:<> / DA(/ Helveia0123456789012345678 0 Tf 0 0 0 rg)/ AP>>>线330:<> / DA(/ Helveia01234567890123456789 0 Tf 0 0 0 rg)/ AP>>>第368行:<> / DA(/ Helveia012345678901234567890 0 Tf 0 0 0 rg)/ AP>>>第382行:<> / DA(/ Helveia0123456789012345678901 0 Tf 0 0 0 rg)/ AP>>>第396行:<> / DA(/ Helveia01234567890123456789012 0 Tf 0 0 0 rg)/ AP<>>>线410:<> / DA(/ Helveia012345678901234567890123 0 Tf 0 0 0 rg)/ AP>>>第424行:<> / DA(/ Helveia0123456789012345678901234 0 Tf 0 0 0 rg)/ AP>>>第438行:<> / DA(/ Helveia01234567890123456789012345 0 Tf 0 0 0 rg)/ AP>>>第452行:<> / DA(/ Helveia012345678901234567890123456 0 Tf 0 0 0 rg)/ AP<>>>第466行:<> / DA(/ Helveia0123456789012345678901234567 0 Tf 0 0 0 rg)/ AP<>>>