使用PrinterJob时获取NullPointerException

时间:2015-04-02 06:19:23

标签: java printing javafx nullpointerexception

我正在尝试通过JavaFX应用程序打印收据,但每当我尝试打印时,我都会收到NullPointerException

import javafx.print.PrinterJob;
// More Imports

public class PrintBasket 
{
    public PrintBasket()
    {
        VBox vboxPages = new VBox();
        // Some Code
        printAction();
    }

    public void printAction()
    { 
        PrinterJob printerJob = PrinterJob.createPrinterJob();

        // Some Code

        if(printerJob.printPage(vboxPages)) { // Getting exception at this line
              printerJob.endJob();
        }
    }
}

我得到的例外情况如下:

Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
    at Dialogs.PrintBasket.printAction(PrintBasket.java:638)
    at Dialogs.PrintBasket.<init>(PrintBasket.java:214)
    at Tabs.PrintUtil.<init>(PrintUtil.java:75)

My Java是版本8,我的操作系统是Ubuntu 14.04.01

1 个答案:

答案 0 :(得分:1)

  

从PrinterDob.createPrinterJob的JavaDocs&#34;如果没有   打印机可用,这将返回null。有些平台可能提供   伪打印机,用于创建文档。这些将被列举   只要平台也将它们枚举为它们,就在这里   打印机&#34;

正如上面评论中的 @MadProgrammer 所示,我没有安装任何打印机,这就是我获得NullPointerException的原因。所以,我继续安装cups-pdf

我安装了cups-pdf,如下所示 -

sudo apt-get install cups-pdf

然后创建了一个PDF打印机,使用该打印机我可以打印收据(来源:Way to Create PDF Printer in Ubuntu)。现在,我在打印时没有得到NullPointerException

相关问题