Проверка флажков в формате PDF с iText7 в .NET

голоса
0

У меня есть образец 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. TypeofApplication.1
  3. TypeofApplication.2

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

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

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

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

Задан 13/02/2020 в 23:53
источник пользователем
На других языках...                            


1 ответов

голоса
0

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

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

            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;
            fields.TryGetValue("TypeofApplication", out toSet);
            var x = toSet.GetValueAsString();

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

Ответил 14/02/2020 в 02:15
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more