打印前打开文件?

时间:2011-05-11 04:31:49

标签: java printing

您是否正在使用此程序打印我的文件?它会在打印前打开文件吗?我想删除它。有什么建议吗?

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 个答案:

答案 0 :(得分:1)

AWT中的Desktop API使用系统的本机功能(在本例中为Windows。)JVM可能使用“print”命令在文件上调用ShellExecute / ShellExecuteEx。 Windows处理命令的方式是在注册表中搜索文件类型的print命令,然后运行它。对于大多数文件类型,这将导致处理它的应用程序打开,然后自动执行打印命令。

简而言之,我认为如果不打开应用程序,您将无法使用Desktop API。您需要自己进行所有打印(当然,这非常困难。)