可能重复:
生成pdf后如何打开打印对话框
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
JRPdfExporter pdfExporter = new JRPdfExporter();
pdfExporter.setParameter(JRExporterParameter.JASPER_PRINT, jp);
pdfExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, byteArrayOutputStream);
if (isPrint) {
pdfExporter.setParameter(JRPdfExporterParameter.PDF_JAVASCRIPT, "this.print();");
}
try {
pdfExporter.exportReport();
} catch (JRException e) {
log.error("Exception exporting pdf report");
throw new PrintExportException(e);
}
return byteArrayOutputStream;
这是一个Java方法的片段,它使用JRPdfExporter返回一个 pdf 文档——它在所有浏览器中都可以正常工作,除了IE和FF的问题。如果文档要直接发送到打印机,则该if (isPrint)
语句设置一个JavaScript来打印文档,而不是呈现文档以供下载。
在IE和FF中 - 可能 20 次中的一次这不起作用。打印预览对话框只是没有出现。之后,我可以尝试再次生成文档并且它可以工作,所以这似乎是一个间歇性问题。没有控制台错误。
这段代码有什么问题吗?我一直无法确定它。