当使用iTextSharp.text.pdf.PdfStamper.AcroFields.SetField时,我在pdf表单字段上得到一个ArgumentException,该字段出现在文档中的某个点之后。上面写着:
名称'Helveia01234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678‘太长(156个字符)。
这是pdf编辑器给表单字段的内部名称。随着添加更多的表单字段(使用Foxit),内部名称似乎越来越长。它的用户友好名称只是一个短字符串(LiabilitiesTotal -以下)。如果您查看记事本中的pdf,您可以看到上面的字符串:
<>/DA(/Helveia0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567 0 Tf 0 0 0 rg)/AP<>/T(LiabilitiesTotal)>>
我无法控制这个内部的名字。知道为什么iTextSharp.text.pdf.PdfStamper.AcroFields.SetField?引用时它有限制吗?PDF文档是有效的,我可以手动填写,只是不使用PdfStamper。
作为一项实验,我使用FoxitPhantomPDF 6.0.5.0618创建了一个空白pdf,并添加了30个表单字段,保留了它们的默认名称。结果是:最后一个表单字段被赋予一个Helveia0123456789012345678901234567的对象名,第一个名为Helvei。来自notepad++:

搜索“DA”(/Helvei)(一个文件中有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<>>>线12 0:<>/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<>>>线2 0 4:<>/DA(/Helveia01234567890 0 Tf 0 0 0 rg)/AP<>>>线2 18:<>/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 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<>>> Line 382:<>/DA(/Helveia0123456789012345678901 0 Tf 0 0 0 rg)/AP<>>> Line 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<>>>
发布于 2014-04-03 14:16:21
ISO-32000-1定义了PDF文件中字段名的上限为127个字节。
来源见附件C第2节建筑限制“表C.1”第649和650页。
https://stackoverflow.com/questions/18254576
复制相似问题