2017-10-02 6 views
0

私のスプリングコントローラを使用して、生成されたpdf.Byの印刷ビューを直接開きたいのですが、iTextPDFを使用してpdfを生成し、OutputStream(HttpServletResponse.getOutputStream )).pdfをダウンロードしています。私はブラウザでそれを開き、印刷ボタンを使用して印刷することができます。 コントローラから印刷UIを取得しているか、印刷UIを使用せずにプリンタに送信しています。 私はそれを使用して生成さiTextのPDFファイルを追加して「theObject 'OUTSTREAM' に私の制御法の一部、Java - サーブレット/コントローラから直接プリンタにOutputStreamを送信

String mimeType = "application/pdf"; 
System.out.println("MIME type: " + mimeType); 
response.setContentType(mimeType); 
String headerKey = "Content-Disposition"; 
String headerValue = String.format("theCoder379.PDF"); 
response.setHeader(headerKey, headerValue); 
OutputStream outStream = response.getOutputStream(); 
createPdf(outStream, theObject); 
outStream.close(); 

createPdfにおいて(OUTSTREAM、theObject)メソッドを追加しました。 これをどうすれば実現できますか?

答えて

0

(サーバー側から)希望する方法はありません。今、私はiTextPDFを使用してPDFを生成したOutputStream

良いにそれを置くことで午前

。これは実質的にサーバーサイドのコードから行うことができます。

私は、ブラウザが外部アプリケーション(PDFプラグイン/ビューワ)をロード 印刷ボタンを使用してブラウザや印刷で開き、プラグインを使用すると、生成したファイルを表示させることができます。あなたはそれを何も支配していません。

embedded pluginで独自のページを作成することもできます。

<object data="./pdfServlet" type="application/pdf" width="100%" height="100%"> 
<p>Alternative text - include a link <a href="myfile.pdf">to the PDF!</a> 
</p> 
</object> 

とクライアント側のJavaScriptでprintイベントを起動してみてください。

しかし
window.print(); 

- 私はあなたのWebページがしようとした場合

  • 一部の人が(私自身を含め)に敏感である必要があり、それはすべてのブラウザとのすべてのバージョンでは動作しないことがあり、いくつかの潜在的な問題

    • を見ます明示的に求められていないことをする(印刷など)
  • 関連する問題