iText create document with unequal page sizes

android, document, itext, java, pdf

Solution

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).

Problem

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.

Original source