gpt4 book ai didi

Javafx - 打印 DPI 大于 72 的节点

转载 作者:行者123 更新时间:2023-11-30 06:39:21 24 4
gpt4 key购买 nike

我正在尝试用非常基本的东西打印一个节点

private void print(Node node) {
System.out.println("Creating a printer job...");

PrinterJob job = PrinterJob.createPrinterJob();
if (job != null && job.showPrintDialog(node.getScene().getWindow()) ) {
System.out.println(job.jobStatusProperty().asString());

PageLayout pageLayout = Printer.getDefaultPrinter().createPageLayout(Paper.A4, PageOrientation.PORTRAIT, Printer.MarginType.HARDWARE_MINIMUM);

boolean printed = job.printPage(pageLayout, node);
if (printed) {
System.out.println("Printed.");
job.endJob();
} else {
System.out.println("Printing failed.");
}
} else {
System.out.println("Could not create a printer job.");
}
}

问题是我被 DPI 分辨率设置为 72。这是一种在其他 DPI 分辨率中更改它的方法(无需将尺寸与 72.0/wanted_dpi_resolution 相乘)吗? (我的屏幕也是 96 DPI)我非常希望能够以至少 96 DPI 的 DPI 值进行打印。

谢谢您,等待您的回复。

最佳答案

嗯,简短的回答是,这是不可能的。

希望这能帮助其他和我遇到同样问题的人。请查找附上的下一个代码。

public static void printReport(ArrayList<MyPane> nodeList) {
System.out.println("Creating a printer job...");

String printerName = CachedComponents.getPrinterName();

Printer printer = null;
for (Printer p : Printer.getAllPrinters()) {
if (p.getName().equals(printerName)) {
printer = p;
break;
}
}

PrinterJob job = PrinterJob.createPrinterJob(printer);
if (job != null) {
job.getJobSettings().setPrintQuality(PrintQuality.HIGH);

PageLayout pageLayout = printer.createPageLayout(Paper.A4, PageOrientation.PORTRAIT,
Printer.MarginType.HARDWARE_MINIMUM);

boolean fail = false;
for (int i=0; i<nodeList.size(); i++) {
MyPane node = nodeList.get(i);

double scaleX = pageLayout.getPrintableWidth() / node.getBoundsInParent().getWidth();
node.getTransforms().add(new Scale(scaleX, scaleX));

boolean printed = job.printPage(pageLayout, node);

if (printed) {
System.out.println("Printed.");
} else {
System.out.println("Printing failed.");
fail = true;
}
}
if (!fail) {
job.endJob();
}
} else {
System.out.println("Could not create a printer job.");
}
}

检查空值检查。

干杯!

关于Javafx - 打印 DPI 大于 72 的节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44652988/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com