我尝试通过 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/