import
com.itextpdf.kernel.pdf.*;
import
com.itextpdf.kernel.geom.Rectangle;
import
com.itextpdf.kernel.geom.AffineTransform;
import
com.itextpdf.kernel.pdf.canvas.PdfCanvas;
import
com.itextpdf.kernel.pdf.xobject.PdfFormXObject;
import
com.itextpdf.layout.Document;
public
class
Main {
public
static
void
main(String[] args)
{
try
{
String shrunkenPath =
"/home/mayur/newGFG.pdf"
;
PdfWriter pdfWriter
=
new
PdfWriter(shrunkenPath);
PdfDocument shrunkenDocument
=
new
PdfDocument(pdfWriter);
String originalPath =
"/home/mayur/GFG.pdf"
;
PdfReader pdfReader
=
new
PdfReader(originalPath);
PdfDocument originalDocument
=
new
PdfDocument(pdfReader);
PdfPage orignalPage
= originalDocument.getPage(
1
);
Rectangle originalPDFSizes
= orignalPage.getPageSize();
PdfPage emptyPage
= shrunkenDocument.addNewPage();
Rectangle emptyPDFsizes
= emptyPage.getPageSize();
double
width = emptyPDFsizes.getWidth()
/ originalPDFSizes.getWidth();
double
height = emptyPDFsizes.getHeight()
/ originalPDFSizes.getHeight();
double
newWidth = width /
2
;
double
newHeight = height /
2
;
AffineTransform affineTransform
= AffineTransform.getScaleInstance(
newWidth, newHeight);
PdfCanvas canvas =
new
PdfCanvas(emptyPage);
canvas.concatMatrix(affineTransform);
PdfFormXObject pageCopy
= orignalPage.copyAsFormXObject(
shrunkenDocument);
canvas.addXObject(pageCopy, (
float
)newWidth,
(
float
)newHeight);
Document doc =
new
Document(shrunkenDocument);
doc.close();
originalDocument.close();
System.out.println(
"Shrunken PDF successfully created"
);
}
catch
(Exception e) {
System.err.println(e);
}
}
}