Иллюстрированный самоучитель по Java



              

Печать средствами Java 2D - часть 3


Затем методами

p.setSize(double width, double height)

p.setlmageableArea(double x, double y, double width, double height)

задать размер страницы и области печати.

Потом определить объект класса pageFormat с параметрами по умолчанию:

PageFormat pf = new PageFormat()

и задать новые параметры методом

pf.setPaper(p)

Теперь вызывать на экран окно Параметры страницы методом pageDiaiogo уже не обязательно, и мы получим

молчаливый

(silent) процесс печати. Так делается в тех случаях, когда печать выполняется на фоне отдельным подпроцессом.

Итак, параметры страницы определены, метод print о — тоже. Теперь надо дать

задание на печать

(print job) — указать количество страниц, их номера, порядок печати страниц, количество копий. Все эти сведения собираются в классе Printer Job.

Система печати Java 2D различает два вида заданий. В более простых заданиях — Printable Job — есть только один класс, рисующий страницы, поэтому у всех страниц одни и те же параметры, страницы печатаются последовательно с первой по последнюю или с последней страницы по первую, это зависит от системы печати.

Второй, более сложный вид заданий — Pageable Job — определяет для печати каждой страницы свой класс, рисующий страницы, поэтому у каждой страницы могут быть собственные параметры. Кроме того, можно печатать не все, а только выбранные страницы, выводить их в обратном порядке, печатать на обеих сторонах листа. Для осуществления этих возможностей определяется экземпляр класса Book или создается класс, реализующий интерфейс Pageable.

В классе Book, опять-таки, один конструктор, создающий пустой объект:

Book b = new Book()

После создания в данный объект добавляются классы, рисующие страницы. Для этого в классе Book есть два метода:

append (Printable p, PageFormat pf) —добавляет объект р В конец;

append(Printable p, PageFormat pf, int numPages) — добавляет numPages

экземпляров р в конец; если число страниц заранее неизвестно, то задается константа

UNKNOWN_NUMBER_OF_PAGES




Содержание  Назад  Вперед