2010-05-10 64 views
0

我想以獨立於系統(僅在目標系統上正確安裝PDF查看器)的Java(Swing)應用程序顯示PDF文檔。如何使用WebStart從Java顯示和部署PDF文檔

另外我想用Java WebStart部署這個PDF文檔。

您能否告訴我用「標準」方法來實現這一目標? (我承認,我懶惰/忙着查看細節......)謝謝!

回答

1

我假設你的意思是你想要將PDF與Java Web Start應用程序一起部署?如果是這樣,您只需將PDF(s)打包到您的webstart應用程序。當您的應用程序下載並運行時,PDF文件也會出現,您的代碼可以使用getClass()。getResource(「/ where/is/my.pdf」)類型的查找來查找PDF,然後對其進行操作顯示。您可能還需要讓代碼從資源中讀取PDF並將其保存在臨時文件(File.createTempFile())中,以便PDF查看器可以看到它。

粗略的想法:

// 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 2010-05-13 09:59:20

+1

我不會太在意將臨時文件放在客戶機上,客戶請求的基礎。如果您在下載PDF時查看IE行爲,則會將其保留在臨時狀態。如果您的平臺不是Windows,即使正在查看文件(稍後將發佈),您也可能會刪除該文件。在Windows上,如果您的應用程序暫時掛起(例如應用程序終止 - 請參閱File.deleteOnExit()),您可以稍後再嘗試刪除該文件。 – 2010-05-14 07:03:56