【发布时间】:2016-01-15 15:26:01
【问题描述】:
我正在处理一个 JavaFX 项目,我必须在其中打印一些我有路径的图像。现在的问题是,我想将图像作为 BufferedImage 获取,然后调用我拥有的打印函数。我怎样才能做到这一点。任何帮助都会很好。
代码:
public void printThis(String localPath){
// What should I do here?
System.out.println("Lets print this. ");
}
private void printImage(BufferedImage image) {
java.awt.print.PrinterJob printJob = java.awt.print.PrinterJob.getPrinterJob();
printJob.setPrintable(new Printable() {
@Override
public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) throws PrinterException {
// Get the upper left corner that it printable
int x = (int) Math.ceil(pageFormat.getImageableX());
int y = (int) Math.ceil(pageFormat.getImageableY());
if (pageIndex != 0) {
return NO_SUCH_PAGE;
}
graphics.drawImage(image, x, y, image.getWidth(), image.getHeight(), null);
return PAGE_EXISTS;
}
});
Platform.runLater(new Runnable() {
@Override
public void run() {
try {
printJob.print();
} catch (PrinterException e) {
e.printStackTrace();
}
}
});
}
编辑:
更新打印功能:
public void printImage(ImageView image) {
Printer printer = Printer.getDefaultPrinter();
PrinterJob printJob = PrinterJob.createPrinterJob(printer);
PageLayout pageLayout = printer.createPageLayout(Paper.A4, PageOrientation.PORTRAIT, Printer.MarginType.DEFAULT);
if (printJob != null) {
boolean success = printJob.printPage(image);
if (success) {
printJob.endJob();
}
}
}
图像在类路径中。请告诉我。谢谢你。 :-)
【问题讨论】:
-
您能否详细说明“图像在类路径中”以及在那种情况下
localPath参数是什么?您的意思是要将图像与您为应用程序创建的 jar 文件捆绑在一起吗? -
@James_D : 我的项目架构是src-->Main.java(这里是打印函数),src包含目录资源-->img-->abc.png。现在我想打印这个 abc.png
-
所以图像是相对于类路径部署为
/img/abc.png,还是/resources/img/abc.png?那是("/img/abc.png"或"/resources/img/abc.png")作为localPath传入的值吗?