У меня есть образец 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
Как установить флажки checked = true
.
Моя логика c выглядит следующим образом:
if(dr.Application_Type == "New"){
fields.TryGetValue("TypeofApplication.1", out toSet);
toSet.SetValue("/On");}
Но это, очевидно, не работает.