Java -практика использования

         

Печать страниц с разными параметрами



Листинг 18.10. Печать страниц с разными параметрами

import j ava.awt.*; 

import j ava.awt.print.*;

public class Print2Book{

public static void main(String[] 

args){


PrinterJob pj = PrinterJob.getPrinterJob();

// Для титульного листа выбирается альбомная ориентация 

PageFormat pfl = pj.defaultPage();
 

pfl.setOrientation(PageFormat.LANDSCAPE);

// Параметры других страниц задаются в диалоговом окне 

PageFormat pf2 = pj.pageDialog (new PageFormat());

Book bk = new Book();

// Первая страница — титульный лист 

bk.append(new Cover(), pfl);

// Две другие страницы 

bk.append(new Content(), pf2, 2);

// Определяется вид печати — Pageable Job 

pj.setPageable(bk);

if (pj.printDialog()){ 

try{

pj.print() ; 

}catch (Exception e){}

}

System.exit(0);

class Cover implements Printable{

public int print(Graphics g, PageFormat pf, int ind)

throws PrinterException{

g.setFont (new Font ("Helvetica-Bold", Font.PIiAIsN, 40)) ; 

g.setColor(Color.black) ;

int у = (int) (pf.getlmageableY() + 

pf.getlmageableHeigbt() /2);
 

g.drawstring("Это заголовок,", 72, у);

g.drawstring("Он печатается вдоль длинной", 72, у+60);
 

g.drawstring("стороны листа бумаги.", 72, у+120);

return Printable.PAGE_EXISTS; 

class Content implements Printable{

public int print(Graphics g, PageFormat pf, int ind)

throws PrinterException{ 

Graphics2D g2 = (Graphics2D)g; 

g2.setFont(new Font("Serif", Font.PLAIN, 12));
 

g2.setColor(Color.black);

int x = (int)pf .getlmageableXO + 30; 

int у = (int)pf.getlmageableY();

g2.drawstring("Это строки обычного текста.", х, у += 16);
 

g2.drawstring("Они печатаются с параметрами,", х, у += 16);
 

g2.drawstring("выбранными в диалоговом окне.", х, у += 16);

return Printable.PAGE_EXISTS; 

}

}



Содержание раздела