- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经看到与CUPS库相关的两个文件:
OpenPrinting/cups-filters/blob/master/filter/imagetoraster.c
OpenPrinting/cups-filters/blob/master/cupsfilters/raster.c
我不确定raster.c
到底能做什么,但是imagetoraster.c
本质上需要PNG / JPEG / etc。并听起来像是“将其转换为栅格格式”。我不太明白这到底意味着什么。有些打印机是“ PostScript打印机”,有些是“光栅打印机”,但是我不确定这个术语“光栅”是否意味着存在某种“打印机光栅格式”,例如PNG或JPG,或者它仅仅是一个数组。某种像素或其他像素。打印机似乎具有某种标准格式,但是将其称为“光栅”似乎有点误导,因为光栅基本上是某种东西的任意像素表示(据我所知)。
希望可以弄清楚这个CUPS过滤器/打印库中的光栅到底是什么意思。我一直认为这实际上是某种IANA模仿类型,但我不确定。
最佳答案
初步说明:您引用的不是本机CUPS API。它是OpenPrinting项目的库的一部分。 OpenPrinting提供并维护了一组过滤器,这些过滤器可以集成并停靠到CUPS中,主要是针对Linux用户,因为Apple不再直接支持此操作系统,而是将各自的CUPS代码部分移交给了Linux Foundation ...
在CUPS和您提到的两个库源文件的上下文中,“栅格”是在此定义的特定栅格格式(并且实际上已在IANA上注册为mime类型'application/vnd.cups-raster'
):
https://www.cups.org/doc/spec-raster.html
因此,这既不是TIFF,也不是PNG,也不是JPEG。 CUPS光栅是特定于CUPS的图像格式,并已开发用于CUPS。
当需要将可打印文档格式(例如PostScript,PDF,TIFF,JPEG,PNG,文本等)转换为打印机可以使用的格式时,此格式在某些类型的打印作业中起中介作用。 (如果您今天购买打印机,则可以直接使用PDF的机会大约为95%,因此不需要真正的转换!)
但是,如果打印机不支持PDF(与较早的型号一样,例如许多HP PCL专用设备),则需要将可打印格式转换为打印机喜欢的格式。您可以在可能的文件格式转换链中看到CUPS栅格的“中间”角色,CUPS可以自动为每个打印作业设置这些链:
## FILE FORMAT CONVERSIONS
PDF -> CUPS-raster -> PCL6 # PCL6-consuming printer
PDF -> CUPS-raster -> PCL3 # PCL3-consuming printer
PDF -> CUPS-raster -> ESC/P # EPSON's ESC/P consuming printer
## CUPS FILTERING CHAIN EXAMPLES
(PDF input) -> pdftoraster -> rastertohp # PCL6-consuming printer
(PostScript input) -> gstoraster -> rastertohp # PCL3-consuming printer
(TIFF input) -> imagetoraster -> rastertoescpx # EPSON's ESC/P consuming printer
(PNG input) -> imagetoraster -> rastertopwg # any IPP-Everywhere printer
(JPEG input) -> imagetoraster -> rastertopdf # any PDF-enabled printer
(PDF input) -> pdftoraster -> rastertoqpdf # some Samsung printers consuming SPLIX
cgpdftoraster
过滤器,该过滤器是Apple专有的,不是作为开源发布的,在Linux上不可用。 (它与Apple的Core Graphic Library接口,无论如何在Linux上都不使用。)这将转换为CUPS栅格格式。
rastertopwg
和
rastertourf
:
cups-filters
软件包)上,您会看到
{pdf,image,gs}toraster
,它也会转换为CUPS栅格格式。
rasterto{pdf,pwg}
将CUPS栅格转换为PDF和PWG栅格。
关于graphics - “光栅”是特定格式还是通用术语(关于CUPS打印库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54330180/
在 RFC8011 p.152 打印机可以有一个常见的状态原因列表。在我的测试中,这个列表似乎非常不完整。是否有更完整的 CUPS 列表? 未列出的打印机状态原因的一些示例: cups 等待作业完成
有没有办法明确告诉 CUPS 服务器您发送的文件是 text/html从而覆盖 mime.types 查找? 最佳答案 就在这里。 使用这个命令行: lp -d printername -o docu
我正在尝试用 Java 做一个编译器,并且使用 CUP 来生成语法的语法。 我有这个 Parser.cup /* Terminals (tokens returned by the scanner).
我想让我的 RasPi 在由三个 Linux 客户端组成的小型家庭网络中充当小型打印和文件服务器。不幸的是,Brother 只提供 x86 的二进制驱动程序,所以我无法在 RasPi 上运行我的 Br
打印作业到 CUPS 服务器时,您可以设置 cupsd.conf 参数 PreserveJobHistory和 PreserveJobFiles控制您要保留的作业数量。 CUPS 始终将实际打印作业文
我正在尝试使用 pip 在隔离 (--no-site-package) virtualenv 中安装 pycups,我得到了这个回溯。我无法弄清楚我做错了什么。有什么想法吗? 谢谢, Download
我正在尝试监听打印机状态变化(例如卡纸、暂停...) 下面的代码给出“Bad notify-recipient-uri”响应,然后锁定 ippReadFile 并且在打印机暂停时不释放/未暂停。 in
如果我在 OSX 中通过普通打印对话框(首选项->打印机)添加打印机,它会显示在列表中。 如果我随后进入 CUPS 并将这台打印机的驱动程序更改为 RAW(这就是我需要的)- 那么我可以这样做,但它会
复古打印机日:我有一台旧的 IbmPro 兼容点阵打印机,通过 USB 并行适配器连接到我的 Ubuntu 20.04 系统。它工作得很好!设置它的一个主要技巧:将 URI 设置为/dev/usb/l
我在使用 CUPS 2.2.7 时遇到了一些问题 这是我的/etc/hosts 文件: 127.0.0.1 example.com 127.0.0.1 localhost 在 http://l
我(几乎)做了一个杯子排序算法,它接受颜色和半径参数,然后吐出按半径长度排列的杯子名称。 示例输入 2 blue 7 10 red 示例输出 red blue 问题是我想创建一个过滤器来检查拆分时第一
成功安装我的杯子打印机Ubuntu18.4。当我单击设备端的添加打印机图标时,它显示名称为“CUPS-BRF-Printer”。我想更改此名称。如何更改默认名称..如何更改? 最佳答案 1º停止CUP
我正在尝试使用戴尔 ppd 打印到戴尔 2350dn。它曾经有效,现在无效,但我很少使用这台打印机,也不知道在此期间发生了什么。 cups 错误日志有: E [07/Feb/2014:16:11:53
如何通过 CUPS API 获取 CUPS 打印作业失败的原因? 使用 CUPS API,我打印了两个未能打印的作业。在 CUPS 网络界面上,我可以看到失败的原因:“不支持的打印数据。”和“无法写入
在本地网络上,在我的 CUPS 管理页面中,当我尝试添加网络打印机时,每台打印机都会出现多次: 例如,Lexmark T644 出现: *Lexmark T644 (2) (Lexmark Lexma
我正在使用 IPP 协议(protocol)与 CUPS 通信。我在 CUPS 中安装了我的打印机的所有驱动程序(使用 .ppd 文件),并且打印机获得了最新的固件。 当我查询打印机正在打印的作业时,
我怎么知道lpr命令 (CUPS) 我的文件实际上是 PDF? lpr file.pdf 不会打印任何东西。 最佳答案 这真的是基于CUPS的lpr ,还是在安装 CUPS 之前没有移除的另一个假脱机
我有两台机器。一个使用 CUPS 1.5.0,另一个使用 CUPS 1.6.1。两台机器位于同一本地网络上。我想要完全发现网络上的打印机。如果我运行以下命令: CUPS_DEBUG_LEVEL=2 /
我在调试 CUP 语法时陷入困境。 所以我在 CUP 中有以下语法: /* Integer operators */ precedence left SUM_OP, SUBS_OP; preceden
有没有办法使用 CUPS 库获取打印机的所有字节命令列表,这些命令应发送到打印机以执行操作。例如:如果我想找出打印机自动剪切功能的字节命令,我可以使用 CUPS 来实现吗?他们有此功能的 API 吗?
我是一名优秀的程序员,十分优秀!