我使用Desktop.print()
方法编写了一个自动打印文档的应用程序。对于MS Word,MS Excel,记事本和Adobe Reader,它会将应用程序闪烁一秒钟,然后进行打印,这正是我想要的。当我尝试打印图像文件(.jpeg,.png等等)时,它会打开Windows Photo Viewer,这是我的图像默认应用程序,但它不会打印它们。相反,它需要我到打印屏幕,我必须手动点击打印。知道为什么这样的行为会有所不同吗?
DefaultListModel<File> listModel = new DefaultListModel<>();
Boolean openDocsAfterPrint = false;
void openAndPrintDocs() {
int fileIndex = 0;
while (fileIndex < listModel.size()) {
if (Desktop.isDesktopSupported()) {
if (openDocsAfterPrint == true) {
try {
Desktop.getDesktop().open(listModel.get(fileIndex));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
try {
Desktop.getDesktop().print(listModel.get(fileIndex));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
fileIndex++;
}
}
同样,除了Photo Viewer之外,它的一切正常。感谢。