Печать на нестандартном размере бумаги - 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();
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д