2012-10-31 5 views
0

JSF 파일에서 PDF를 작성하기 위해 Flying Saucer를 사용하기 시작했습니다. 이제 문제가 생겼습니다. HTTP 응답을 차단하지 않고 PDF를 만드는 응용 프로그램에서 사용하고 싶습니다. 나의 이해 ITextRenderer이 (함수 loadDocument에서) 라인 3에서 전체 JSF를로드에 따르면HTTP 응답을 차단하지 않고 Flying Saucer로 PDF를 만드는 방법은 무엇입니까?

ServletOutputStream outputStream = response.getOutputStream(); 
ITextRenderer renderer = new ITextRenderer(); 
renderer.setDocument(new URL("http://localhost:8080/pdf2.faces").toString()); 
renderer.layout(); 
renderer.createPDF(outputStream); 
outputStream.flush(); 

:

아래의 코드를보고하십시오. ITextRenderer는 전체 JSF가 서버에 의해 생성 될 것을 요구합니다.

그런 ITextRenderer 라인 4에 PDF 레이아웃을 생성하고 라인 JSF의 생성 시간이 오래 걸릴 경우 어떻게 5.

에서의 OutputStream에 넣어? 위의 코드는 서버가 전체 JSF를 작성할 때까지 3 행에 스택됩니다. 그래서 서블릿에 1-6 행의 코드를 넣으려고하면 HTTP 응답을 차단하고 시간 초과 문제를 일으킬 수 있습니다. Flying Saucer가 전체 원본 JSF가 작성 될 때까지 기다리지 않고 출력 스트림 HTTP 응답을 작성하기를 원합니다. 가장 좋은 방법은 무엇입니까? Flying Saucer에 API 지원이 있습니까? 도움이 될 것입니다. 나는 내 원래 JSF를 재 설계하고에 설명 된대로 내가 JSF 부분에서 하나의 PDF를 생성

2) 부분에서로드

1) :

답변

0

나는 비행 접시 API를 사용하여 다음과 같은 해결 방법을 발견했다 접시 WIKI

http://code.google.com/p/flying-saucer/wiki/FAQPDF#How_can_I_print_multiple_pages_on_to_one_PDF,_if_they_come_from_multiple_documents

플라잉 그것은 작동하지만, 여전히 해결 방법입니다. JSF 부분을 로딩 할 때 시간이 오래 걸리면 시간 초과 문제가 발생할 수 있습니다. 문제를 해결하는 방법? 어떤 도움을 주시면 감사하겠습니다.

관련 문제