2013-04-15 2 views
2

서블릿을 사용하여 브라우저에 pdf 스트림을 보내고 있습니다.Java 어떻게 PDF를 사용하여 PDF를 닫으십시오 자바 스크립트?

사용자에게 표시 할 때 pdf에서 인쇄 대화 상자를 열어야한다는 요청이 있습니다. iText API를 사용하여이 작업을 성공적으로 수행했습니다. 다음과 같이 입력하십시오 :

stamper.setPageAction(PdfWriter.PAGE_OPEN, new PdfAction(PdfAction.PRINTDIALOG), 1); 

인쇄 후 pdf 파일을 닫아야합니다. pdfactions를 사용해 보았지만 얻을 수는 없습니다.

writer.setAdditionalAction(PdfWriter.DID_PRINT, PdfAction.javaScript("app.execMenuItem('Close');", writer)); 

또는

writer.setAdditionalAction(PdfWriter.DID_PRINT, PdfAction.javaScript("app.close();", writer)); 

내가 반드시 pdfActions를 사용할 필요가 없습니다,하지만 사용자가 프린터로 PDF를 보낸 후이를 활용하는 방법을 볼 수 없습니다 : 내가 시도하는 것입니다.

아이디어가 있으십니까?

답변

2

app.execMenuItem('Close');app.close()이 작동하지 않는 이유가 있습니다. 이 방법은 Adobe Reader/Acrobat의 독립 실행 형 버전을 닫도록 설계되었습니다. 브라우저에서 PDF를 보는 것 같습니다.이 경우 Adobe Reader를 플러그인, Chrome의 PDF 뷰어, Firefox의 pdf.js 또는 다른 PDF 뷰어로 사용합니다.

문제 1 : PDF 문서에서 브라우저 창을 닫아야합니다. PDF는 브라우저를 제어 할 권한이 없습니다. 그들은 다음과 같이 가정합니다 : 심각한 보안 문제가 아니겠습니까?

문제 2 : HTML 페이지 (예 : <object> 태그 사용) 및 establish a communication between the JavaScript in the PDF and the JavaScript in the HTML에 PDF를 포함합니다. 내 책에서이 작업을 수행하는 방법을 설명했지만 모든 OS의 모든 브라우저에서 작동하지는 않습니다. 예 : Chrome의 PDF 뷰어 및 Firefox의 pdf.js는 사용자의 명령을 완전히 무시합니다.

iText 라이브러리를 사용하여 솔루션을 요청하고 있지만 소프트웨어로는 할 수없는 것을 묻습니다.

+0

감사합니다. 브루노, 답변입니다. 귀하의 포인트에 관해서는 문제 2에서 언급 한 링크를 시도하기로 결정했습니다. 타겟 브라우저가 IE8이기 (클라이언트의 요구 사항) 때문입니다. 그러나, 나는 그것을 작동시키지 못했다. messageHandler가 이벤트 메시지를 포착하지 않는 것 같습니다. 필자가 준 예제에서 post_from_html.js도 무시했습니다. 단지 PDF에서 메시지를 받고 싶기 때문입니다. 이 정보를 알려주시겠습니까? 감사합니다. – FernandoA

+0

좋아 ... 나는 그것을 알아낼 수 있었다. 포인트 2는 나의 필요에 충분했다. – FernandoA

관련 문제