1

我需要检查表单域(文本域)是否为多行或不使用 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
}
4

1 回答 1

4

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

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

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

于 2013-08-14T12:56:48.917 回答