最近项目上需要导出 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
,这个更坑.
悲剧地无人理会...