最近项目上需要导出 excel 并快速打印单据. 工作环境:windows xp + google chrome + EPSON-LQ-630K 具体的工作流程如下:
axlsx
, 简单好用很快就搞定了。但是在打印时问题出现了:
导出的 excel 的打印尺寸应该是8.5in * 5.5in
. 这不是微软默认的打印尺寸,也不是 epson 默认的打印尺寸。所以只能定义一个打印尺寸.
具体参见:http://msdn.microsoft.com/en-us/library/windows/desktop/dd319099v=vs.85).aspx(
axlsx
提供了丰富的方法来设置pager size
, 也提供了自定义尺寸的 options, 但是,实际使用中却怎么也调试不好。这里的 axlsx 相应的源码:https://github.com/randym/axlsx/blob/master/lib/axlsx/workbook/worksheet/page_setup.rb
读完后发现usePrinterDefaults
放在 todo 里。也即是说,即使设置打印机的默认打印纸,也是不行。导出的 excel 默认为设置成Letter
格式.
...
果然程序员最痛恨的还是 windows...
大家有没有好的意见?hack axlsx 的方案或直接换个 gem? 已经试过writeexcel
,这个更坑。
悲剧地无人理会...