2017-05-21 21 views
0

私はiText7を使用してPDFを生成し、それを新しいタブで開きます。iText7を使用してPDFを開いたときに自動的に印刷ダイアログを開きます

HttpHeaders headers = new HttpHeaders(); 
headers.setContentType(MediaType.parseMediaType("application/pdf")); 
String filename = "C:\\temp\\first-output2.pdf"; 
headers.add("content-disposition", "inline;filename=" + filename); 
headers.setCacheControl("must-revalidate, post-check=0, pre-check=0"); 

ユーザの意図は常に印刷されるため、PDFを表示して印刷ボタンをクリックさせることは不便です。だから私はに、PDFがになったら直ちに印刷ダイアログを開きたいと思っています。 PdfAction.PRINTDIALOGがiText7に存在しないため

このソリューションは、

Open print dialog automatically when PDF opened, using iText

を動作しませんでした。

PdfAction action = PdfAction.createJavaScript("this.print(true);\\r"); 

がどのように私は、ページの読み込み後に直接印刷ダイアログを開くことができるように私も、うまくいきませんでした、様々なJavaScriptのオプションを試してみましたか?

+0

あなたが開いているアクションまたはJavaScriptのサポートがいくつかのPDFビューアが制限される可能性があることを知っていますか? – mkl

+0

誰かが限定されたPDFビューアを使用する場合、彼は制限されます。私はAdobe Readerのために働く解決策に満足しています。 – ratlan

+0

OK。私は、Adobe Reader(JavaScript対応)のコンセプト証明に基づいて、それぞれの顧客にすべてのPDFビューアと構成で機能する機能を約束した人々が、非常に多くの質問をしているので、単に質問しました。 – mkl

答えて

4

文書の印刷ダイアログを開くには、this.print(true); JavaScriptコードを使用する必要があります。

あなたは次のようにiText7で、このようなアクションを追加することができます。

PdfAction printAction = new PdfAction(); 
printAction.put(PdfName.S, PdfName.JavaScript); 
printAction.put(PdfName.JS, new PdfString("this.print(true);\r")); 
pdfDocument.getCatalog().setOpenAction(printAction); 
関連する問題