JavaFX Print WebView as PDF 仅打印一页

标签 java javafx

我尝试通过 Microsoft Print to PDF 打印机打印 WebView 的内容。

这是我的代码:

BorderPane root = new BorderPane();
Scene scene = new Scene(root,1920,4000);
scene.getStylesheets().add(getClass().
      getResource("application.css").toExternalForm());

WebView browser = new WebView();
WebEngine webEngine = browser.getEngine();
webEngine.load(url.toString());
scene.setRoot(browser);
primaryStage.setScene(scene);

...

if(printerToUse != null) {
   PrinterJob job = PrinterJob.createPrinterJob();
   job.setPrinter(printerToUse);
   PageLayout pageLayout = printerToUse.createPageLayout(Paper.A4, 
   PageOrientation.PORTRAIT, Printer.MarginType.HARDWARE_MINIMUM);
   job.printPage(pageLayout, browser);
   job.endJob();
}

系统提示我选择保存位置,并且打印了 PDF,但它只包含网页的一页裁剪页。即使我选择 A0 的页面布局(该页面肯定适合该页面布局),我也只会得到一个裁剪后的一页 PDF。 如何打印 WebView 中显示的整个区域?

最佳答案

尝试使用 WebEngine 对象的 print() 方法,而不是使用 job.printPage()
例如:

if (job != null) {
    webEngine.print(job);
    job.endJob();
}

这应该可以解决您的问题。

关于JavaFX Print WebView as PDF 仅打印一页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46295630/

相关文章:

javafx - javaFX中如何连接两轴图中的两点

java - 如何修复折线图十字准线的位置

java - web.xml 文件中的错误 - Tomcat 虚拟服务器

java - 使用SVN作为Spring Cloud Config服务器时出错

java - 您在 Java 项目中使用哪些代码分析工具?

css - java fx 菜单栏上的文本

java - 生成大立方体 block

java - 为什么Spring任务调度程序不同时执行任务?

java - Shift+单击以选择 JavaFX TableView 中的多个单元格挂起

没有 GUI 的 JavaFX