Как я могу изменить JobSettings для PrinterJob? - PullRequest
1 голос
/ 08 января 2020

У меня есть это:

  public static void print(List<String> lines) {
    TextArea textArea = new TextArea();
    lines.forEach(textArea::appendText);
    PrinterJob job = PrinterJob.createPrinterJob();

    JobSettings jobSettings = job.getJobSettings();
    jobSettings.setPrintQuality(PrintQuality.HIGH); // don't know what to do with jobSettings

    Printer printer = job.getPrinter();
    PageLayout pl = printer.createPageLayout(Paper.A4, PageOrientation.PORTRAIT, .10, .10, .25, .25);
    boolean printed = job.printPage(pl, textArea);
    if (printed)
      job.endJob();
  }

Я печатаю на термопринтере. Качество как черновое качество, супер низкое. Я использую принтер Xprinter XP-58.

Я хочу изменить его на Высокий. Документы JavaFX 8 гласят:

Приложения не создают и не могут напрямую создавать или устанавливать экземпляр JobSettings. Один из них уже установлен в задании на печать при его создании. Как описано в PrinterJob, JobSettings, установленные в этом задании, первоначально будут отражать текущие настройки по умолчанию для первоначально связанного принтера для этого задания.

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

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

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

In Windows 10 в настройках принтера XP-58, я не могу найти качество печати в настройках принтера, поэтому я предполагаю, что качество действительно плохое. Но когда я печатаю за пределами javaFX, качество на самом деле очень хорошее и действительно определено.

Есть ли обходной путь к этому?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...