Печать на нестандартном размере бумаги - Java

Узнай цену своей работы

Формулировка задачи:

Коллеги, с печатью столкнулся в первый раз и застопорился на вроде бы простой задачке: Есть принтер для печати на пластиковых карточках (zebra zxp series 1), размер карточки стандартный (86mm*54mm) Есть макет изображения(1016*638), на который я программно вставляю некие данные. Далее необходимо распечатать это на принтере. Печатаю, использую код как в tutorial, вот кусок:
Graphics2D g2d = (Graphics2D) graphics;
g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY());
g2d.drawImage(img, 0, 0, null);
но при этом получаю на карточке кусок изображения из правого-верхнего угла макета (размер макета больше размера карточки и влезает только кусок макета), как собственно "ужать" макет до размера карты? Если печатаю тот же макет с помощью "Средства просмотра фотографий Windows", то печатается всю как нужно, макет полностью ложится на карту. Как победить?)

Решение задачи: «Печать на нестандартном размере бумаги»

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();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.077 из 5