我正在使用Apache wicket 6.19.0
,pdfbox 1.8.8
和Java 8
. 我面临的问题是,当我在Windows
机器上部署我的应用程序时,我在屏幕上看到了打印对话框,但是当部署在Linux
服务器上时,当从 UI 调用打印功能时,它不会在屏幕上显示打印对话框。
代码:
public static PrintService choosePrinter() {
PrinterJob printJob = PrinterJob.getPrinterJob();
if(printJob.printDialog()) {
return printJob.getPrintService();
}else {
return null;
}
}
@Override
public File getObject() {
File file = new File("document.pdf");
file.deleteOnExit();
PDDocument document = new PDDocument();
//prepare the pdf here...
PrinterJob job = PrinterJob.getPrinterJob();
PrintService service = choosePrinter();
if(service != null){
job.setPrintService(service);
document.silentPrint(job);
}
document.close();
} catch (Exception e) {
LOGGER.error("Exception: "+e);
}
return file;
}