Before, I edit a field into an existing PDF file as follows:
using var memoryStream = new MemoryStream();
var pdfReader = new PdfReader(new MemoryStream(templateFileByteArray));
var pdfStamper = new PdfStamper(pdfReader, memoryStream, '\0', false);
var pdfFormFields = pdfStamper.AcroFields;
pdfFormFields.GenerateAppearances = true;
pdfFormFields.SetField("TextFullName", customer.Name, customer.Name);
pdfStamper.FormFlattening = true;
pdfReader.Close();
pdfStamper.Close();
How can I do it with iText7
.
in iText7
I couldn't find PdfStamper
equivalent.
The rough alternative is the following code:
PdfReader reader = new PdfReader(sourceFile);
PdfWriter writer = new PdfWriter(outFile);
PdfDocument pdfDocument = new PdfDocument(reader, writer);
PdfAcroForm form = PdfAcroForm.getAcroForm(pdfDocument, false);
form.getField("TextFullName").setValue("Name Value");
form.flattenFields();
pdfDocument.close();