簡體   English   中英

如何更改 adobe reader 的縮放級別?

[英]How to change adobe readers zoom level?

我有一個 Jasper 報告,它在 Java Spring 中創建了一個 PDF。 我一直在嘗試更改縮放級別數小時但沒有成功。 每當我使用 Adobe 閱讀器打開 pdf 時,它的 149%(同事更糟)。 有一個類似的問題沒有幫助。

我嘗試了以下屬性名稱,但沒有一個有效

我嘗試過的價值觀是

  • 0.5
  • 1.1
  • 2

我檢查了我的 Adobe Reader 屬性並將縮放設置為默認值,並且可訪問性也已關閉。

正如Villat評論中指出的那樣,設置縮放級別的一種方法是“ this.zoom=50;

您可以通過在 jrxml 中指定它來執行此操作

<property name="net.sf.jasperreports.export.pdf.javascript" value="this.zoom=50;"/>

或者

如果從 java 導出,則將其設置為SimplePdfExporterConfiguration

....
SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
configuration.setPdfJavaScript("this.zoom=50;");
exporter.setConfiguration(configuration);

然而

由讀者(用於打開 pdf 的應用程序)決定它是否會/可以執行 javascript。

例如,在標准 Adobe Acrobat Reader DC 中,用戶可以在菜單 Edit>>Preferences 下手動關閉此功能

喜好

此外,如果閱讀器已經打開,它似乎並不總是喜歡通過 javascript 更改縮放級別,我安裝的閱讀器只有在使用 pdf 打開時才能正常工作。

替代解決方案

If you are exporting in java you can post elaborate the pdf adding a OpenAction, see Bruno Lowagie 's answer https://stackoverflow.com/a/24095098/5292302

 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(); }

因此,一旦導出,您調用類似的方法,如果 memory 允許它,您也可以在 memory 中使用ByteArrayOutputStream或類似方法執行此操作。

該解決方案更可靠,但最終是否受到尊重始終取決於用戶正在使用的讀者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM