如何在OpenERP模块中使用win32print?

2024-09-30 08:29:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我尝试在Windows7上使用带有OE的Bixolon收据打印机。我成功地使用win32print(py32win附带)从一个小python模块直接打印,代码如下:

win32print不是在OE中本机的,所以我粘贴win32打印.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)

Tags: 模块代码txtdataraw错误打印机open
2条回答

请记住,python代码在服务器上运行。您的打印机连接到服务器了吗?在

另外,您的try中没有except部分。这让错误悄无声息地过去。请尝试删除try块,以便引发错误。看看他们,你可能会发现问题所在。在

好吧,我不知道您在这里键入的是否有误,但是您导入win32print模块的方式迫使您将其附加到模块函数调用中,而您在第一行中没有这样做:

printer = OpenPrinter(win32print.GetDefaultPrinter())

应该是

^{pr2}$

还有一点我不太明白,但是Tim Golden放在他的教程里,可能是你的问题:

raw_data = bytes('your_text')

可能只是:

raw_data = 'your_text'

取决于您的系统版本。您还没有指定编码,但由于没有错误,这可能不是问题所在。在

Tim Golden发布的版本:

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

希望有帮助!在

相关问题 更多 >

    热门问题