0

I put here a piece of code in c # and iText7 PDF. I don't know why it doesn't print 3 sheets with 3 lines each, since I have a 'AddNewPage' in front of each group of 3 lines (only print one page with 9 lines). Can you help me. Thank you.

private void button1_Click(object sender, EventArgs e)
{
    var writer = new PdfWriter(@"C:\PDFDir\TestPDF.pdf");
    var pdf = new PdfDocument(writer);
    var document = new Document(pdf);
    Paragraph p = new Paragraph("");

    document.SetMargins(6, 0, 0, 18);   //T,R,B,L

    pdf.AddNewPage();                   //Page 1
    p = new Paragraph("Line 1 page 1");
    document.Add(p);
    p = new Paragraph("Line 2 page 1");
    document.Add(p);
    p = new Paragraph("Line 3 page 1");
    document.Add(p);

    pdf.AddNewPage();                    //Page 2 ?
    p = new Paragraph("Line 1 page 2");
    document.Add(p);
    p = new Paragraph("Line 2 page 2");
    document.Add(p);
    p = new Paragraph("Line 3 page 2");
    document.Add(p);

    pdf.AddNewPage();                    //Page 3 ?
    p = new Paragraph("Line 1 page 3");
    document.Add(p);
    p = new Paragraph("Line 2 page 3");
    document.Add(p);
    p = new Paragraph("Line 3 page 3");
    document.Add(p);

    document.Close();

} //End of button1_Click
mkl
  • 90,588
  • 15
  • 125
  • 265
  • To have a `Document` instance put the content added afterwards onto a new page, you have to tell that `Document` instance so, not the underlying `PdfDocument` instance, by using `document.Add(new AreaBreak(AreaBreakType.NEXT_PAGE));`, see [this answer](https://stackoverflow.com/a/40860358/1729265). – mkl Mar 03 '20 at 09:02
  • I added the line 'document.Add (new AreaBreak (iText.Layout.Properties.AreaBreakType.NEXT_PAGE));' replacing the previous 'pdf.AddNewPage();' and now it works correctly. Thanks. – Miquel Mustarós Buil Mar 03 '20 at 12:44

1 Answers1

0

I think, you're mixing up your targets, you add each new Paragraph to the Document, but add your new pages to the PdfDocument. Try adding your breaks to the document.

var pdf = new Document();
PdfWriter.GetInstance(docPdf, new FileStream(<path>, FileMode.Create));
pdf.Open();
pdf.Add(new Paragraph("Line 1 page 1"));
pdf.NewPage();
pdf.Close();
Nikolas
  • 2,066
  • 1
  • 19
  • 20