如果缩小图像,则在Linux上Java打印失败

时间:2016-05-26 09:21:28

标签: java image printing graphics

我想用PrinterJob打印图像,但是当图像按比例缩小超过六分之一时,它会失败。

没有例外,但页面未打印。如果我使用PDF打印机,结果文件为空。

  • 系统:Linux 14.04 LTS
  • Java版本:1.8.0_05
  • 打印机:兄弟 HLL2300D,Ubuntu 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
            }
        }
    }
}

你有什么想法,为什么会失败?

0 个答案:

没有答案