Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在java fx中显示打印对话框并打印文档(不仅仅是节点)_Java_Printing_Javafx_Javafx 8 - Fatal编程技术网

如何在java fx中显示打印对话框并打印文档(不仅仅是节点)

如何在java fx中显示打印对话框并打印文档(不仅仅是节点),java,printing,javafx,javafx-8,Java,Printing,Javafx,Javafx 8,我试图在JavaFX中打印生成的pdf文件,但我看到的所有示例都是用于打印JavaFX节点的。我本可以使用普通的打印api,但它显示的打印对话框是基于swing的,在行为和外观上都像一个完全不同的应用程序,这可能会让用户感到困惑 我想在打印之前显示一个对话框,这样用户就可以选择他们喜欢的打印机,如果可能的话还可以更改页面设置。根据这一点,在Java8中是预期的 1) PrinterJob-控制打印过程和 提供对 *将显示的打印和页面设置对话框 “平台本机”对话框 至少在Windows和Mac O

我试图在JavaFX中打印生成的pdf文件,但我看到的所有示例都是用于打印JavaFX节点的。我本可以使用普通的打印api,但它显示的打印对话框是基于swing的,在行为和外观上都像一个完全不同的应用程序,这可能会让用户感到困惑

我想在打印之前显示一个对话框,这样用户就可以选择他们喜欢的打印机,如果可能的话还可以更改页面设置。根据这一点,在Java8中是预期的

1) PrinterJob-控制打印过程和 提供对
*将显示的打印和页面设置对话框 “平台本机”对话框 至少在Windows和Mac OS X上

并标记为固定

然而,这个
PrinterJob
类和javafx打印包有两个问题(据我所知):

  • 它只打印节点
  • 没有清晰的方式显示对话框供用户选择打印属性
  • 那么,如何在JavaFX中提供打印对话框来帮助用户打印pdf文档呢

    PS:我正在桌面环境(Windows 7 64位)中使用Java 8 update 20


    欢迎使用任何指针。

    如果使用Java8,则只能打印节点(据我所知)。 但您可以创建一个ImageView来渲染可以打印的图像。 如果要打印pdf,请查看或查看任何其他javafx pdf查看器

    您可以在节点(pdf查看器)中渲染pdf并打印它

    但是如果你想要一个打印对话框,我认为你必须建立自己的

    但这并不难

    您可以使用打印机类提供的所有信息,例如:

        ObservableList<PaperSource> paperSources = FXCollections.observableArrayList();
        paperSources.add(PaperSource.AUTOMATIC);
        paperSources.add(PaperSource.BOTTOM);
        ...
    
        PrintQuality.values()
        PrintSides.values() 
        ...
    
    observeListPaperSources=FXCollections.observearraylist();
    paperSources.add(PaperSource.AUTOMATIC);
    paperSources.add(PaperSource.BOTTOM);
    ...
    PrintQuality.values()
    PrintSides.values()
    ...
    
    OK,我提交了一份jira文件,要求在这里使用javafx打印对话框功能,请投票支持:-)