1

可能重复:
生成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 文档——它在所有浏览器中都可以正常工作,除了IEFF的问题。如果文档要直接发送到打印机,则该if (isPrint)语句设置一个JavaScript来打印文档,而不是呈现文档以供下载。

IEFF中 - 可能 20 次中的一次这不起作用。打印预览对话框只是没有出现。之后,我可以尝试再次生成文档并且它可以工作,所以这似乎是一个间歇性问题。没有控制台错误。

这段代码有什么问题吗?我一直无法确定它。

4

0 回答 0