首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我用ABCpdf LiveCycle创建pdf时,为什么.Net看不到pdf中的字段?

当我用ABCpdf LiveCycle创建pdf时,为什么.Net看不到pdf中的字段?
EN

Stack Overflow用户
提问于 2012-06-07 04:01:52
回答 1查看 1.4K关注 0票数 2

我正在开发一个PDF Filler应用程序,它将使用来自web表单的值填充PDF中的字段。我的代码适用于我已有的较旧的LiveCycle,但使用Adobe PDF Designer创建的新PDF似乎无法看到PDF中的字段。有人建议将PDF另存为"Adobe Static PDF Form“,但这并没有解决问题。

下面是我的代码:

代码语言:javascript
复制
        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个字段。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-07 22:27:18

经过大量的代码实践,我已经找到了这个问题的答案。使用GetFieldNames()函数来获取字段名称的数组,因为这将返回所有字段,而不管级别是什么。这样,您就可以遍历数组,按名称创建Fields。我遇到的另一个问题是,字段名仍然是"form1.#pageSet.Page1.StreetAddress“格式,但如果使用PartialName属性,它将返回"StreetAddress”,因此您只需删除最后3个字符即可获得正确的字段名。

代码语言:javascript
复制
    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";
      }
   }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10921315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档