当我尝试打印从 servlet 生成的 pdf 时,我在 google-chrome 中的打印预览出现问题。错误仅出现在默认的 pdf 插件中,它适用于 Adobe pdf 插件。servlet中pdf输出的代码:
response.setContentType("application/pdf");
response.setHeader("Cache-Control","public");
response.setHeader("Content-Disposition", "inline; filename=\"crreport.pdf\"");
/*if (byteArrayInputStream != null){
byteArray = new byte[1024];
while((bytesRead = byteArrayInputStream.read(byteArray)) != -1) {
response.getOutputStream().write(byteArray, 0, bytesRead);
}
}else {
throw new Exception("byteArrayInputStream is null!");
}*/
if (byteArrayInputStream != null){
byteArray = new byte[byteArrayInputStream.available()];
byteArrayInputStream.read(byteArray);
response.setContentLength(byteArray.length);
response.getOutputStream().write(byteArray);
}else {
throw new Exception("byteArrayInputStream is null!");
}
System.out.println("End");
response.getOutputStream().flush();
response.getOutputStream().close();
在 Chrome 错误日志中,当我尝试预览生成的 pdf 时: Ignoring plugin with unexpected MIME type application/pdf (expected application/x-google-chrome-print-preview-pdf)
但是,如果我使用 chrome 页面右下角的默认保存按钮保存此 pdf 并从本地计算机打开它,则预览有效。
我尝试了 googleit,但在大量关于 chrome pdf 插件的问题中找不到任何有用的信息。有什么建议可以解决这个问题吗?