Интерфейс Printable
public interface Printable
Интерфейс Printable реализуется методами print текущего отрисовщика страниц, который вызывается системой печати для отрисовки страницы. При построении Pageable пары экземпляров PageFormat и экземпляров, реализующих этот интерфейс, используются для описания каждой страницы. Экземпляр, реализующий Printable, вызывается для печати графики страницы.
Printable(..) может быть задан для PrinterJob. Когда клиент инициирует печать, вызвав PrinterJob.print(..), управление передаётся системе печати до тех пор, пока все страницы не будут напечатаны. Она делает это, вызывая Printable.print(..) до тех пор, пока все страницы документа не будут напечатаны. При использовании интерфейса Printable печать обязуется отобразить содержимое страницы всякий раз, когда это запрашивает система печати.
Параметры Printable.print(..) включают в себя PageFormat, описывающий область печати страницы, необходимую для расчёта содержимого, которое поместится на страницу, и индекс страницы, который определяет индекс нулевой-основанного потока печати запрашиваемой страницы.
Для правильного поведения печати следует соблюдать следующие моменты:
- Система печати может запросить индекс страницы более одного раза. В каждом случае будут предоставлены одинаковые параметры PageFormat.
- Система печати вызовет
Printable.print(..)с индексами страниц, которые увеличиваются монотонно, хотя, как отмечалось выше,Printableдолжна ожидать многократных вызовов для индекса страницы, и индексы страниц могут быть пропущены, когда диапазоны страниц задаются клиентом или пользователем через диалоговое окно печати. - Если запрашиваются несколько склеенных копий документа, и принтер не поддерживает это напрямую, то документ может быть отображён несколько раз. Печать каждой копии начнётся с самого низкого индекса страницы потока печати.
- За исключением повторного отображения всего документа для нескольких склеенных копий, порядок возрастания индекса страницы означает, что при запросе страницы N, если клиенту нужно рассчитать позицию разрыва страницы, он может безопасно отбросить любой состояние, связанный со страницами < N, и сделать текущим состояние для страницы N. "Состояние" обычно представляет собой только вычисленную позицию в документе, которая соответствует началу страницы.
- При вызове системы печати
Printableдолжен проверить и учесть предоставленный параметр PageFormat, а также индекс страницы. Формат страницы, которая должна быть нарисована, задаётся предоставленным PageFormat. Размер, ориентация и область изображаемого изображения страницы, таким образом, уже определены, и отрисовка должна находиться внутри этой области изображаемого изображения. Это ключевой момент для правильного поведения печати, и это подразумевает, что клиент несёт ответственность за отслеживание того, какое содержимое принадлежит указанной странице. - Если
Printableполучен из предоставленного клиентомPageable, тогда клиент может предоставить разные PageFormat для каждого индекса страницы. Расчёты разрывов страниц должны учитывать это.
- См. также:
-
Pageable,PageFormat,PrinterJob
Краткое описание полей
| Модификатор и тип | Поле и описание |
|---|---|
static int |
NO_SUCH_PAGE Возвращается из |
static int |
PAGE_EXISTS Возвращается из |
Краткое описание методов
| Модификатор и тип | Метод и описание |
|---|---|
int |
print(Graphics graphics,
PageFormat pageFormat,
int pageIndex) Печатает страницу с указанным индексом в указанный контекст |
Подробное описание полей
PAGE_EXISTS
static final int PAGE_EXISTS
Возвращается из print(Graphics, PageFormat, int) для обозначения того, что запрашиваемая страница была отрисована.
- См. также:
- Значения константных полей
NO_SUCH_PAGE
static final int NO_SUCH_PAGE
Возвращается из print для обозначения того, что pageIndex слишком велика и что запрашиваемая страница не существует.
- См. также:
- Значения константных полей
Подробное описание методов
int print(Graphics graphics,
PageFormat pageFormat,
int pageIndex)
throws PrinterException Печатает страницу с указанным индексом в указанный контекст Graphics в указанном формате. PrinterJob вызывает интерфейс Printable для запроса отрисовки страницы в контекст, указанный graphics. Формат страницы для отрисовки задаётся pageFormat. Нулевой индекс запрашиваемой страницы задаётся pageIndex. Если запрашиваемая страница не существует, этот метод возвращает NO_SUCH_PAGE; в противном случае возвращается PAGE_EXISTS. Класс или подкласс Graphics реализует интерфейс PrinterGraphics для предоставления дополнительной информации. Если объект Printable прерывает задачу печати, он бросает исключение PrinterException.
- Параметры:
-
graphics- контекст, в который отрисовывается страница -
pageFormat- размер и ориентация отображаемой страницы -
pageIndex- индекс страницы, которая должна быть отображена (с нуля) - Возвращает:
- PAGE_EXISTS, если страница отрисована успешно, или NO_SUCH_PAGE, если
pageIndexуказывает несуществующую страницу. - Исключения:
-
PrinterException- выбрасывается, когда задача печати завершается.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.