What's itext 7 equivalent to pdfstamper class in itext 5

ABHISHEK KUMAR picture ABHISHEK KUMAR · Jul 12, 2017 · Viewed 10.3k times · Source

I trying to convert from iText5 to iText7. Got the package for iText7 from Nuget.

Answer

Bruno Lowagie picture Bruno Lowagie · Jul 12, 2017

That's explained in chapter 5 of the iText 7 Jump-start tutorial. There is no PdfStamper class anymore. There is only a PdfDocument class that is used for creation of files as well as for manipulation of files.

Your question is very incomplete.

Is your code used to fill out forms? In that case, you need something like this:

PdfDocument pdf = new PdfDocument(
    new PdfReader(src), new PdfWriter(dest));
PdfAcroForm form = PdfAcroForm.getAcroForm(pdf, true);
Map<String, PdfFormField> fields = form.getFormFields();
fields.get("name").setValue("Abhishek Kumar");
pdf.close();

Or in C#:

PdfDocument pdf = new PdfDocument(new PdfReader(src), new PdfWriter(dest));
PdfAcroForm form = PdfAcroForm.GetAcroForm(pdf, true);
IDictionary<String, PdfFormField> fields = form.GetFormFields();
PdfFormField toSet;
fields.TryGetValue("name", out toSet);
toSet.SetValue("Abhishek Kumar");
form.FlattenFields();
pdf.Close();

Is your code used to add extra content to a document? In that case, you need something like this:

PdfDocument pdfDoc =
    new PdfDocument(new PdfReader(src), new PdfWriter(dest));
Document document = new Document(pdfDoc);
Rectangle pageSize;
PdfCanvas canvas;
int n = pdfDoc.getNumberOfPages();
for (int i = 1; i <= n; i++) {
    PdfPage page = pdfDoc.getPage(i);
    pageSize = page.getPageSize();
    canvas = new PdfCanvas(page);
    // add new content
}
pdfDoc.close();

Where it says // add new content, you can add content to the canvas.

Are you using PdfStamper for something else? In that case, you need to improve your question.