如何使用iTextSharp将缩放级别设置为pdf?

我需要使用iTextSharp将缩放级别设置为75%到pdf文件。 我正在使用以下代码来设置缩放级别。

PdfReader reader = new PdfReader("input.pdf".ToString()); iTextSharp.text.Document doc = new iTextSharp.text.Document(reader.GetPageSize(1)); doc.OpenDocument(); PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream("Zoom.pdf", FileMode.Create)); PdfDestination pdfDest = new PdfDestination(PdfDestination.XYZ, 0, doc.PageSize.Height, 0.75f); doc.Open(); PdfAction action = PdfAction.GotoLocalPage(1, pdfDest, writer); writer.SetOpenAction(action); doc.Close(); 

但我在doc.Close();收到错误“页面1是请求但文档只有0页” doc.Close();

您需要使用PdfStamper (由mkl表示)而不是PdfWriter (由Chris Haas明确表示)。 请看一下AddOpenAction示例:

 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()); stamper.getWriter().setOpenAction(action); stamper.close(); reader.close(); } 

结果是PDF打开时缩放系数为75% 。