1

そこで、IPP (Internet Printing Protocol) 経由でドキュメントを印刷できる PHP コンポーネントを作成します。しかし、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( printer 属性を参照document-formats-supported) のサポートを宣伝していますが、html を postscript などに変換していません。

プリンターやスプーラーが (ブラウザーのように) HTML をレンダリングすることは期待できません。回避策として、html から pdf へのコンバーターを検索することをお勧めします。

典型的かつ適切なソリューションには、印刷可能なドキュメントを作成するための専用の pdf ライブラリが含まれます。欠点は、レイアウトを再度コーディングする必要があることです。

ステップ 2 では、ジョブをプリンタに送信します。あなたはこれを処理できるようです。そうでない場合は、この回答を確認してください。また、 http: //www.nongnu.org/phpprintipp/ で入手できる PHP の IPP 実装もあります。

于 2015-01-28T22:26:44.943 に答える