Флажки в PDF с iText7 in. NET - PullRequest
       8

Флажки в PDF с iText7 in. NET

0 голосов
/ 13 февраля 2020

У меня есть образец PDF, который я заполняю программно как таковой (используя iText7): -

string name = TextBox1.Text.ToString();
string pdfTemplate = @"..\WebApplication1\Sample.pdf";
string newFile = @"..\WebApplication1\completed_sample.pdf";

PdfDocument pdf = new PdfDocument(new PdfReader(pdfTemplate).SetUnethicalReading(true), new PdfWriter(newFile));
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true);
IDictionary<String, PdfFormField> fields = form.GetFormFields();
PdfFormField toSet;

// This doesn't work //
fields.TryGetValue("TypeofApplication.1", out toSet);
toSet.SetValue("/On");

// This works //
fields.TryGetValue("FullName", out toSet);
toSet.SetValue(name);

form.FlattenFields();
pdf.Close(); 

Я могу заполнять текстовые поля в PDF, но не заполнять переключатели / флажки.

Тип приложения имеет две опции на моей странице cshtml:

@Html.RadioButton("Application_Type", "New") New 
@Html.RadioButton("Application_Type", "Renew") Renewal 

, и когда я просматриваю свой словарь значений, я вижу, что есть 3 варианта :

  1. Тип приложения
  2. Тип приложения.1
  3. Тип приложения.2

Как установить флажки checked = true.

Моя логика c выглядит следующим образом:

if(dr.Application_Type == "New"){
    fields.TryGetValue("TypeofApplication.1", out toSet);
    toSet.SetValue("/On");}

Но это, очевидно, не работает.

1 Ответ

0 голосов
/ 14 февраля 2020

Итак, как я это понял: -

1) Я открыл PDF-файл, установил флажок как отмеченный и сохранил его в папке рабочей области. 2) Затем я программно открыл файл и проверил значение поля следующим образом: -

            string pdfTemplate = @"..\WebApplication1\Sample.pdf";

            PdfDocument pdf = new PdfDocument(new PdfReader(pdfTemplate).SetUnethicalReading(true), new PdfWriter(newFile));
            PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true);
            IDictionary<String, PdfFormField> fields = form.GetFormFields();
            PdfFormField toSet;
            fields.TryGetValue("TypeofApplication", out toSet);
            var x = toSet.GetValueAsString();

Теперь я знаю значение x, которое является проверенным полем. (Новый или Обновленный). Я использовал эту технику, чтобы найти все возможные значения для любого данного флажка, списка радиокнопок и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...