2011-05-11 93 views
0

嗨m使用此程序來打印我的文件bt打印前打開文件?我想刪除that.any建議?打印前文件打開?

import java.awt.Desktop; 
import java.io.File; 
import java.io.IOException; 

public class PrintFile {  

    public static void fileToPrint(File fis) { 
    try { 
     Desktop desktop = null; 
     if (Desktop.isDesktopSupported()) 
     { 

     desktop = Desktop.getDesktop(); 

     } 
     desktop.print(fis); 
     System.out.print("Printing Document"); 
    } 
    catch (IOException ioe) 
    { 
     ioe.printStackTrace(); 
    } 

    } 
} 

回答

1

在AWT桌面API使用系統的本機功能(在這種情況下,Windows操作系統。)的JVM很可能調用的ShellExecute /的ShellExecuteEx上的文件與「打印」命令。 Windows處理命令的方式是在註冊表中搜索文件類型的打印命令,然後運行該命令。對於大多數文件類型,這將導致應用程序處理它打開,然後自動執行打印命令。

總之,我不認爲如果不打開應用程序,您就可以使用Desktop API。你需要自己做所有的打印(當然,這是非常困難的)。

+0

這個桌面API也可以在Linux系統上運行嗎? – Harinder 2011-05-11 04:57:32

+0

我不確定linux JVM會用什麼方法打印,但我想它會是相似的。無論如何,該任務將委派給本機系統的打印文件的方法,該文件幾乎總是涉及啓動文件類型的處理程序,因爲這是唯一知道如何正確打印文件的應用程序。 – dlev 2011-05-11 05:07:13