1

因此,我编写了 PHP 组件,它可以通过 IPP(Internet 打印协议)打印文档。但我无法正确打印 HTML 文档 (text|html - mimetype)。打印机已将此类型打印为 RAW。可能有人给出正确请求的例子(标题和正文)?

例如,我的错误请求被打印为 RAW 数据。

标题:

POST /printers/CanonLPR HTTP/1.1
Host: 10.2.2.105:631
Connection: close
Accept-encoding: gzip, deflate
User-agent: EHttpClient
Content-Type: application/ipp
Content-Length: 772

身体:

Gattributes-charsetutf-8Hattributes-natural-languageen_usEprinter-uri'http://10.2.2.105:631/printers/CanonLPRDrequesting-user-name
PHP-SERVERIdocument-format  text/html<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta name="language" content="ru" />
</head>
<body>
<img style="float: left; margin-right: 10px;" src="/static/img/printer.png" />
<h1>Test page</h1>
</body>
</html>
4

1 回答 1

2

即使例如 CUPS 宣传支持text/html(请参阅它的打印机属性document-formats-supported),它也不会将 html 转换为例如 postscript。

您不能指望打印机或后台处理程序为您呈现 HTML(就像浏览器那样)。您可能想要搜索 html-to-pdf 转换器作为解决方法。

一个典型且适当的解决方案将涉及用于创建可打印文档的专用 pdf 库。缺点是您必须再次对布局进行编码。

第 2 步将涉及将作业提交给打印机。看起来你可以处理这个。如果不检查这个答案在http://www.nongnu.org/phpprintipp/上还有一个用于 PHP 的 IPP 实现

于 2015-01-28T22:26:44.943 回答