I am using following code to shrink every pages (Top and bottom) of existing pdf using iText library.
Code working fine. But now if i process result pdf, i get 0 value for rotation of every page, while old pdf has other rotation too(i.e. 90deg).
I want to keep rotation as it is but unable to do it.
Code i am using As below to shrink pages
public void shrinkPDFPages() throws Exception {
PdfReader reader = new PdfReader("D:/testpdfs/test.pdf");
Document doc = new Document();
PdfWriter writer = PdfWriter.getInstance(doc, new FileOutputStream(
"D://testpdfs/result.pdf"));
doc.open();
PdfContentByte cb = writer.getDirectContent();
for (int i = 1; i <= reader.getNumberOfPages(); i++) {
PdfImportedPage page = writer.getImportedPage(reader, i);
float pageHeight = reader.getPageSizeWithRotation(i).getHeight();
float pageWidth = reader.getPageSizeWithRotation(i).getWidth();
int rotation = reader.getPageRotation(i);
Rectangle pageRectangle = reader.getPageSizeWithRotation(i);
Rectangle PageRect = null;
System.out.println(rotation);
switch (rotation) {
case 0:
PageRect = new Rectangle(pageRectangle.getWidth(), pageRectangle
.getHeight());
doc.setPageSize(PageRect);
doc.newPage();
AffineTransform af = new AffineTransform();
af.scale(1, 0.84f);
af.translate(1, 50);
cb.addTemplate(page, af);
break;
case 90:
PageRect = new Rectangle(pageRectangle.getWidth(), pageRectangle
.getHeight());
doc.setPageSize(PageRect);
doc.newPage();
cb.addTemplate(page, 0, -1f, 0.84f, 0, 50, pageHeight);
break;
case 270:
PageRect = new Rectangle(pageRectangle.getWidth(), pageRectangle
.getHeight());
doc.setPageSize(PageRect);
doc.newPage();
cb.addTemplate(page, 0, 1f, -0.84f, 0, pageWidth - 50, 0);
break;
case 180:
PageRect = new Rectangle(pageRectangle.getWidth(), pageRectangle
.getHeight());
doc.setPageSize(PageRect);
doc.newPage();
cb.addTemplate(page, -1f, 0, 0, -0.84f, pageWidth,
pageHeight - 50);
break;
default:
break;
}
}
doc.close();
}
What should i do? so rotation remains as it is.
One more problem i am fetching is, unable to preserve internal hyper links.
Actual pdf page:
After Shrink(Scale Down Content):