Spec-Zone.ru › OpenJavaFX 8
javafx.print

Класс PrinterJob

java.lang.Object
  • javafx.print.PrinterJob


public final class PrinterJob
extends Object
PrinterJob — это отправная точка для печати элементов графической сцены JavaFX.

Он включает

  • Обнаружение принтера
  • Создание задания
  • Настройка задания на основе поддерживаемых возможностей принтера
  • Настройка страницы
  • Вывод иерархии узлов на страницу.

Вот очень простой пример, который печатает один узел.

Node node = new Circle(100, 200, 200);
 PrinterJob job = PrinterJob.createPrinterJob();
 if (job != null) {
    boolean success = job.printPage(node);
    if (success) {
        job.endJob();
    }
 }
Важные замечания

В приведённом примере узел не добавлялся в сцену. Поскольку большинство сценариев печати занимаются печатью контента, который либо вообще не отображается, либо должен быть подготовлен и отформатирован по-другому, это вполне приемлемо.

Если печатается контент, который в настоящее время является частью сцены и отображается, то, поскольку печать задания или даже одной страницы задания может занимать несколько экранных «импульсов» или кадров, важно, чтобы приложение гарантировало, что печатаемый узел не обновлялся во время процесса печати, иначе вероятна частичная или размытая отрисовка.

То же самое относится и к узлам, которые не отображаются — одновременное обновление и печать — не лучшая идея.

Нет требования печатать на потоке приложения FX. Узел может быть подготовлен к печати в любом потоке, задание может быть вызвано в любом потоке. Однако, как правило, желательно минимизировать количество работы, выполняемой в потоке приложения FX, чтобы не влиять на отзывчивость пользовательского интерфейса приложения. Поэтому рекомендуется выполнять печать в новом потоке и позволять реализации внутренне планировать любые задачи, которые необходимо выполнить в потоке FX, для выполнения в этом потоке.

С:

