加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 需要一种可以驱动两台打印机的快速编程语言

发布时间:2020-12-14 04:23:17 所属栏目:Windows 来源:网络整理
导读:我有一个相当不寻常的应用程序,不能按我需要的方式工作,我希望这里有人会有一些建议或至少有一个方向来调查. 我们有一个博物馆展览,在入口处有一台计算机,驱动两个小收据打印机.控制台上有两个按钮,连接到开窗鼠标的左右按钮.这两个打印机和相关按钮适用于女
我有一个相当不寻常的应用程序,不能按我需要的方式工作,我希望这里有人会有一些建议或至少有一个方向来调查.

我们有一个博物馆展览,在入口处有一台计算机,驱动两个小收据打印机.控制台上有两个按钮,连接到开窗鼠标的左右按钮.这两个打印机和相关按钮适用于女孩和男孩,每个按钮从名称数据库中随机选择,并在适当的打印机上打印一张带有图形图像的小票,一些关于展览的文字和随机选择的名称.

概念上一切都很好,但它经常挂起.我在最后一分钟得到了这个项目,因为最初的设计师陷入困境并无法交付,所以展览的作者在开幕前一天问我,我是否可以写一些有用的东西.

我用Word做过,因为我是一位经验丰富的VBA程序员.我尝试的其他几个途径都导致死胡同 – 一个不能做图形,另一个不能处理两个打印机,另一个不能改变字体等等.问题是它根本不够快 – Word一次只能驱动一台打印机,而更换活动打印机需要很长时间.不是办公室标准,在打印机开始处理文档之前的第二个或两个延迟不是问题,但在这里我需要或多或少的即时响应.如果孩子按下按钮并且没有任何反应,他们会一遍又一遍地按下它直到确实发生了某些事情,导致在打印机开始反应之前可能发送了6个命令.有时它完全堵塞程序,因为男孩和女孩将同时按下两个按钮并且Word锁定,即使它没有卡住,打印机也会吐出一串票,弄得一团糟.孩子们开始争吵哪张票是哪张票,把它们从打印机中拿出来,咆哮纸带,堵塞打印机,一般搞乱了整个事件,往往需要展览管理员不得不重新启动计算机并清除撕碎的碎片.纸张打印机.

我需要的是某种快速编程语言可以驱动两台打印机* – 同时 – *,而不是必须切换活动打印机的MSOffice claptrap,它可以对鼠标左键和右键单击事件作出反应,可以打印一个小的图形图像,可以打印不同的字体大小和样式.我不需要很多,但它不是一个字体.

任何人都可以建议我可以用于此吗?我甚至不知道在Windows下是否可能,“单一活动打印机”垃圾是Office工件还是Windows限制.二十五年前,我的小Commodore-64有两台打印机连接在一起,并且没有任何困难同时驱动它们 – 在我看来它今天不应该是如此不可能的要求.

作为一名 Python程序员,我会使用类似 MSWinPrint.py的东西,并使用Python直接渲染文档.看起来它支持文本和图像,您可以通过名称轻松选择系统中的任何打印机.

你需要:

>安装Python.
>安装Python for Windows Extensions.
>安装PIL.
>安装MSWinPrint.

然后,您需要编写一个程序来进行打印.像下面这样的东西.

#python
import sys
import Image,ImageWin
import MSWinPrint

# workaround for PIL namespace change
MSWinPrint.ImageWin = ImageWin

def print_name(name,printer_name):
    doc = MSWinPrint.document(printer_name)
    doc.begin_document('nametag for %s' % name)
    # print the name at position 20,20
    text_pos = 20,20
    doc.text(text_pos,name)
    # add an image for this person
    img_pos = 40,40
    img_size = 100,100
    doc.image(img_pos,get_image(),img_size)
    doc.end_document()

def get_image():
    image_filename = 'my image.jpg'
    return Image.open(image_filename)

if __name__ == '__main__':
    name,printer_name = sys.argv[1:]
    print_name(name,printer_name)

如果将其保存为print_tag.py,则可以使用两个命令行参数,要打印的名称和图像文件名来执行它.

print_tag.py Sally "EPSON Artisan 810"

我运行了这段代码,效果很好.我不知道创建自定义打印作业可能很容易.

您当然可以根据需要随意在任意数量的打印机上运行程序.当你运行打印作业的方式时,你可以做更多的事情来定制.您可以自定义代码以始终运行并解释鼠标单击(为此您可能需要wxPython),或者您可能有另一个程序只执行脚本.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读