Spec-Zone.ru › OpenJDK 25

Интерфейс 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 — выбрасывается, когда задание печати завершается.

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков с концептуальными обзорами, определениями терминов, обходными решениями и примерами работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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://docs.oracle.com/en/java/javase/25/docs/api/java.desktop/java/awt/print/Printable.html

Spec-Zone.ru

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