POSプリンターで遊ぶ-3

| | コメント(0) | トラックバック(0)
イメージデータとしての出力は、以下に述べるようにソースコードを少しだけ修正すれば簡単に実現できる。

Pythonのプログラムが生成する*.prnファイルは、プリンタ制御文字列を含んでいたり、語数をカウントして用紙幅に収まるように改行コードを追加したりしている。これらを除去してプレーンなテキストファイルを生成させる必要がある。この問題を解決するために、Pythonのソースコードを変更する。

まず「fetch_rss-master」フォルダ内の「output_prn.py」の27?30行目を以下のように修正する。


27| # short_body = ' '.join(body.split()[:100])
28| prn.text(f + ' ')
29| prn.text(title + ' ')
30| prn.text(body)

修正後のプログラムを用いて生成した*.prnファイルをワードに読み込んでみると、文字コードがUTF-8だという確認ダイアログが表示される。この際、文字コードもShiftーJISに変更しておく。

そのためには、同じく「fetch_rss-master」フォルダ内の「escpos.py」の29行目を以下のように修正する。

29| self.prnfile.write(msg.encode('shift_jisx0213', errors='replace'))

これで、Shikft-JISのプレーンテキストファイルが出力されるようになったので、ワードに取り込んだ上で、印刷時にPOSプリンタを選択して出力すれば、日本語フォントを搭載していないPOSプリンターでも日本語の出力が可能となる。

因みに、プリンターのプロパティで、用紙を58mm幅のロール紙に、また印刷設定で、余白を上下左右5mm程度にして短冊状のページが表示されるようにする必要がある(余白の値については、若干の試行錯誤が必要となる)。また、デフォルトの文字サイズは、58mmしかない用紙幅に対して大きすぎるので、サイズを7pt程度のボールド指定に、行間のオプションで最小値を設定しておくと良い。

後は普通にワードから印刷を実行するだけである。日本語の文章が、イメージデータとしてPOSプリンタに出力される。わかってしまえば実に単純な話だ。当然、ワードに貼り込んだJPGなどのイメージデータも出力される。


ImagePos58-5.png
これで、プリンターが活用できるようにはなったのだが、ワードに食わせて余白やフォントの設定を変えたりせねばならず、どうも当初の趣旨とは異なってしまったような感じだ。ここはやはり日本語フォント搭載のPOSプリンターを用いて初志貫徹したいものだと思う(かくして人は深みにハマる)。

トラックバック(0)

このブログ記事を参照しているブログ一覧: POSプリンターで遊ぶ-3

このブログ記事に対するトラックバックURL: http://www.minimalvideo.com/mt/mt-tb.cgi/263

コメントする

pyccapをフォローしましょう

アーカイブ