サーブレットから生成された PDF を印刷しようとすると、google-chrome の印刷プレビューで問題が発生します。エラーはデフォルトの pdf プラグインでのみ表示され、Adobe pdf プラグインで動作します。サーブレットでの 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();
生成された pdf をプレビューしようとすると、Chrome のエラー ログ: 予期しない MIME タイプ application/pdf (expected application/x-google-chrome-print-preview-pdf) でプラグインを無視する
ただし、このPDFをChromeページの右下隅にあるデフォルトの保存ボタンで保存し、ローカルマシンから開くと、プレビューが機能します。
私はgoogleitを試しましたが、chrome pdfプラグインに関する多数の質問で有用な情報が見つかりません. これを修正する方法はありますか?