【问题标题】:How to change adobe readers zoom level?如何更改 adobe reader 的缩放级别?
【发布时间】:2019-10-04 21:39:37
【问题描述】:

我有一个 Jasper 报告,它在 Java Spring 中创建了一个 PDF。我一直在尝试更改缩放级别数小时但没有成功。每当我使用 Adob​​e 阅读器打开 pdf 时,它的 149%(同事更糟)。有一个类似的 question 没有帮助。

我尝试了以下属性名称,但没有一个有效

我尝试过的值是

  • 0.5
  • 1.1
  • 2

我检查了我的 Adob​​e Reader 属性,缩放设置为默认值,accessibility 也已关闭。

【问题讨论】:

  • 您能添加您的代码吗?为了知道为什么yourExporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT, "this.zoom = 50;"); 不适合你
  • @Villat 它没有用,因为我没有使用 jacascript。我有一个 Java Spring 应用程序,它使用 Jasper Reports 创建 pdf,然后通过连接发送回他们使用 Adob​​e 打开它的位置。
  • 你尝试过类似yourExporter.setParameter(JRHtmlExporterParameter.ZOOM_RATIO, new Float(2.0));
  • @Villat 你的答案是正确的,但它的放置方式对我不起作用,下面的答案给了我正确的格式

标签: jasper-reports zooming export-to-pdf


【解决方案1】:

正如comment 中的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。

例如,在标准的 Adob​​e Acrobat Reader DC 中,用户可以在菜单 Edit>>Preferences 下手动关闭此功能

此外,如果阅读器已经打开,它似乎并不总是喜欢通过 javascript 更改缩放级别,我安装的阅读器只有在打开 pdf 时才能正常工作。

替代解决方案

如果您在 java 中导出,您可以发布详细的 pdf 添加 OpenAction,请参阅 Bruno Lowagie 的答案 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();
}

因此,一旦导出,您可以调用类似的方法,如果内存允许,您也可以使用 ByteArrayOutputStream 或类似方法在内存中执行此操作。

此解决方案更可靠,但最终是否受到尊重始终取决于用户正在使用的读者。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-24
    • 2017-01-30
    • 2011-10-26
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多