我正在开发一个PDF Filler应用程序,它将使用来自web表单的值填充PDF中的字段。我的代码适用于我已有的较旧的LiveCycle,但使用Adobe PDF Designer创建的新PDF似乎无法看到PDF中的字段。有人建议将PDF另存为"Adobe Static PDF Form“,但这并没有解决问题。
下面是我的代码:
Doc doc = new Doc();
doc.Read(Server.MapPath("~/pdfs/test.pdf"));
foreach (Field field in doc.Form.Fields)
{
if (field.Name == "StreetAddress")
{
field.Value = StreetAddress.Text;
}
}在我的代码中,doc.Form.Fields只包含一个名称为'form1‘的字段,尽管实际上有7个字段。
任何帮助都将不胜感激。
发布于 2012-06-07 22:27:18
经过大量的代码实践,我已经找到了这个问题的答案。使用GetFieldNames()函数来获取字段名称的数组,因为这将返回所有字段,而不管级别是什么。这样,您就可以遍历数组,按名称创建Fields。我遇到的另一个问题是,字段名仍然是"form1.#pageSet.Page1.StreetAddress“格式,但如果使用PartialName属性,它将返回"StreetAddress”,因此您只需删除最后3个字符即可获得正确的字段名。
string[] fieldNames = doc.Form.GetFieldNames();
foreach (string fieldName in fieldNames)
{
Field field = doc.Form[fieldName];
if(field.PartialName.Substring(0, field.PartialName.Length - 3).ToLower().Equals("streetaddress"))
{
field.Value = "whatever value you want";
}
}https://stackoverflow.com/questions/10921315
复制相似问题