我想用PrinterJob打印图像,但是当图像按比例缩小超过六分之一时,它会失败。
没有例外,但页面未打印。如果我使用PDF打印机,结果文件为空。
您可以使用此代码进行测试。如果divisor > 6
,则打印失败。原始图像的大小为2752x935像素。
public class PrinterTest implements Printable {
@Override
public int print(Graphics g, PageFormat pf, int page)
throws PrinterException {
if (page > 0) {
return NO_SUCH_PAGE;
}
try {
URL url = new URL("http://munkalapszoftver.hu/images/logo.jpg");
BufferedImage image = ImageIO.read(url);
if (image != null) {
Graphics2D g2d = (Graphics2D) g;
g2d.translate(pf.getImageableX(), pf.getImageableY());
int divisor = 7;
g.drawImage(image, 0, 0, image.getWidth() / divisor, image.getHeight() / divisor, null);
}
} catch (IOException ex) {
ex.printStackTrace();
// Error handling
}
return PAGE_EXISTS;
}
public static void main(String[] args) {
PrinterJob job = PrinterJob.getPrinterJob();
job.setPrintable(new PrinterTest());
boolean doPrint = job.printDialog();
if (doPrint) {
try {
job.print();
} catch (PrinterException e) {
e.printStackTrace();
// Error handling
}
}
}
}
你有什么想法,为什么会失败?