2014-04-22 3 views
0

많은 큰 pdf 파일이있는 저장소가 있습니다. 나는 사용자가 서블릿으로 pdf 파일을 다운로드 할 수 있도록 허용하고있다. "파일보기"를 클릭하자마자 사용자는 이미 다운로드 한 내용 (페이지 단위)을 볼 수 있어야합니다. 당신이 볼 수 있듯이 java open pdf 파일을 다운로드 할 때

String fileType = "application/pdf"; 

response.setContentType(fileType); 

// Make sure to show the download dialog 
response.setHeader("Content-disposition","inline; filename=JavaIn21Days.pdf"); 

URL url = new URL("http://portal.aauj.edu/e_books/teach_your_self_java_in_21_days.pdf"); 
BufferedInputStream bufferedInputStream = new BufferedInputStream(url.openStream()); 

byte[] buffer = new byte[4096]; 
int length; 
while ((length = bufferedInputStream.read(buffer)) > 0){ 
    out.write(buffer, 0, length); 
    out.flush(); 
} 
in.close(); 
out.close(); 

나는 "인라인"으로 "내용 - 처리"를 만들기 위해 노력하고 또한 나는 루프 대신 아웃 사이드 루프 out.flush()을 넣어.

+0

질문입니다. 답변 사이트입니다. 누군가 프로젝트에서 작업하거나 코드를 만들길 원한다면 vworker와 같은 프로그래머 용 사이트를 이용하십시오. – ElGavilan

+0

나는 어떤 사람도 일하기를 원하지 않는다. 나는 response.setHeader ("Content-disposition", "inline; filename ="abc.pdf ")와 같은 많은 것들을 시도했지만 그것을 성취 할 수 없다. 그래서 나는 도움을 청하고있다. 이전에 해본 적이있는 사람이 있다면 – pratik

+0

많은 것을 시도해 본 경우 여기에서 공유하십시오 노력을 보여 주며 이미 시도한 해결책을 얻을 기회가 줄어 듭니다 시도한 코드와 그 이유를 수정하십시오 (오류 로그를 게시하거나 "아무것도하지 못했습니다"또는 설명). 이렇게 질문을 끝내면 닫힐 수 있습니다. – Nunser

답변

0

나는 한동안 PDF.js을 사용했습니다. 빠른 응답이 매우 필수적이라면, 단일 페이지 레이아웃은 매우 유용합니다. 첫 번째 페이지는 1 초에 한 번씩 깜박입니다. 사용자는 이전 및 다음을 클릭 할 수 있으며 때마다 한 페이지 만로드되며 매우 빠르게 작동합니다.. 하나의 페이지 레이아웃 http://www.worldwidewhat.net/2011/08/render-pdf-files-with-html5/

Pdf.js에 대한

자바 스크립트 기술과 브라우저에서 실행됩니다. 따라서 HTML (PDF가 표시됨)이있는 폴더 외부의 모든 파일에 액세스 할 수 없습니다 (절대 경로 문제). 이 문제를 해결하기 위해 은 jsp servlet을 사용했습니다. 내보기 .HTML 페이지는 jsp 페이지가되었습니다. 서블릿을 파일 시스템의 pdf에 액세스했습니다. 서블릿 URL을 PDFJS.open ("url") 함수 또는 DEAFULT_URL 매개 변수로 제공 할 수 있습니다. servletname? filePath = value를 사용하여 파일 경로를 매개 변수로 서블릿에 전달할 수 있습니다. 위의 주어진 코드에서 내 질문에, 대신 나는 파일 시스템에서 데이터를 읽을 것이고 나머지는 동일하다.

관련 문제