Spec-Zone.ru › OpenJDK 24

Интерфейс 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, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.desktop/java/awt/print/Printable.html

Spec-Zone.ru

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