lprによるutf-8エンコーディングのサポート


11

介してプリンタにテキストファイルを送信しようとしたときlprからxterm、コンテンツは原形をとどめないほど破損している、の原因は、最終的にファイルのエンコーディングに追跡しました。代わりにiconv(例:)を使用してテキストを処理するとiconv -f utf-8 -t ascii//TRANSLIT、ファイルは正常に印刷されます。私が遭遇したもう1つの提案は、ドキュメント形式(例:)の設定ですlpr -o document-format=text/utf8が、これはエラーを返しますlpr: Unsupported document-format "text/utf8"lprコマンドによるエイリアスを付けて、による処理を含めることもできますiconvが、CUPS/ lprシステムでのネイティブutf-8サポートのより一般的な方法はありますか?

編集:私のOSはDebian 8で、ウィンドウマネージャーはopenbox(デスクトップ環境なし)です。MacOS XとDebian7 / Gnome3システムから問題なくこのファイルを印刷できます。

現在のシステムでは、文字エンコードをUTF-8からASCIIに変更した後でも、改行文字はによって考慮されないlprため、行が連結され、用紙のマージンに達するまで印刷されます。iconvMacOS Xでの再コーディングと音訳の後でも、印刷は正常に機能します(したがって、改行の問題は現在のシステムに固有です)。


1
私はCUPSに関する深い知識を持っていませんが、ドキュメントタイプを検出する方法(出力にMIMEタイプを使用)とターゲットプリンター用に変換する方法のルールを確実に含める必要があります。これには、ラスタライズ、PostscriptまたはPCLファイルの形成などが含まれます。具体的に教えてくださいお使いのプリンターのタイプ?試しましたa2psか?utf-8を試すときに、出力で実際に使用されるエンコーディングは何ですか?(私はそれだと思いますiso-8859-1
Netch '27

@Netch:a2psフィルターを指摘していただきありがとうございます。知らなかった。問題のプリンターはHP4650スキャンレーザープリンターです。によって使用されるエンコーディングをどのように決定できCUPSますか?入力と識別できる関係を持たない実際に印刷された文字には、ギリシャの大文字のガンマ、セディーユ付きの大文字のC、サーカムフレックス付きのo、ラテンの大文字のWとTが含まれていました。用紙マージンでの出力の切り捨て。
user001 2014

適用されたエンコーディングはiso-8859-1のようです。これをテーブルで簡単に確認できます。一部の検索では、as as lpr -o document-format='text/plain;charset=utf-8'を呼び出すだけで十分に印刷できますが、古くなったCUPSインストールのデフォルトは変更されません。
Netch 2014

回答:


1

同じことがpapsでも行えます。

#!/bin/bash
#This script converts UTF-8 txt to postscript
paps | lpr
Sometimes you need to specify the prinqueue;

#!/bin/bash
# This script converts UTF-8 txt to postscript
paps | lpr -P lj

Papsはcupsのテキストトップよりもはるかに優れています。


お返事ありがとうございます。私は、外部の依存関係を呼び出す必要がないようpapsにネイティブサポートの可能性があるかどうかを知り、知りたかったのですCUPS
user001 2014

1

HPLIPを外部依存関係と見なすかどうかはわかりませんが、CUPSからの直接の推奨ドライバーを以下に示します。

CUPSプリンタードライバー:HP4650

そして、これがDebian Repo:HPLIPSのパッケージ情報です

このように、Thasihは、システムはpapsなどのツールを使用せずにドキュメントをラスタライズする方法を認識していないと述べています。hplipパッケージをインストールしhttp://localhost:631、推奨ドライバーを使用するように構成すると、問題が解決します。詳細については、DebianWikiのSystemPrintingエントリを参照してください


ありがとう。私のシステムにはすでにHPLIPの最新バージョンがあります。これを指定できる場所を探しましたhttp://localhost:631が、ドライバの選択について何も見つかりませんでした。
user001 2014



0

次のようなものが必要です:

text/plain              application/postscript  33      texttops

あなたの中/etc/cups/mime.convsのファイル。それで、私がすべきことは、texttopsフィルターを修正することだと思います。Debianでは、これはです/usr/lib/cups/filter/texttops。これは、texttopdfフィルターとpdf2psコマンドを使用するシェルスクリプトです。texttopdf / pdf2psの呼び出しをで置き換えることもできますがpaps、引数が同じではないことに注意してください。最小値(テキストが標準入力に提供され、psの結果が標準出力に送信されるため)は、次の行だけになります。

paps

ただし、オプションを追加することもできます。例:

paps --font='Monospace 10'

注:私は試していません。ただの憶測...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.