关于 c#:ITextSharp:从表单字段中删除”滚动长文本”

ITextSharp: Remove "scroll long text" from a form field

我想在标记该字段之前以编程方式从 PDF 中的表单字段中删除"滚动长文本"字段。我想在任何时候为给定的表单字段启用此设置的字段。我最近遇到了类似的问题,并使用我在这篇文章底部发布的解决方案解决了这个问题:ITextSharp: Remove character Limit from a form field

我认为我应该能够在同一区域执行此操作,但我不确定我需要寻找哪个 PdfName 设置来检测(并删除)此设置。

提前致谢!


根据 PDF 规范,12.7.4.3 部分,交互功能 -> 交互表单 -> 字段类型 -> 要设置字段标志 (Ff) 值的文本字段。这个值是一个位标志,位置 24 是 "DoNotScroll" 标志。位置 24 将是二进制 1000 0000 0000 0000 0000 0000 或十六进制 0x800000。使用这个和其他帖子中的代码,您可以添加它,它应该可以满足您的需求:

1
2
3
4
5
6
if (AnnotationDictionary.Contains(PdfName.FF)) {
    int Ff = AnnotationDictionary.GetAsNumber(PdfName.FF).IntValue;
    int doNotScrollBit = 0x800000;
    Ff = doNotScrollBit | Ff;
    AnnotationDictionary.Put(PdfName.FF, new PdfNumber(Ff));
}