Интерфейс 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

Возвращается из print для обозначения того, что pageIndex слишком велик и что запрашиваемая страница не существует.

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

Spec-Zone .ru
спецификации, руководства, описания, API