サーブレットを提供する Web アプリを実行しています。このサーブレットは、ネットワーク ファイル システムから PDF ファイルを開き、最終的に要求元のブラウザーにストリーミングします。
すべての pdf ファイルは、adobe ライフサイクル pdf ジェネレーターによって線形化され、高速な Web 表示の準備が整います。
残念ながら、高速 Web ビューは機能しません。Javaコードでファイルを開いてストリーミングする方法と、応答ヘッダー情報の設定の問題だと思います。webapp 内のテスト pdf を jboss AS にデプロイし、ブラウザーから URL で直接開くと、インクリメンタル ロードが機能します。
誰でも私を助けることができますか?
私のサーブレットのコードは次のとおりです。
response.setContentType("application/pdf");
response.setHeader("Expires", "0");
response.setHeader("Cache-Control",
"must-revalidate, post-check=0, pre-check=0");
response.setHeader("Content-Disposition",
"inline;filename=" + documentReference);
response.setHeader("Accept-Ranges", "bytes");
File nfsPDF = new File(NFS_DIRECTORY_PATH + documentReference);
FileInputStream fis = new FileInputStream(nfsPDF);
BufferedInputStream bis = new BufferedInputStream(fis);
ServletOutputStream sos = response.getOutputStream();
byte[] buffer = new byte[(int) nfsPDF.length()];
while (true) {
int bytesRead = bis.read(buffer, 0, buffer.length);
if (bytesRead < 0) {
break;
}
sos.write(buffer, 0, bytesRead);
}
sos.flush();
//... closing...