Простая печать методами Java 2D
Листинг 18.8. Простая печать методами Java 2D
import java.awt.*;
import java.awt.geom.*;
import java.awt.print.*;
class Print2Test implements Printable{
public int print(Graphics g, PageFormat pf, int ind)
throws PrinterException{ // Печатаем не более 5 страниц
if (ind >
4) return Printable.NO_SUCH_PAGE;
Graphics2D g2 = (Graphics2D)g;
g2.setFont(new Font("Serif", Font.ITALIC, 30));
g2.setColor (Color.black);
g2.drawstring("Page " + (ind + I), 100, 100);
g2.draw(new Ellipse2D.Double(100, 100, 200, 200));
return Printable.PAGE_EXISTS;
}
public static void main(String[] args){
// 1. Создаем экземпляр задания
PrinterJob pj = Printer Job.getPrinter Job();
// 2, Открываем диалоговое окно Параметры страницы
PageFormat pf = pj.pageDialog (pj.defaultPaige() );
// 3. Задаем вид задания, объект класса, рисующего страницу,
// и выбранные параметры страницы
pj.setPrintable(new Print2Test(), pf};
// 4. Если нужно напечатать несколько копий, то:
pj.setCopies(2);
// По умолчанию печатается одна копия
// 5. Открываем диалоговое окно Печать (необязательно)
if (pj.printDialog())( // Если OK... try{
pj.print();
// Обращается к print(g, pf, ind)
}catch(Exception e){
System.err.println(e);
}
}
// 6. Завершаем задание
System.exit(0);
}
}