加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ItextSharp – 使用C#自动填写pdf表单 – 复选框的问题

发布时间:2020-12-15 03:56:03 所属栏目:百科 来源:网络整理
导读:我正在填写使用Acrobat Pro创建的pdf格式的iTextSharp C#,并尝试勾选一个复选框字段时发现自己卡住了. 我有它的单选按钮和文本框,但似乎无法让复选框工作. 在这种情况下,我还确认了复选框名称,“Q7b”在acrobat文档中是正确的,可以使用以下代码在表单上找到
我正在填写使用Acrobat Pro创建的pdf格式的iTextSharp& C#,并尝试勾选一个复选框字段时发现自己卡住了.

我有它的单选按钮和文本框,但似乎无法让复选框工作.
在这种情况下,我还确认了复选框名称,“Q7b”在acrobat文档中是正确的,可以使用以下代码在表单上找到它

private string getfieldnames(AcroFields fields)
{
    StringBuilder sb = new StringBuilder();

    foreach (string key in fields.Fields.Keys)
    {

        sb.Append(key + Environment.NewLine);
    }
    return sb.ToString();

}

我正在使用的代码更新复选框在下面

using (MemoryStream pdfFlat = new MemoryStream())
{

    PdfReader pdfReader = new PdfReader(strPath);
    PdfStamper pdfStamp = new PdfStamper(pdfReader,pdfFlat);
    AcroFields fields = pdfStamp.AcroFields;

    //textfields
    fields.SetField("Initiating_Doctor","Doctor A");
    fields.SetField("Speciality","Surgeon");

    //Radiobuttons
    fields.SetField("PRELIM_Q1","Yes");
    fields.SetField("PRELIM_Q2","No");
    fields.SetField("PRELIM_Q3","No");
    fields.SetField("PRELIM_Q4","No");

    //checkbox - Set the checkbox to checked but this does not work.
    fields.SetField("Q7b","Yes");

    pdfReader.Close();
    pdfStamp.FormFlattening = true;
    pdfStamp.FreeTextFlattening = true;
    pdfStamp.Writer.CloseStream = false;
    pdfStamp.Close();
}

任何帮助将不胜感激.

布拉德

解决方法

将字段值设置为复选框的导出值将导致检查.因此,如果导出值为“是”,则将该字段的值设置为“是”将勾选复选框.如果导出值是其他值(例如“开”),则需要将字段值设置为该值,才能勾选该框.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读