gpt4 book ai didi

JavaFX : Image getting scaled to 25% and then getting printed.

转载 作者:行者123 更新时间:2023-12-01 10:34:58 24 4
gpt4 key购买 nike

我正在尝试使用 JavaFX api 打印图像。不幸的是,它会剪切图像的一部分(大约 25%),然后将其拉伸(stretch)到整个 A4 页面并打印。我的打印代码做错了什么。无论打印机是什么,如何指示将图像适合打印页面。请告诉我。

代码:

 public void printThis() {

System.out.println("I was called");
// note you can use overloaded forms of the Image constructor
// if you want to scale, etc
String path = "resources/img/printouts/image.png";
Image image = new Image(getClass().getResource(path).toExternalForm());
ImageView imageView = new ImageView(image);
new Thread(() -> printImage(imageView)).start();
}

public void printImage(ImageView image) {
Printer printer = Printer.getDefaultPrinter();
PrinterJob printJob = PrinterJob.createPrinterJob(printer);
PageLayout pageLayout = printJob.getJobSettings().getPageLayout();
//PageLayout pageLayout = printer.createPageLayout(Paper.A4, PageOrientation.PORTRAIT, Printer.MarginType.DEFAULT);
printJob.getJobSettings().setPageLayout(pageLayout);
if (printJob != null) {
boolean success = printJob.printPage(image);
if (success) {
printJob.endJob();
}
}
}

请让我知道我做错了什么。谢谢。 :-)

最佳答案

您可以将以下代码添加到 printImage 方法中:

image.setPreserveRatio(true);
image.setFitHeight(pageLayout.getPrintableHeight());
image.setFitWidth(pageLayout.getPrintableWidth());

这将打印缩放到可以容纳在 pageLayout.getPrintableWidth() x pageLayout.getPrintableHeight() 的矩形中的最大尺寸的图像,并保留比例,请参阅ImageView.preserveRation .

关于JavaFX : Image getting scaled to 25% and then getting printed.,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34815660/

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