As Villat表明在comment设置缩放级别的一种方法是“this.zoom=50;
"
您可以通过在 jrxml 中指示来完成此操作
<property name="net.sf.jasperreports.export.pdf.javascript" value="this.zoom=50;"/>
or
通过将其设置为SimplePdfExporterConfiguration
如果从java导出
....
SimplePdfExporterConfiguration configuration = new SimplePdfExporterConfiguration();
configuration.setPdfJavaScript("this.zoom=50;");
exporter.setConfiguration(configuration);
However
由读者(用于打开 pdf 的应用程序)决定是否执行 javascript。
例如,在标准 Adobe Acrobat Reader DC 中,用户可以在菜单“编辑>>首选项”下手动关闭此功能
此外,如果阅读器已经打开,它似乎并不总是喜欢通过 JavaScript 更改缩放级别,我安装的阅读器只有在打开 pdf 时才能正常工作。
替代解决方案
如果您在 java 中导出,您可以发布详细说明的 pdf 添加 OpenAction,请参阅布鲁诺·洛瓦吉的回答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
或类似的。
这种解决方案更可靠,但最终是否受到尊重始终取决于用户正在使用的读者。