2010-05-10 5 views
0

시스템 독립적 인 방식으로 Java (Swing) 응용 프로그램에서 PDF 문서를 표시하려고합니다 (PDF 뷰어가 대상 시스템에 제대로 설치되어있는 경우).WebStart를 사용하여 Java에서 PDF 문서를 표시하고 배포하는 방법

또한 Java WebStart를 사용하여이 PDF 문서를 배포하고 싶습니다.

이 문제를 해결하기 위해 "표준"방법을 말씀해 주시겠습니까? (나는 고백한다, 나는 게으르다/세부를 조사하기 위해 바쁘다. ..) 고마워!

답변

1

Java Web Start 응용 프로그램과 함께 PDF를 배포 하시겠습니까? 그렇다면 webstart 응용 프로그램과 함께 PDF를 패키지하기 만하면됩니다. 응용 프로그램이 다운로드되어 실행되면 PDF도 함께 제공되며 코드에서 getClass(). getResource ("/ where/is/my.pdf") 유형의 조회를 사용하여 PDF를 찾은 다음 디스플레이. PDF 뷰어가 볼 수 있도록 코드를 가져 와서 리소스에서 PDF를 읽어 임시 파일 (File.createTempFile())에 저장해야 할 수도 있습니다.

거친 아이디어 :

// Find the PDF in the Webstart App download 
    InputStream in = getClass().getResourceAsStream("/where/is/my.pdf"); 

    // create a temp file to copy the pdf to 
    File tmpFile = File.createTempFile("my", "pdf"); 
    OutputStream out = new FileOutputStream(tmpFile); 

    // stream the file from in to out ... heaps of examples on the net for doing this ("copy files") 

    // display the file 
    Desktop.getDesktop().open(tmpFile); 

    // ideally clean the tmp file up at some point. 
+0

감사합니다. 하지만이 경우 임시 파일을 정리하는 것은 사용자가 외부 뷰어를 닫을 때 모르기 때문에 까다로운 부분입니다. 하지만 PDF 파일을 직접 배포하는 방법을 찾지 못하는 한 (즉, 리소스가 아닌) – MartinStettner

+1

클라이언트 컴퓨터에 임시 파일을 두지 않는 것이 좋습니다. 고객 요청 기준. PDF를 다운로드 할 때 IE 동작을 보면 임시로 남아 있습니다. 플랫폼이 Windows가 아닌 경우 파일을 보더라도 삭제할 수 있습니다 (나중에 출시 될 예정 임). 창에서 응용 프로그램이 잠시 멈 추면 (예 : 응용 프로그램이 종료 될 때 - File.deleteOnExit() 참조) 잠시 후 파일을 삭제할 수 있습니다. –

1

Java 6 Desktop systemDesktop.open()을 사용하여 문서에 연결된 데스크톱 응용 프로그램 (이 경우 PDF 파일)을 열 수 있습니다.

+0

나는 질문의 첫 번째 부분에 대한 찾고 정확히 무엇을! 감사! – MartinStettner

관련 문제