私の GWT アプリでは、PDF ファイルをダウンロード/ストリーミングするためのサーブレットを作成しました。
以下はコードです。
protected void updateResponse(HttpServletResponse response, InputStream dataStream, long contentLength, KnownContentTypes contentType, String filename, int cacheSeconds) {
response.setHeader("Content-Type", contentType.getTypeString());
response.setHeader("Content-Length", String.valueOf(contentLength));
response.setHeader("Content-disposition", "inline;filename=" + filename);
response.setHeader("Cache-Control", "max-age=" + cacheSeconds);
byte[] buffer = new byte[BUFFER_SIZE];
try {
ServletOutputStream out = response.getOutputStream();
while ((dataStream.read(buffer)) != -1) {
out.write(buffer);
}
} catch (IOException e) {
sendError(response);
}
}
pdf はブラウザーで正常にレンダリングされます。問題は、一部の pdf のサイズが非常に大きいことです。これは window.open で呼び出されるため、空白のブラウザしか表示されません。
「5MB のうち 1MB がダウンロードされました」のような動的メッセージを表示し、すべてのバイトがストリーミングされたら PDF ファイル全体を表示/レンダリングしたいと考えています。
これを行う方法を教えてください。私は GWT の初心者であり、どんな助けも感謝します。
ありがとう。