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)
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)
相关文章推荐
- 用python的win32com模块替换word中的文字搞定批量打印奖状
- 关于Python打印网页内容时报错 UnicodeEncodeError: 'gbk' codec can't encode character……
- python练习之打印三角形,正方形,菱形
- 用python登录Dr.com思路以及代码分享
- Python学习笔记(八):Python语句简介、赋值、表达式和打印
- python09 打印,除了打印,还是打印
- 使用java.nio及其子包中的类SocketChanel完成如下功能:读取www.baidu.com等网页的内容,打印到控制台,避免中文乱码问题。
- 如何在python的print中格式化打印longlong型(即64位)整数
- Python树形打印目录结构
- django+python+eclipse 入门hello,打印时间
- 笨办法学python习题7 更多打印
- 001_022 Python 在标准输出上打印Unicode字符
- python中以特殊颜色打印文本
- Python语言编写用多行Unicode字符串表示下面的唐诗’静夜思‘并打印
- Python3基础 time.localtime 获得并打印出当前系统的年月日 时分秒
- <www.pythonchallenge.com>----Lv2
- python打印列表中指定元素的所有下标(5种方法)
- python05 更多的变量和格式化打印
- Python之打印变量
- 002_012 Python 将二进制数据发送到windows标准输出,即打印二进制到控制台