Spec-Zone.ru › OpenJDK 21

Интерфейс 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, 2023, 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/21/docs/api/java.desktop/java/awt/print/Printable.html

Spec-Zone.ru

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