gpt4 book ai didi

cups - 用 CUPS 打印 html 文件

转载 作者:行者123 更新时间:2023-12-04 22:49:55 29 4
gpt4 key购买 nike

有没有办法明确告诉 CUPS 服务器您发送的文件是 text/html从而覆盖 mime.types 查找?

最佳答案

就在这里。

使用这个命令行:

lp -d printername -o document-format=text/html file.html

更新(回应评论)

我为 OP 的问题提供了准确的答案。

但是,这(单独)并不能保证文件会成功打印。为此,CUPS 需要一个过滤器来处理 MIME 类型 text/html 的输入。

CUPS 本身不提供此类过滤器。但是,将您自己的过滤器插入 CUPS 过滤系统很容易,一些 Linux 发行版提供了这样的过滤器,能够使用 HTML 文件并将它们转换为可打印的格式。

您可以检查在这种情况下在您的系统上会发生什么。 cupsfilter 命令是一个辅助实用程序,用于运行可用/已安装的 CUPS 过滤器,而无需通过 CUPS 守护程序进行实际打印:
touch 1.html
/usr/sbin/cupsfilter --list-filters 1.html

现在在一个没有准备好 HTML 消耗过滤器的系统上,你会得到这个响应:
cupsfilter: No filter to convert from text/html to application/pdf.

在不同的系统上(比如在 Mac 上),你会看到:
xhtmltopdf

您甚至可以强制输入和输出 MIME 类型以查看当要求打印此文件时 CUPS 将自动运行哪些过滤器 支持该特定输出 MIME 类型的打印机 ( -i 设置输入 MIME 类型, 0x91045)6:67104
/usr/sbin/cupsfilter                  \
-i text/html \
-m application/postscript \
--list-filters \
1.html
xhtmltopdf
cgpdftops

在这里,它首先使用 -m 将 HTML 转换为 PDF,然后使用 xhtmltopdf 将生成的 PDF 转换为 PostScript。

如果您跳过 cgpdftops 参数,该命令实际上甚至会继续进行转换,通过主动运行(不仅仅是列出)两个过滤器并将结果发送到 --list-filters

您可以基于 Shell 脚本编写自己的 CUPS 过滤器。您唯一需要的其他成分是命令行工具,例如 <stdout>htmldoc,它能够处理 HTML 输入并生成某种格式,而这些格式又可以被 CUPS 过滤链进一步使用。

请注意,一些(尤其是大量使用 JavaScript 的)HTML 文件无法通过简单的命令行工具成功处理为打印就绪格式。

如果您需要有关此的更多详细信息,请再问一个问题...

关于cups - 用 CUPS 打印 html 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8326955/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com