How to set the zoom level of a PDF using iTextSharp?

I need to set the zoom level to 75% in a PDF file using iTextSharp.

6th November 2015

I am using following code to set the zoom level.

PdfReader reader = new PdfReader("input.pdf".ToString());
Document doc = Document(reader.GetPageSize(1));
PdfWriter writer = PdfWriter.GetInstance(doc,
    new FileStream("Zoom.pdf", FileMode.Create));
PdfDestination pdfDest = new PdfDestination(
    PdfDestination.XYZ, 0, doc.PageSize.Height, 0.75f);
PdfAction action = PdfAction.GotoLocalPage(1, pdfDest, writer);
But I am getting the error "the page 1 was request but the document has only 0 pages" in the doc.Close();


Posted on StackOverflow on Jun 6, 2014 by mail2vguna


You need to use PdfStamper instead of PdfWriter. Please take a look at the AddOpenAction example:

public void manipulatePdf(String src, String dest) throws IOException, DocumentException {
    PdfReader reader = new PdfReader(src);
    PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(dest));
    PdfDestination pdfDest = new PdfDestination(
        PdfDestination.XYZ, 0, reader.getPageSize(1).getHeight(), 0.75f);
    PdfAction action = PdfAction.gotoLocalPage(1, pdfDest, stamper.getWriter());

The result is a PDF that opens with a zoom factor of 75%.


Still have questions? 

We're happy to answer your questions. Reach out to us and we'll get back to you shortly.

Contact us
Stay updated

Join 11,000+ subscribers and become an iText PDF expert by staying up to date with our new products, updates, tips, technical solutions and happenings.

Subscribe Now