Я пытаюсь напечатать изображение, используя следующий код, но документ просто остается в очереди заданий на печать и отказывается печатать.В очереди заданий на печать (windows) я получаю:
Имя документа: Печать изображения Статус: [Ничего] Страницы :1, Размер: 2.1Mb.
Этого не происходит с другими приложениями, использующими тот же принтер (слово и т. Д.).
Может ли кто-нибудь показать мнегде моя ошибка?Спасибо.
public static void main(String[] args) {
//new Painter();
MediaTracker tracker = new MediaTracker(new JPanel());
try {
Image img = ImageIO.read(new File(
"C:\\Users\\David\\Desktop\\print.jpg"));
tracker.addImage(img, 1);
tracker.waitForAll();
print(img);
} catch (Exception ex) {
ex.printStackTrace();
}
}
private static void print(final Image img) {
PrinterJob printjob = PrinterJob.getPrinterJob();
printjob.setJobName("Print");
ImgPrinter printable = new ImgPrinter(img);
try {
System.out.println("Printing.");
printable.printPage();
} catch (PrinterException ex) {
System.out.println("NO PAGE FOUND." + ex);
}
}
private static class ImgPrinter implements Printable {
Image img;
public ImgPrinter(Image img) {
this.img = img;
}
public int print(Graphics pg, PageFormat pf, int pageNum) {
if (pageNum != 0) {
return Printable.NO_SUCH_PAGE;
}
//BufferedImage bufferedImage = new BufferedImage(img.getWidth(null),
//img.getHeight(null), BufferedImage.TYPE_INT_RGB);
//bufferedImage.getGraphics().drawImage(img, 0, 0, null);
Graphics2D g2 = (Graphics2D) pg;
g2.translate(pf.getImageableX(), pf.getImageableY());
g2.drawImage(img, 0, 0, img.getWidth(null), img.getHeight(null), null);
return Printable.PAGE_EXISTS;
}
public void printPage() throws PrinterException {
PrinterJob job = PrinterJob.getPrinterJob();
boolean ok = job.printDialog();
if (ok) {
job.setJobName("TEST JOB");
job.setPrintable(this);
job.print();
}
}
}
Снимок экрана:
Это происходит как с аппаратными, так и с программными принтерами (XPS Writer, CutePDF, принтер Canon).Аппаратное обеспечение показывает «готовится ..» на его экране навсегда, и я думаю, что оно потратило впустую все его чернила, я не уверен.Если это так, этот код был дорогим для тестирования ....
Ни один из этих принтеров не дает проблемы при печати из текстового документа или иным способом.
Редактировать: Может кто-нибудь предложить программный принтерон или она были успешны с?
Нажмите здесь для изображения, которое я пытаюсь напечатать .
Нажмите здесь, чтобы увидеть очередь печати .