ITextSharp:从表单域中删除“滚动长文本”

时间:2012-04-24 13:23:37

标签: c# asp.net pdf itextsharp

我想在压印该字段之前以编程方式从PDF中的表单字段中删除“滚动长文本”字段。我希望只要字段为给定的表单字段启用此设置,我就会这样做。我最近遇到了类似的问题,并使用我在帖子底部发布的解决方案解决了这个问题:ITextSharp: Remove character Limit from a form field

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

提前致谢!

1 个答案:

答案 0 :(得分:1)

根据PDF spec12.7.4.3部分,互动功能 - >互动表格 - >字段类型 - >文本字段您要设置字段标志(Ff)值。该值是一个按位标志,位置24是“DoNotScroll”标志。位置24将是二进制1000 0000 0000 0000 0000 0000或十六进制0x800000。使用这个和其他帖子中的代码,你可以添加它,它应该做你正在寻找的东西:

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));
}