2017-10-02 11 views
0

스프링 컨트롤러를 사용하여 생성 된 pdf.By의 인쇄보기를 바로 열려고합니다. 이제 iTextPDF를 사용하여 pdf를 생성하고 OutputStream (HttpServletResponse.getOutputStream())) .pdf를 다운로드 중입니다. 브라우저에서 열어 인쇄 버튼을 사용하여 인쇄 할 수 있습니다. 컨트롤러에서 인쇄 UI를 가져 오거나 인쇄 UI를 사용하지 않고 프린터로 보내고 싶습니다. createPdf 내에서 제어 방식의 일부를 추가 한 ,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(); 

(outStream, theObject) 메소드가 'outStream'에서 'theObject'를 이용하여 상기 생성이 iText PDF를 추가한다. 어떻게해야합니까?

답변

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> 

및 클라이언트 측 자바 스크립트에서 print 이벤트를 호출하려고합니다.

window.print(); 

그러나 - 나는 볼 몇 가지 잠재적 인 문제

  • 가 모든 브라우저에서 작동하지 않을 수 및 웹 페이지가 시도하는 경우 모든 버전이
  • 어떤 사람들은 (자신 포함) 민감 할 수 있습니다 명시 적으로 요구되지 않는 작업 (예 : 인쇄)