QPrinter::PdfFormat для принтера с использованием универсального драйвера PostScript

Мой принтер настроен с использованием универсального драйвера PostScript в среде Linux с CUPS. У меня есть приложение, использующее Qt 4.8.7 QPrinter для печати. Если установить выходной формат QPrinter::PdfFormat, что на самом деле происходит?

  1. QPrinter понимает, что целевой принтер является принтером PostScript, и в любом случае выводит PostScript.
  2. CUPS конвертирует документ из pdf в postscript перед отправкой на печать.
  3. Документ отправляется на принтер в формате pdf, и он его поддерживает. Сделать то же самое с другим, не поддерживающим pdf, не получится.
  4. Другое (тогда, пожалуйста, объясните, что :)

Обновление: я использую CUPS v.1.6.3


person joaerl    schedule 24.11.2016    source источник


Ответы (1)


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

Обработка происходит в файле PDF, я не знаю, включает ли это когда-либо преобразование в другие форматы, но я предполагаю, что это может быть (например, преобразование N-Up).

Наконец, PDF-файл достигает точки фактической печати, после чего его необходимо преобразовать (или визуализировать) во что-то, что принтер может понять. CUPS должен знать язык описания страниц, поддерживаемый устройством, я не могу сказать вам, как он это знает, предположительно, где-то есть какая-то конфигурация.

Если он знает, что ваш принтер поддерживает PDF, я полагаю, что PDF будет доставлен на принтер. Если он понимает PostScript, он будет преобразован в PostScript и будет доставлен на принтер. Для других форматов потребуются другие драйверы принтера.

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

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

person KenS    schedule 24.11.2016
comment
Ваш ответ на самом деле немного сложнее, чем я ожидал, и это здорово, спасибо! Теперь я понимаю, что есть еще и внутреннее представление документа для печати. В чем я хотел бы быть уверен, так это в том, что если мой принтер поддерживает только PostScript и я настроил его с помощью универсального драйвера PostScript, могу ли я быть уверен, что он будет получать PostScript, даже если я установлю формат вывода в своем приложении пдф. Если я вас правильно понял, вы на самом деле подтверждаете это. - person joaerl; 24.11.2016
comment
Если вы настроили свой принтер (в CUPS) как принтер PostScript, то да, он получит PostScript. CUPS преобразует внутренний PDF (или сгенерированный PDF) в PostScript для управления принтером. - person KenS; 24.11.2016