How to rotate a page 90 degrees?
I am trying to use a PDF for stamping and need to rotate it 90 degrees to lay it on correctly? Anyone know how to do this?
Posted on StackOverflow on Nov 19, 2014 by Casey
Please take a look at the Rotate90Degrees example.
In this example, we use PdfReader
to get an instance of the document, and we change the /Rotate
value in every page dictionary (if there is no such entry, we add one with value 90):
final PdfReader reader = new PdfReader(source);
final int pagesCount = reader.getNumberOfPages();
for (int n = 1; n <= pagesCount; n++) {
final PdfDictionary page = reader.getPageN(n);
final PdfNumber rotate = page.getAsNumber(PdfName.ROTATE);
final int rotation =
rotate == null ? 90 : (rotate.intValue() + 90) % 360;
page.put(PdfName.ROTATE, new PdfNumber(rotation));
}
Once this is done, we use a PdfStamper
to persist the change:
PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
stamper.close();
reader.close();
This is an iText example. If you want an iTextSharp example, you'll discover that it is very easy to port the Java to C# as the terminology is identical. You just need to change some lower cases into upper cases like this:
PdfDictionary page = reader.GetPageN(1);
page.Put(PdfName.ROTATE, new PdfNumber(90));