您是否正在使用此程序打印我的文件?它会在打印前打开文件吗?我想删除它。有什么建议吗?
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();
}
}
}
答案 0 :(得分:1)
AWT中的Desktop API使用系统的本机功能(在本例中为Windows。)JVM可能使用“print”命令在文件上调用ShellExecute / ShellExecuteEx。 Windows处理命令的方式是在注册表中搜索文件类型的print命令,然后运行它。对于大多数文件类型,这将导致处理它的应用程序打开,然后自动执行打印命令。
简而言之,我认为如果不打开应用程序,您将无法使用Desktop API。您需要自己进行所有打印(当然,这非常困难。)