Печать на нестандартном размере бумаги - Java
Формулировка задачи:
Коллеги, с печатью столкнулся в первый раз и застопорился на вроде бы простой задачке:
Есть принтер для печати на пластиковых карточках (zebra zxp series 1), размер карточки стандартный (86mm*54mm)
Есть макет изображения(1016*638), на который я программно вставляю некие данные.
Далее необходимо распечатать это на принтере.
Печатаю, использую код как в tutorial, вот кусок:
но при этом получаю на карточке кусок изображения из правого-верхнего угла макета (размер макета больше размера карточки и влезает только кусок макета), как собственно "ужать" макет до размера карты?
Если печатаю тот же макет с помощью "Средства просмотра фотографий Windows", то печатается всю как нужно, макет полностью ложится на карту.
Как победить?)
Листинг программы
- Graphics2D g2d = (Graphics2D) graphics;
- g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
- g2d.drawImage(img, 0, 0, null);
Решение задачи: «Печать на нестандартном размере бумаги»
textual
Листинг программы
- FileInputStream fis = new FileInputStream(file); // изображение для печати
- Doc doc = new SimpleDoc(fis, DocFlavor.INPUT_STREAM.JPEG, null);
- PrintRequestAttributeSet aset = new HashPrintRequestAttributeSet(); //задаем параметры
- aset.add(new Copies(1));
- aset.add(OrientationRequested.LANDSCAPE);
- //указываем интересующие нас размеры, а findMedia находит наиболее подходящий, причем при конкретно этих размерах
- //находится формат ISO-B8, который имеет размеры 68*88, однако на моей карте изображение печатается нормально.
- aset.add(MediaSize.findMedia(54, 86, Size2DSyntax.MM));
- DocPrintJob job = printService.createPrintJob();
- job.print(doc, aset);
- fis.close();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д