如何在java fx中显示打印对话框并打印文档(不仅仅是节点)
我试图在JavaFX中打印生成的pdf文件,但我看到的所有示例都是用于打印JavaFX节点的。我本可以使用普通的打印api,但它显示的打印对话框是基于swing的,在行为和外观上都像一个完全不同的应用程序,这可能会让用户感到困惑 我想在打印之前显示一个对话框,这样用户就可以选择他们喜欢的打印机,如果可能的话还可以更改页面设置。根据这一点,在Java8中是预期的 1) PrinterJob-控制打印过程和 提供对如何在java fx中显示打印对话框并打印文档(不仅仅是节点),java,printing,javafx,javafx-8,Java,Printing,Javafx,Javafx 8,我试图在JavaFX中打印生成的pdf文件,但我看到的所有示例都是用于打印JavaFX节点的。我本可以使用普通的打印api,但它显示的打印对话框是基于swing的,在行为和外观上都像一个完全不同的应用程序,这可能会让用户感到困惑 我想在打印之前显示一个对话框,这样用户就可以选择他们喜欢的打印机,如果可能的话还可以更改页面设置。根据这一点,在Java8中是预期的 1) PrinterJob-控制打印过程和 提供对 *将显示的打印和页面设置对话框 “平台本机”对话框 至少在Windows和Mac O
*将显示的打印和页面设置对话框 “平台本机”对话框 至少在Windows和Mac OS X上 并标记为固定 然而,这个
PrinterJob
类和javafx打印包有两个问题(据我所知):
欢迎使用任何指针。如果使用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打印对话框功能,请投票支持:-)