Показать / Скрыть AcroFields в iTextSharp - PullRequest
1 голос
/ 17 мая 2011

У меня есть следующий код:

PdfStamper pst = null;
        try
        {
            PdfReader reader = new PdfReader(GetTemplateBytes());
            pst = new PdfStamper(reader, Response.OutputStream);
            var acroFields = pst.AcroFields;

            pst.FormFlattening = true;
            pst.FreeTextFlattening = true;
            pst.SetFullCompression();

            SetFieldsInternal(acroFields);
            pst.Close();
        }

protected override void SetFieldsInternal(iTextSharp.text.pdf.AcroFields acroFields)
{
    acroFields.SetFieldProperty("txtForOffer", "setflags", PdfAnnotation.FLAGS_PRINT, null);
}

Как мне показать / скрыть акрополя в функции SetFieldsInternal?

Дело в том, что пользователь может захотеть загрузить 2 версии PDF, одну с отображением текста, одну без отображения текста.

Шаблон PDF создается с использованием OpenOffice. Я просто заполняю поля.

1 Ответ

2 голосов
/ 17 мая 2011

Вы можете установить AcroField только для чтения следующим образом:

form.setFieldProperty("companyFld", "setfflags", PdfFormField.FF_READ_ONLY, null);

Это "setfflags" Кстати, не "setflags"

РЕДАКТИРОВАТЬ: МОЙ ПЛОХОЙ !!!Вы просили сделать поле видимым или нет.В этом случае вы должны использовать аргумент «setflags» и передать любую константу PdfAnnotation FLAGS_ для настройки видимости.

...