protected void ManipulatePdf(String dest) { PdfDocument resultDoc = new PdfDocument(new PdfWriter(dest)); PdfDocument srcDoc = new PdfDocument(new PdfReader(SRC)); // Assume that there is a single XObject in the source document // and this single object is an image. PdfDictionary pageDict = srcDoc.GetFirstPage().GetPdfObject(); PdfDictionary pageResources = pageDict.GetAsDictionary(PdfName.Resources); PdfDictionary pageXObjects = pageResources.GetAsDictionary(PdfName.XObject); PdfName imgRef = pageXObjects.KeySet().First(); PdfStream imgStream = pageXObjects.GetAsStream(imgRef); PdfImageXObject imgObject = new PdfImageXObject((PdfStream)imgStream.CopyTo(resultDoc)); Image image = new Image(imgObject); image.ScaleToFit(14400, 14400); image.SetFixedPosition(0, 0); srcDoc.Close(); PageSize pageSize = new PageSize(image.GetImageScaledWidth(), image.GetImageScaledHeight()); Document doc = new Document(resultDoc, pageSize); doc.Add(image); doc.Close(); }