How to set the page size to Envelope size with Landscape orientation?

Tags: page sizemeasurementsuser unitiText 7

I create a PDF document using iTextSharp and this code: Document pdfDoc = new Document(PageSize.A4.Rotate(), 10f, 10f, 100f, 0f);

I googled but I couldn't find the Envelope size. How do I set the page size as Envelope with Landscape orientation?

Posted on StackOverflow on Sep 17, 2014 by King_Fisher

You are creating an A4 document in landscape format in iText 7 with this code:

PdfDocument pdf = new PdfDocument(new PdfWriter(dest));
Document doc = new Document(pdf, PageSize.A4);
doc.setMargins(10f, 10f, 100f, 0f);

If you want to create a document in envelope format, you shouldn't create an A4 page, instead you should do this:

Document doc = new Document(pdf, new PageSize(envelope));

In this line, envelope is an object of type Rectangle.

There is no such thing as the envelope size. There are different envelope sizes to choose from. Take a look at the envelope size chart.

For instance, if you want to create a page with the size of a 6-1/4 Commercial Envelope, then you need to create a rectangle that measures 6 by 3.5 inch. The measurement system in PDF doesn't use inches, but user units. By default, 1 user unit = 1 point, and 1 inch = 72 points.

Hence you'd define the envelope variable like this:

Rectangle envelope = new Rectangle(432, 252);

Because:

6 inch x 72 points = 432 points (the width)
3.5 inch x 252 points = 252 points (the height)

If you want a different envelope type, you have to do the Math with the dimensions of that envelope format.

Click this link if you want to see how to answer this question in iText 5.