QPrinter::PdfFormat 使用通用 postscript 驱动程序到打印机

QPrinter::PdfFormat to printer using generic postscript driver

我的打印机是在带有 CUPS 的 Linux 环境中使用通用 postscript 驱动程序设置的。我有一个使用 Qt 4.8.7 QPrinter 进行打印的应用程序。如果将输出格式设置为 QPrinter::PdfFormat,实际发生了什么?

  1. QPrinter 意识到目标打印机是postscript 打印机并输出postscript。
  2. CUPS 正在将文档从 pdf 转换为 postscript,然后再将其发送到打印机。
  3. 文档以pdf格式发送到打印机,正好支持。使用不支持 pdf 的另一个做同样的事情是行不通的。
  4. 其他(那请说明是什么:)

更新: 我使用 CUPS v.1.6.3

在某种程度上,这将取决于您安装的 CUPS 版本。我相信 最近 版本的 CUPS 使用 PDF 作为其内部格式,因此当您打印文件时,它会被转换为或保留为 PDF,然后以这种方式沿着 CUPS 管道传递.

处理发生在 PDF 文件上,我不知道这是否涉及转换为其他格式,但我猜它可能(例如 N-Up 转换)。

最后,PDF 到达实际打印点,此时需要将其转换(或呈现)为打印机可以理解的内容。 CUPS 需要知道设备支持的页面描述语言,我不能告诉你它是怎么知道的,大概是某处有一些配置。

如果它知道您的打印机支持 PDF,那么我相信 PDF 会传送到打印机。如果它理解 PostScript,那么它将被转换为 PostScript,然后被传送到打印机。其他格式将需要其他打印机驱动程序。

简而言之,这取决于您安装的 CUPS 版本,以及管道的配置方式。我似乎记得你可以从 CUPS 中获取这些信息,但恐怕我不记得如何这样做了。

希望有更好 CUPS 经验的人可以告诉您更多信息,或者如何发现您的过滤器设置。浏览手册页时,他们所做的似乎与我[=​​22=]认为 CUPS 当前工作的方式有点过时了。