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

When in doubt, check the book, more specifically chapter 13 where you'll find an example called InspectForm from which you can copy this code snippet.

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

The reason why your code doesn't work: your assumption that the MULTILINE flag is the only flag that is set. It most probably isn't. The FieldFlags (FF) value is a bitset and MULTILINE is responsible for only one bit in the set.

于 2013-08-14T12:56:48.917 に答える