Печать без полейJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Печать без полей

Сообщение Anonymous »

Я пытаюсь написать программу для фотокабины, но у меня возникают трудности с печатью без полей. Я очень близок, но изображение не заполняет отпечаток размером 4 x 6 дюймов. Буду признателен за любые советы по созданию печати без полей.

Всего доброго!

Код: Выделить всё

    final BufferedImage img = ImageIO.read(new File(image));

// Assuming that images are going to be 300 DPI
PrinterResolution pr = new PrinterResolution(300, 300,
PrinterResolution.DPI);

PrintRequestAttributeSet pras = new HashPrintRequestAttributeSet();
pras.add(pr);

// Set print job so the image name shows (in the print queue)
this.pj.setJobName(new File(image).getName());

PageFormat pf = this.pj.getPageFormat(null);
Paper paper = pf.getPaper();
paper.setSize(4 * 72, 6 * 72);
paper.setImageableArea(
0.0, 0.0,
paper.getWidth(), paper.getHeight()
);

if(img.getWidth(null) > img.getHeight(null))
pf.setOrientation(PageFormat.LANDSCAPE);
else
pf.setOrientation(PageFormat.PORTRAIT);

pf.setPaper(paper);

// Create the page
this.pj.setPrintable(new Printable() {
public int print(Graphics g, PageFormat pf, int i) throws
PrinterException {
if (i != 0)
return NO_SUCH_PAGE;

double width = img.getWidth(null);
double height = img.getHeight(null);

double w = Math.floor(pf.getImageableWidth() -
pf.getImageableX()) / (width * 1.0);

double h = Math.floor(pf.getImageableHeight() -
pf.getImageableY()) / (height * 1.0);

double scale = Math.min(w, h);

Graphics2D g2 = (Graphics2D) g;
g2.translate(0, 0);
g2.scale(scale, scale);
g2.drawImage(img, 0, 0, (int)width, (int)height, null);

return PAGE_EXISTS;
}
}, this.pj.validatePage(pf));

// Get number of copies
int nCopies = SetPrintQuantity.getPrintQuantity(new File(image));

// Print
if(nCopies != 0)
for(int i = 0; i < nCopies; i++)
this.pj.print(pras);

System.out.println(nCopies + ((nCopies == 1) ? " copy" : " copies"));
this.pj = PrinterJob

Подробнее здесь: https://stackoverflow.com/questions/105 ... s-printing
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»