我有一个CUPS作业控制文件(这些可以在/ var / spool / cups / cnnnnn中找到)。我需要得到所印刷的实际尺寸。
这是我想出来的方式:
media
属性获取论文名称。 (例如Letter
)printer-uri
属性获取打印机uri。 (例如ipp://localhost/printers/MyPrinter
)IPP_GET_PRINTER_ATTRIBUTES
操作并获取printer-name
属性来获取打印机名称。 (例如MyPrinter
)cupsGetPPD
方法。 ppdOpenFile
方法。 ppdPageSize
方法来获取纸张大小。 这会有效,但似乎有点迂回。是否有更有效的方式来获得我需要的东西?
答案 0 :(得分:0)
您实际上可以使用CUPS_GET_PPD请求直接获取ppd而不是步骤3和4.这似乎更有效。
答案 1 :(得分:0)
作业控制文件将包含用于打印的文件的所有作业选项。有3种类型的工作选择:
~/.lpoptions
或系统范围的/etc/cups/lpoptions
文件中而被隐含设置的文件(用户特定文件已迁移到~/.cups/lpoptions
在更新版本的CUPS中(这些也将出现在控制文件中); -o job-hold-until=indefinite
,将来可能是2天。如果您知道printqueuename和使用的cupsserver,您可以使用以下两个命令查询该组合的默认队列设置:
lpoptions -h cupsserver \
-U username \
-d printqueuename
这将返回(.)loptions
文件中所述的所有当前设置。
lpoptions -h cupsserver \
-U username \
-d printqueuename \
-l
这将返回PPD中包含的所有用户可选设置。请注意星号*
如何标记每个选项的默认设置。另请注意,此处-U username
非常重要 - 不同的用户可能会使用不同的默认设置...
现在请注意这些命令的结果,注意PageSize
使用过的......