JavaFX 8 WebEngine打印方法无法在横向打印

时间:2015-01-23 02:33:05

标签: printing javafx javafx-8 javafx-webengine

我尝试在A4纸上以横向方向在JavaFX WebView(JavaFX 8_25)中打印HTML页面,但它以纵向打印,字体很小

printer.createPageLayout(Paper.A4, PageOrientation.LANDSCAPE, Printer.MarginType.DEFAULT);
PrinterJob job = PrinterJob.createPrinterJob(printer);
if (job != null) {
    System.out.println(job.getJobSettings().getPageLayout());
    webEngine.print(job);
    job.endJob();
}

System.out显示纵向方向

纸张=纸张:A4(210 x 297毫米)尺寸= 594.90087890625x841.3598022460938 MM Orient = PORTRAIT leftMargin = 54.0 rightMargin = 54.0 topMargin = 54.0 bottomMargin = 54.0

我发现在横向模式下打印HTML页面的唯一方法是在打印之前调用打印作业的showPageSetupDialog方法。

printer.createPageLayout(Paper.A4, PageOrientation.LANDSCAPE, Printer.MarginType.DEFAULT);
PrinterJob job = PrinterJob.createPrinterJob(printer);
if (job != null) {
    if(job.showPageSetupDialog(null)) {
        System.out.println(job.getJobSettings().getPageLayout());
        webEngine.print(job);
        job.endJob();
    }
}

如果在“页面设置”对话框中选择“横向”,则System.out显示

纸张=纸张:A4尺寸= 210.0x297.0 MM东方= LANDSCAPE leftMargin = 54.0 rightMargin = 53.11810302734375 topMargin = 51.995269775390625 bottomMargin = 54.0

我在对话框中遇到问题,我每次都必须设置A4和横向。

我有3个问题: -

  1. 为什么webEngine.print没有使用PageLayout我已经传入打印机?

  2. 是否可以在webEngine.print(作业)上获取横向方向;无需通过页面设置对话框设置它?

  3. 如果我必须使用页面设置对话框,JavaFX有什么方法可以记住我为下一个打印作业(即A4和横向)的页面设置设置的内容吗?

  4. 在输入时我也试过

    print{@page {size: landscape}}
    

    在HTML网页上的样式标记内,但也不起作用。

    由于

1 个答案:

答案 0 :(得分:6)

您需要使用[{1}}

方法将PageLayout设置为JobSettings的{​​{1}}

试试这段代码:

PrinterJob