检查表单字段是多行的还是未使用itextsharp

本文关键字:未使用 itextsharp 检查表 表单 字段 检查 | 更新日期: 2023-09-27 18:27:42

我需要检查表单字段(文本字段)是多行的还是没有使用itextsharp。我有以下代码,但它似乎不起作用。在密钥中,我有表单字段名称。

iTextSharp.text.pdf.PdfDictionary dic = new PdfDictionary();
dic = (iTextSharp.text.pdf.PdfDictionary)form.GetFieldItem(key).GetMerged(0);
//Check if textbox is multiline. If yes then do not truncate.
if (!(dic.GetAsNumber(iTextSharp.text.pdf.PdfName.FF) != null && dic.GetAsNumber(iTextSharp.text.pdf.PdfName.FF).IntValue == iTextSharp.text.pdf.PdfFormField.FF_MULTILINE))
{
 //some code
}

检查表单字段是多行的还是未使用itextsharp

如果有疑问,请查看本书,更具体地说,在第13章中,您会发现一个名为InspectForm的示例,您可以从中复制此代码片段。

flags = dict.GetAsNumber(PdfName.FF).IntValue;
if ((flags & BaseField.MULTILINE) > 0)
    sb.Append(" -> multiline");

代码不起作用的原因是:您假设MULTILINE标志是唯一设置的标志。很可能不是。FieldFlags(FF)值是一个位集,而MULTILINE只负责该集中的一个位。