3

公式ドライバーを使用して、Ubuntu 12.04 に epson TM-T20 をインストールしました。これはサーマルプリンターで、80mmの用紙を使用しています。

私の問題: 画像を (Postscript ドキュメントを使用して) 印刷すると、画像が 25cm の白い紙を送信する前に画像が約 5cm とプリンターを使用するため、大量の紙が無駄になります。

次のコマンドを使用して、ドキュメントをプリンターに送信します。

lpr -P tm-t20 -o document.ps

プリンターはイメージ (200x200 のイメージ) を印刷しますが、最初に大量の印刷されていない用紙を送り出します。

プリンタが CUPS によって認識されませんでした (localhost:631 の Web インターフェイスを使用)。次に、次の手順を使用してインストールしました。

sudo lpadmin -p tm-t20 -E -v serial:/dev/ttyUSB0 -P /usr/share/ppd/epson-tm-t20-rastertotmt.ppd 

次に、プリンタが CUPS Web インターフェイスに表示され、設定しました (ボー レート、ビット パリティなど)。

テキストを送信すると、プリンターは正常に動作します。

以下は、プリンター ppd の一部です。

*DefaultPageRegion:RP80x297
*PageRegion RP80x297/Roll Paper 80 x 297 mm: "<</PageSize[204 841.8]/           ImagingBBox null>>setpagedevice"
*PageRegion RP58x297/Roll Paper 58 x 297 mm: "<</PageSize[141.7 841.8]/         ImagingBBox null>>setpagedevice"
*CloseUI: *PageRegion

*DefaultImageableArea: RP80x297
*ImageableArea RP80x297/Roll Paper 80 x 297 mm: "0 0 204 841.8"
*ImageableArea RP58x297/Roll Paper 58 x 297 mm: "0 0 141.7 841.8"

*DefaultPaperDimension: RP80x297
*PaperDimension RP80x297/Roll Paper 80 x 297 mm: "204 841.8"
*PaperDimension RP58x297/Roll Paper 58 x 297 mm: "141.7 841.8"

この紙の無駄遣いは、ppdファイルに出てくる長さ297mmのせいだと思います。次に、297mm の代わりに 100mm の別の構成を追加しようとしましたが、問題は解決しません。

また、タグ %%DocumentMedia を ps ファイルに追加しようとしましたが、同じ問題が発生しました:

%!PS-Adobe-3.0
%%Creator: GIMP PostScript file plugin V 1.17 by Peter Kirchgessner
%%Title: yay.ps
%%CreationDate: Thu Sep 13 13:44:26 2012
%%DocumentData: Clean7Bit
%%LanguageLevel: 2
%%Pages: 1
%%BoundingBox: 14 14 215 215
%%
%%EndComments
%%DocumentMedia: Plain 72 72 0 white Plain 
%%BeginProlog
% Use own dictionary to avoid conflicts
10 dict begin
%%EndProlog
%%Page: 1 1
% Translate for offset
14.173228346456694 14.173228346456694 translate
% Translate to begin of first scanline
0 199.99999999999997 translate
199.99999999999997 -199.99999999999997 scale
% Image geometry
200 200 8
% Transformation matrix
[ 200 0 0 200 0 0 ]
% Strings to hold RGB-samples per scanline
/rstr 200 string def
/gstr 200 string def
/bstr 200 string def
{currentfile /ASCII85Decode filter /RunLengthDecode filter rstr readstring pop}
{currentfile /ASCII85Decode filter /RunLengthDecode filter gstr readstring pop}
{currentfile /ASCII85Decode filter /RunLengthDecode filter bstr readstring pop}
true 3
%%BeginData:        14759 ASCII Bytes

何か案が?

4

2 に答える 2

1

最後に多くの苦痛の後。問題は、シリアルから USB へのケーブル (シリアル プリンターを USB ポートに接続するため) にあることがわかりました。2 つの異なるシリアル - USB ケーブルで試しましたが、問題は解決せず、最終的に「実際の」シリアル ポートに接続されていない場合、プリンターが不安定に動作するという結論に達しました。シリアル ポートを備えた PC で同じ条件下でプリンターをテストしたところ、epson から提供されたドライバーをインストールし、/dev/ttyS0 に chmod 777 を与えるだけで完璧に動作しました。ジョブ リストに「/usr/lib/cups/filter/pstopdf failed」というエラーが表示されることがあります。しかし、エラーが発生しなかったように、プリンターは正常に印刷されます。

于 2012-10-01T16:06:50.020 に答える
0

プリンターを機能させるには、chmod 777 /dev/ttyUSB0 を実行する必要があります (sudo でコマンドを実行した場合でも)。

オプション media=B8 を使用すると、許容できる結果が得られます (テキストが中央にありません)。

lp -d tm-t20 -o media=B8 document.ps

私も試してみました

  lp -d tm-t20 -o media=Custom.80x90mm document.ps

しかし、プリンターは印刷せず、ジョブは cups Web インターフェイスで完了したように見えます。

私が試してみると

lp -d tm-t20 -o media=Custom.200x190 document.ps

プリンターは印刷します (正しく中央に配置されていません。目的の結果が得られるまで、さまざまな値を試してみる必要があると思います)。ドットで表された用紙の寸法は、次のサイトにあります: http://paulbourke.net/dataformats/postscript/

プリンターが紙をカットしていません。そのオプション (紙を印刷してカットする) を指定する方法がわかりません。

プリンターが受け入れるオプションは次のとおりです。

lpoptions -p tm-t20 -l

PageSize/Media Size: *RP80x297 RP58x297 Custom.WIDTHxHEIGHT
Resolution/Resolution: *203x203dpi
TmtSpeed/Printing Speed: *Auto 1 2 3 4
TmtPaperReduction/Paper Reduction: Off Top *Bottom Both
TmtPaperSource/Paper Source: *DocFeedCut DocFeedNoCut DocNoFeedCut DocNoFeedNoCut PageFeedCut PageFeedNoCut PageNoFeedCut
TmtBuzzerControl/Buzzer: *Off Before After
TmtSoundPattern/Sound Pattern: *A B C D E
TmtBuzzerRepeat/Buzzer Repeat: *1 2 3 5
TmtDrawer1/Cash Drawer #1: *Off Before After

プリンターに印刷させて紙をカットする方法は?カスタム C++ プログラムから使用するには、コンソールから実行する必要があります。Linux でこの種のプリンターを使用した経験がある場合は、アドバイスをお願いします。私の目標は、C++ プログラムからプリンターを使用することです。それを行うための高速な方法が見つかりませんでした (ESC/POS コマンドをプリンターに直接送信します。Linux でそれを行うための公式ドキュメントはありません)。 m コンソールから CUPS を操作します。

ペーパーカットの解決:

lp -d tm-t20 -o media=Custom.200x258 -o source=DocFeedCut document.ps

オプションに示されているように、DocFeedCutがデフォルトのオプションであるため、なぜ機能するのかわかりません。

ここで、テキストを正しく中央に配置しようとします。

于 2012-09-24T21:47:40.817 に答える