I want to create a pdf file using itext that has unequal page sizes.
I have these two rectangles:
Rectangle one=new Rectangle(70,140);
Rectangle two=new Rectangle(700,400);
and i am writing to the pdf like this :
Document document = new Document();
PdfWriter writer= PdfWriter.getInstance(document, new FileOutputStream(("MYpdf.pdf")));
when I create the document, I have the option to specify the page size , but I want different page sizes for different pages in my pdf.
Is it possible to do that ?
Eg. The first page will have rectangle one as the page size, and the second page will have rectangle two as the page size.
I've created an UnequalPages example for you that shows how it works:
Document document = new Document();
PdfWriter.getInstance(document, new FileOutputStream(dest));
Rectangle one = new Rectangle(70,140);
Rectangle two = new Rectangle(700,400);
document.setPageSize(one);
document.setMargins(2, 2, 2, 2);
document.open();
Paragraph p = new Paragraph("Hi");
document.add(p);
document.setPageSize(two);
document.setMargins(20, 20, 20, 20);
document.newPage();
document.add(p);
document.close();
It is important to change the page size (and margins) before the page is initialized. The first page is initialized when you open()
the document, all following pages are initialized when a newPage()
occurs. A new page can be triggered explicitly (using the newPage()
method in your code) or implicitly (by iText, when a page was full and a new page is needed).