JavaFX打印自定义纸张尺寸

标签 javafx

在 JavaFX 中,我想将照片打印到 10x15 的纸上。有一些 Paper 常数,但没有 100x150 mm 常数。

是否可以创建自己的 Paper 以在 PageLayout 中使用它?

谢谢。

PageLayout pageLayout = printer.createPageLayout(Paper.JAPANESE_POSTCARD, PageOrientation.LANDSCAPE, Printer.MarginType.EQUAL);
        double scaleX = pageLayout.getPrintableWidth() / node.getBoundsInParent().getWidth();
        double scaleY = pageLayout.getPrintableHeight() / node.getBoundsInParent().getHeight();
    node.getTransforms().add(new Scale(scaleX, scaleY));
    PrinterJob job = PrinterJob.createPrinterJob(printer);
    if (job != null) {
        System.out.println("Job created!");
        boolean success = job.printPage(node);
        if (success) {
            System.out.println("Job successfully finished!");
            job.endJob();
        } else {
            System.out.println("Job NOT successful!");
        }
    }

最佳答案

您可以使用类 PrintHelper,它可以访问 Paper 的包私有(private)构造函数。

Paper photo = PrintHelper.createPaper("10x15", 100, 150, Units.MM);

关于JavaFX打印自定义纸张尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19796091/

相关文章:

java - 如何将数学符号(例如 R^n)放入 Java 字符串?

java - 无法使用 Thread.start() 启动 JavaFX 任务

java - 在 Hbox 中找到按下的节点的位置

JavaFX 导入和扩展应用程序未得到识别

javaFX - 创建流畅的动画而不创建新线程

java - javafx中单击组合框时如何刷新数据?

java - 如何将javafx条形图刻度线设置为条形图的中间?

java - 如何沿着一条线将 Sprite 一次移动一定数量的像素?

JavaFX:仅声明节点即可更改其他节点的背景

java - 访问测试包中的静态变量