2017-05-21 89 views
0

我使用iText7生成PDF,然後在新選項卡中打開它。使用iText7自動打開打印對話框使用iText7

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打開時立即打開打印對話框

這個解決方案沒有奏效

Open print dialog automatically when PDF opened, using iText

因爲PdfAction.PRINTDIALOG不iText7存在。

我也試過,沒有工作的各種JavaScript選項,如

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

我怎樣才能頁面加載後直接打開打印對話框?

+0

你知道,開放的行爲或JavaScript的支持可能在某些PDF瀏覽器的限制? – mkl

+0

如果任何人使用有限的PDF查看器,他將受到限制。我很樂意爲Adobe Reader提供解決方案。 – ratlan

+0

好的。我只是問,因爲這裏有很多基於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);