2015-04-02 70 views
1

我試圖通過JavaFX應用程序打印收據,但每次嘗試打印時都會收到NullPointerException使用PrinterJob時獲取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) 

我的Java是8版本,我的操作系統是Ubuntu的01年4月14日

+0

什麼是borderpane? – SomeJavaGuy 2015-04-02 06:21:33

+2

從[PrinterJob.createPrinterJob'的JavaDocs](http://docs.oracle.com/javase/8/javafx/api/javafx/print/PrinterJob.html#createPrinterJob--)*「如果沒有打印機可用的,這將返回null,有些平臺可能會提供一個僞打印機,它會創建一個文檔,只要平臺也將它們枚舉爲打印機就可以列舉出來「* – MadProgrammer 2015-04-02 06:23:09

+0

@KevinEsche這是一個錯字。修復。 – UrsinusTheStrong 2015-04-02 06:25:20

回答

0

從JavaDoc中PrinterJob.createPrinterJob 「如果沒有 打印機可用,則返回null。某些平臺可能會提供 虛擬打印機,它會創建一個文檔,這些將被列舉爲 h ERE只要該平臺還列舉了他們,如果他們是 打印機」

如上評論指出通過@MadProgrammer,我沒有安裝任何打印機,這就是爲什麼我得到一個NullPointerException。所以,我繼續安裝cups-pdf

我安裝cups-pdf如下 -

sudo apt-get install cups-pdf 

,然後利用這點我是能夠打印收據(來源:Way to Create PDF Printer in Ubuntu)創建的PDF打印機。現在,我在打印時沒有收到任何NullPointerException

相關問題