我正在尝试填写 USCIS 表格,填写后将其设为只读(将其展平)。我不确定它为什么这样做。即使我没有任何代码可以将其展平。我搜索了堆栈溢出并尝试了许多不同的方法(使用 itextsharp 5.5.9 和 itext 7),但仍然无法正常工作。
这是我正在使用的示例代码
string src = @"https://www.uscis.gov/sites/default/files/files/form/i-90.pdf";
string dest = @"C:\temp\i-90Filled.pdf";
var reader = new PdfReader(src);
reader.SetUnethicalReading(true);
var writer = new PdfWriter(dest);
PdfDocument pdfDoc = new PdfDocument(reader, writer);
// add content
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdfDoc, true);
IDictionary<String, PdfFormField> fields = form.GetFormFields();
PdfFormField toSet;
fields.TryGetValue("form1[0].#subform[0].P1_Line3b_GivenName[0]", out toSet);
toSet.SetValue("John");
pdfDoc.Close();