在javafx中打印API?

时间:2017-08-30 06:23:49

标签: java javafx

这里我想要实现的是通过获取默认打印机打印锚定窗格,这是代码。

public class printnodeController {
@FXML
private AnchorPane print;
public void print (){

    Printer printer = Printer.getDefaultPrinter();
    PageLayout pageLayout
        = printer.createPageLayout(Paper.A4, PageOrientation.PORTRAIT, 
Printer.MarginType.HARDWARE_MINIMUM);
    PrinterAttributes attr = printer.getPrinterAttributes();
    PrinterJob job = PrinterJob.createPrinterJob();
    double scaleX
        = pageLayout.getPrintableWidth() / 
print.getBoundsInParent().getWidth();
    double scaleY
        = pageLayout.getPrintableHeight() / 
print.getBoundsInParent().getHeight();
    Scale scale = new Scale(scaleX, scaleY);
    print.getTransforms().add(scale);

    if (job != null && job.showPrintDialog(print.getScene().getWindow())) {
      boolean success = job.printPage(pageLayout, print);
      if (success) {
        job.endJob();

      }
    }
    print.getTransforms().remove(scale);

}
}

但是我收到了这个错误:

    java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at 

  com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
    at 



  com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
    Caused by: java.lang.NullPointerException
    at application.printnodeController.print(printnodeController.java:25)
    at application.Main.main(Main.java:47)
    ... 11 more
    Exception running application application.Main

我曾尝试搜索,但没有找到任何解决方案;请帮忙 这个网站的新用户 谢谢你提前。

0 个答案:

没有答案