Ho un pdf di esempio, che io sono la compilazione di codice in quanto tale (utilizzando 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();
Sono in grado di compilare le caselle di testo in pdf, ma non compilare la radio pulsanti / caselle di controllo.
Tipo di applicazione ha due opzioni a mia cshtml
pagina:
@Html.RadioButton(Application_Type, New) New
@Html.RadioButton(Application_Type, Renew) Renewal
e quando guardo attraverso dictionary i miei valori, vedo che ci sono 3 opzioni:
- Tipo di applicazione
- TypeofApplication.1
- TypeofApplication.2
Come faccio a impostare le caselle di controllo come checked = true
.
La mia logica è la seguente:
if(dr.Application_Type == New){
fields.TryGetValue(TypeofApplication.1, out toSet);
toSet.SetValue(/On);}
Ma questo ovviamente non funziona.