Spec-Zone.ru › OpenJDK 17

Интерфейс 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 final int NO_SUCH_PAGE
Возвращается из print для обозначения того, что pageIndex слишком велик и запрошенная страница не существует.
static final int PAGE_EXISTS
Возвращается из print(Graphics, PageFormat, int) для обозначения того, что запрошенная страница была отрисована.

Краткое описание методов

Модификатор и тип Метод Описание
int print(Graphics graphics, PageFormat pageFormat, int pageIndex)
Печатает страницу с указанным индексом в указанный Graphics контекст в указанном формате.

Подробное описание полей

PAGE_EXISTS

static final int PAGE_EXISTS
Возвращается из print(Graphics, PageFormat, int) для обозначения того, что запрошенная страница была отрисована.
См. также:
  • Значения константных полей

NO_SUCH_PAGE

static final int NO_SUCH_PAGE
Возвращается из print для обозначения того, что pageIndex слишком велик и запрошенная страница не существует.
См. также:
  • Значения константных полей

Подробное описание методов

print

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, 2021, 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.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/java/awt/print/Printable.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API