所以,我编写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>
答案 0 :(得分:1)
即使例如CUPS宣传支持text/html
(请参阅它的打印机属性document-formats-supported
),它不会将html转换为例如后记。
您不能指望打印机或假脱机程序为您呈现HTML (就像浏览器一样)。您可能希望搜索html-to-pdf转换器作为解决方法。
典型且适当的解决方案将涉及用于创建可打印文档的专用pdf库。缺点是你必须再次编码布局。
步骤2涉及将作业提交给打印机。它看起来像你可以处理这个。如果没有,请检查this answer。此外,http://www.nongnu.org/phpprintipp/
还提供了适用于PHP的IPP实现