当我试图打印从servlet生成的pdf时,我在google-chrome中的打印预览有问题。错误只出现在默认的pdf插件中,它适用于Adobe pdf插件。在servlet代码的PDF输出:Chrome浏览器中的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: 意想不到的MIME类型application/PDF(预期应用程序/ x-谷歌 - 铬 - 打印预览 - 忽略插件pdf)
但是预览工程,如果我保存这个pdf与默认保存按钮在铬页面的右下角并从本地机器打开它。
我试过googleit,但在大量的关于铬pdf插件不能找到任何有用的信息的问题。任何建议如何解决这个问题?
我更正了您标记的代码中的错误。感谢您的评论,但它并未解决Chrome打印预览的主要问题。 – Konstantin