您的位置:首页 > 编程语言 > Python开发

Python和Endicia.com的打印费用

2008-03-23 23:00 429 查看
Thursday, July 05, 2007
Printing Postage with Python and Endicia.com

随着我的“自助”生意的增多,我每个月都需要给会员们通过海路邮寄很多新闻信件和CD,这还不包括偶尔有一些其它产品的订单。去年,我通过USPS网站完成所有的递送业务,但当我增加了缴纳会费功能时,我转而使用先前在Joel软件上推荐Endicia.com
Endicia提供一个Windows客户端软件,其允许从剪贴板上复制粘贴一系列地址,然后在Zebra标签印字机(或其它类型打印机)上打印海运标签。但自从2007年5月费率发生变化后,我能在标签上打印海关单据并海运给不同国家的客户,甚至不用再手写签名和为海关单据注明日期了。
然而,人工使用客户程序最恼人的问题之一就是在打印每种标签之前必须要小心地进行设置,而且每次只能打印一个非US标签。实际上我的客户有一半都是在美国以外,所以我每次要花上几小时逐个复制粘贴他们的地址、仔细检查所有的费率项然后再打印标签。
因而本月我实在忍受不了这种处理方式了,于是编写了一个基于XML的Python库:PyDicia,其中提供了支持Endicia的接口。
PyDicia是一个在Windows系统上针对Endicia's DAZzle客户端的工业级(industrial-strength)接口。它不仅能在任一海运选项设置或Endicia和USPS支持的标签类型下发送任意包到世界的任何地方,也可以进行地址纠错、支持发送确认码和海关标识(IDs)等。你如果有类似于“客户”或“发票”的应用程序对象时,可以通过注册回调函数将其转换为PyDicia识别的地址数据,同时得到纠错地址和传递确认码等。(例如,你可以在数据库中将一个订单标记为“已海运(shipped)”。)
到目前为止,在我的实际使用中只是打印了一个文稿中的标签,仍未进行任何应用程序的整合工作。这是因为目前我的“消费者数据库”由一个Excel表格和一个含有地址的纯文本文件组成。我可能不久就将所有这些替换为使用Access数据库,并通过建立商业标准来解决每个人的包中都应该有什么。(最终Access数据库可能会迁移到一些服务器端的数据库上,但就现在而言它是一个YAGNI(您将不需要它,You Aren't Going to Need It—译者注)。)
不管怎样,我用两到三天时间写程序,以此为代价已然在数据录入上节省了不少时间。:-(当然,在显露其真正地节省时间之前还要花费更多一些邮件(或是更多的会员!)。但从另一方面看,我又在编程过程中享受着乐趣,现在也不十分担忧国际海运这种方式了。更重要的是我不再为拥有大量新成员这一想法而有何顾虑,因为正是这些因素一直以来使我无法尽可能高效地提升和壮大这个团体。
顺便说一下使用PyDicia的一些技巧:首先要确保建立DAZzle的设计布局(layouts),包括保存每个布局下的打印机设置和支持“保密(stealth)”邮资。这将防止国际海运中不断出现对保密邮资提供支持的提示,也能避免设备出错或因错误打印机信息导致的标签打印出错。这样,你就可以关闭提示而让标签以最快的速度“喷涌”而出了。太棒了!

(原文链接网址:http://dirtsimple.org/2007/07/printing-postage-with-python-and.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: