2

Windows 7 の OE で Bixolon レシート プリンターを使用しようとしています。次のコードで win32print (py32win に付属) を使用して、小さな python モジュールから直接印刷することに成功しました。

win32print は OE にネイティブではないため、win32print.pyd を OE サーバー ディレクトリに貼り付け、コードを OE モジュールのウィザードに配置します。ウィザードが表示され、エラーなしで起動しますが、何も起こりません。印刷もエラー メッセージも表示されません。

何か案は ?ありがとうございました

import win32print

printer=OpenPrinter(win32print.GetDefaultPrinter())
hJob = win32print.StartDocPrinter (printer, 1, ("RVGI Print", None, "RAW"))
g=open('test3.txt','r')
raw_data = bytes ( open( 'test3.txt' , 'r').read ())
try:
    win32print.StartPagePrinter (printer)
    win32print.WritePrinter (printer, raw_data)
    win32print.EndPagePrinter (printer)
finally:
    win32print.EndDocPrinter (printer)
win32print.ClosePrinter (printer)
4

2 に答える 2

1

Python コードはサーバー上で実行されることに注意してください。プリンターがサーバーに接続されていますか?

exceptまた、にセクションがありませんtry。これにより、エラーは静かに通過します。tryエラーが発生するように、ブロックを削除してみてください。それらを見ると、問題がわかるかもしれません。

于 2012-11-15T08:35:57.340 に答える
0

ここで間違って入力したかどうかはわかりませんが、win32printモジュールをインポートした方法により、モジュール関数呼び出しにアタッチする必要があり、最初の行でこれを行っていません。

printer = OpenPrinter(win32print.GetDefaultPrinter())

する必要があります

printer = win32print.OpenPrinter(win32print.GetDefaultPrinter())

そして、私がよく理解していない別の点がありますが、Tim Goldenが彼のチュートリアルに入れ、あなたの問題になる可能性があります:

raw_data = bytes('your_text')

次のようになります。

raw_data = 'your_text'

システムのバージョンによって異なります。エンコーディングも指定していませんが、エラーが発生していないため、問題ではない可能性があります。

ティム・ゴールデンが投稿したバージョンについて:

import sys
if sys.version_info >= (3,):
  raw_data = bytes ("This is a test", "utf-8")
else:
  raw_data = "This is a test"

それが役に立てば幸い!

于 2013-01-24T17:33:17.750 に答える