JavaFX 8.0

  • Краткое описание свойств

    Все методыМетоды экземпляраКонкретные методы
    Тип Свойство и описание
    ReadOnlyObjectProperty<PrinterJob.JobStatus> jobStatus
    Чтение только для свойства объекта, представляющее текущий JobStatus
    ObjectProperty<Printer> printer
    Свойство, представляющее Printer для этого задания.
  • Краткое описание вложенных классов

    Вложенные классы
    Модификатор и тип Класс и описание
    static class  PrinterJob.JobStatus
    Перечисление, используемое для отчётности о статусе задания печати.
  • Краткое описание методов

    Все методыСтатические методыМетоды экземпляраКонкретные методы
    Модификатор и тип Метод и описание
    void cancelJob()
    Отменить основное задание печати в ближайшее время.
    static PrinterJob createPrinterJob()
    Метод-фабрика для создания задания.
    static PrinterJob createPrinterJob(Printer printer)
    Метод-фабрика для создания задания для указанного принтера.
    boolean endJob()
    Если задание может быть успешно помещено в очередь принтера, возвращает true.
    JobSettings getJobSettings()
    JobSettings включает все поддерживаемые API параметры конфигурации задания, такие как количество копий, опцию сортировки, опцию двусторонней печати и т. д.
    PrinterJob.JobStatus getJobStatus()
    Получить текущий статус задания.
    Printer getPrinter()
    Получить принтер, в данный момент связанный с этим заданием.
    ReadOnlyObjectProperty<PrinterJob.JobStatus> jobStatusProperty()
    Чтение только для свойства объекта, представляющее текущий JobStatus
    ObjectProperty<Printer> printerProperty()
    Свойство, представляющее Printer для этого задания.
    boolean printPage(Node node)
    Печать указанного узла.
    boolean printPage(PageLayout pageLayout, Node node)
    Печать указанного узла с использованием указанной компоновки страницы.
    void setPrinter(Printer printer)
    Изменение принтера для этого задания.
    boolean showPageSetupDialog(Window owner)
    Отображает диалоговое окно «Настройка страницы».
    boolean showPrintDialog(Window owner)
    Отображает диалоговое окно печати.
    String toString()
    • Методы, унаследованные от класса java.lang.Object

      clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Подробное описание свойства

    • printer

      public final ObjectProperty<Printer> printerProperty
      Свойство, представляющее Printer для этой задачи.

      См. также:

      getPrinter(), setPrinter(Printer)

    • jobStatus

      public ReadOnlyObjectProperty<PrinterJob.JobStatus> jobStatusProperty
      Только для чтения свойство объекта, представляющее текущий JobStatus

      См. также:

      getJobStatus()

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

    • createPrinterJob

      public static final PrinterJob createPrinterJob()
      Метод-фабрика для создания задачи. Если нет доступных принтеров, возвращает null. Некоторые платформы могут предоставлять псевдопринтер, который создает документ. Такие принтеры будут перечислены здесь, если платформа также перечисляет их как принтеры.

      Возвращает:

      новый экземпляр PrinterJob или null.

      Исключения:

      SecurityException - если задача не имеет разрешения на инициирование задания печати.

    • createPrinterJob

      public static final PrinterJob createPrinterJob(Printer printer)
      Метод-фабрика для создания задачи для указанного принтера.

      Аргумент printer определяет начальный принтер.

      Параметры:

      printer - используемый для задачи принтер. Если принтер в настоящее время недоступен (например, оффлайн), то может быть возвращен null.

      Возвращает:

      новый PrinterJob или null.

      Исключения:

      SecurityException - если задача не имеет разрешения на инициирование задания печати.

    • printerProperty

      public final ObjectProperty<Printer> printerProperty()
      Свойство, представляющее Printer для этой задачи.

      См. также:

      getPrinter(), setPrinter(Printer)

    • getPrinter

      public Printer getPrinter()
      Получает принтер, в настоящее время связанный с этой задачей.

      Возвращает:

      принтер для задачи.

    • setPrinter

      public void setPrinter(Printer printer)
      Изменить принтер для этой задачи. Если новый принтер не поддерживает текущие параметры задачи (например, если запрошена двусторонняя печать, но новый принтер не поддерживает это), то значения сбрасываются до значений по умолчанию для нового принтера или, в некоторых случаях, до аналогичных значений. Например, это может означать обновление REVERSE_LANDSCAPE до LANDSCAPE, но такая оптимизация реализации разрешена, но не обязательна.

      Вышесказанное относится как к изменению принтера непосредственным вызовом этого метода, так и как к побочному эффекту взаимодействия пользователя с диалогом печати.

      Установка значения null для принтера установит принтер по умолчанию. Установка текущего принтера не оказывает никакого влияния.

      Параметры:

      printer - используемый для этой задачи печати.

    • getJobSettings

      public JobSettings getJobSettings()
      JobSettings содержит все поддерживаемые API параметры конфигурации задач, такие как количество копий, опции сортировки, опции двусторонней печати и т.д. Начальные значения основаны на текущих параметрах начального принтера.

      Возвращает:

      текущие параметры задачи.

    • showPrintDialog

      public boolean showPrintDialog(Window owner)
      Отображает диалог печати. Позволяет пользователю обновить состояние задачи, например, принтер и параметры. Эти изменения будут доступны в соответствующих свойствах после возвращения диалога печати. Диалог печати обычно используется для подтверждения пользователем желания продолжить печать. Это не обязательно для приложения, но в целом должно выполняться.

      В случае отсутствия пользовательского интерфейса этот метод возвращает true без изменения параметров, как если бы пользователь подтвердил продолжение печати.

      Если задача не находится в состоянии отобразить диалог (например, уже печатает, отменена или завершена), диалог не отобразится, и метод вернёт false.

      Окно owner может быть null, но если это видимое окно, оно будет использоваться в качестве родительского.

      Параметры:

      owner - для блокирования ввода или null.

      Возвращает:

      false, если пользователь отменяет печать или задача не находится в новом состоянии. То есть, если она уже началась, завершилась с ошибкой или была отменена.

    • showPageSetupDialog

      public boolean showPageSetupDialog(Window owner)
      Отображает диалог настройки страницы. Диалог настройки страницы в первую очередь предназначен для настройки макета страницы пользователем. Размер бумаги и ориентация являются наиболее распространенными и важными компонентами этого.

      Будет отображаться наиболее подходящий доступный диалог для этой цели. Однако могут быть доступны и другие настройки, включая изменение текущего принтера. Таким образом, побочным эффектом отображения этого диалогового метода может быть обновление этих и других текущих параметров задачи. Метод возвращает true, если пользователь подтвердил диалог, вне зависимости от внесенных изменений.

      Если задача не находится в состоянии отобразить диалог (например, уже печатает, отменена или завершена), диалог не отобразится, и метод вернёт false.

      Окно owner может быть null, но если это видимое окно, оно будет использоваться в качестве родительского.

      Параметры:

      owner - для блокирования ввода или null.

      Возвращает:

      false, если пользователь отменяет диалог или задача не находится в новом состоянии. То есть, если она уже началась, завершилась с ошибкой или была отменена.

    • printPage

      public boolean printPage(PageLayout pageLayout,
                               Node node)
      Печать указанного узла с использованием указанного макета страницы. Макет страницы переопределит значение по умолчанию для этой страницы. Если состояние задачи CANCELED, ERROR или DONE, этот метод вернет false.

      Параметры:

      pageLayout - Макет для этой страницы.

      Возвращает:

      было ли рендеринг успешным.

      Исключения:

      NullPointerException - если какой-либо из параметров равен null.

    • printPage

      public boolean printPage(Node node)
      Печать указанного узла. Макет страницы — значение по умолчанию для задачи. Если состояние задачи CANCELED, ERROR или DONE, этот метод вернет false.

      Параметры:

      node - Узел для печати.

      Возвращает:

      был ли рендеринг успешным.

      Исключения:

      NullPointerException - если параметр node равен null.

    • jobStatusProperty

      public ReadOnlyObjectProperty<PrinterJob.JobStatus> jobStatusProperty()
      Только для чтения свойство объекта, представляющее текущий JobStatus

      См. также:

      getJobStatus()

    • getJobStatus

      public PrinterJob.JobStatus getJobStatus()
      Получить текущее состояние задачи.

      Возвращает:

      текущее JobStatus

    • cancelJob

      public void cancelJob()
      Отменить основную задачу печати в кратчайшие сроки. Может вернуть значение немедленно, не ожидая завершения отмены задачи, если это не заблокирует поток FX пользовательского интерфейса на какое-либо время. Если печать выполняется в этот момент, это означает, что отмена произойдет после рендеринга текущей страницы. Статус задачи обновляется до CANCELED только после этого. Таким образом, определение того, что задача CANCELED, требует отслеживания статуса задачи.

      Вызов не оказывает никакого эффекта, если задача уже запрошена для отмены или находится в состоянии ERROR или DONE. Например, это не удалит задачу из очереди принтера, если она уже разослана на печать. После отмены задачи недопустимо вызывать методы, которые выводят новое содержимое или изменяют состояние задачи.

    • endJob

      public boolean endJob()
      Если задача может быть успешно разослана в очередь печати, это вернёт true. Примечание: это не означает, что задача уже напечатана, так как это может занять минуты или дольше, даже в реализуемых случаях.

      Возвращаемое значение false означает, что задача не могла быть разослана или уже была завершена.

      Успешное завершение также обновит состояние задачи до DONE, после чего задача больше не может быть использована.

      Вызов endJob() для задачи, для которой не были напечатаны страницы, эквивалентен вызову {code cancelJob()}.

      Возвращает:

      true, если задача разослана, false, если нет, или задача уже была завершена.

    • toString

      public String toString()

      Переопределяет:

      toString в классе Object

© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

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