实测Office自带拼音指南批量注音:50页文档它撑不住,换方案才救回来
前阵子接了个活,帮一个做小学语文课件的老哥处理50页Word文档,要求给所有汉字加拼音。他第一反应是“装个XX拼音助手吧,都说必备”。我寻思,Word自带拼音指南不就能干这事?结果实测下来,发现这玩意儿批量处理就是个笑话。
先说方法:Word拼音指南只能选中文字一个个加,50页文档几百段,手动点?手指头不要了。网上教程让你用宏(VBA)批量循环调用拼音指南,我照做了。在一台i5-8250U+16G的笔记本上跑,前20页还行,到第30页左右Word直接无响应,等了十分钟弹个“内存不足”。换到另一台i7-10700+32G的台式机,倒是跑完了,但耗时47分钟,比我预期慢太多。
我扒了下原因:拼音指南每次调用都要重新计算整个Range的注音布局,文档越长,每次迭代开销越大,复杂度不是线性的。而且批量加完拼音后,文件体积从2.1MB涨到8.7MB,因为每个拼音都是独立域代码,Word存的时候展开存了。
那怎么办?我试了另一个思路:用LibreOffice的宏批量给汉字加Ruby(注音)文本,再转回docx。实测同样50页,LibreOffice跑完只花了6分钟,文件体积4.3MB。缺点是Ruby转docx后,Word里拼音的字体和间距会丢一部分格式,得手动调。
最后交付的方案是:用LibreOffice加注音,导出docx,再在Word里全局替换拼音域代码的字体为“楷体”,统一行距。老哥验收时说能接受,毕竟比手动点几百次强。
所以我的结论是:Word自带拼音指南只适合短文档或局部注音,批量处理50页以上,要么接受龟速+高内存占用,要么换LibreOffice宏。那些吹“一键批量注音”的第三方插件,我没测,但按经验,底层大概率也是调Word的COM接口,快不到哪去,还多一层壳。
最后问一句:你们批量注音是硬扛Word宏,还是直接上LibreOffice?有没有人试过Python-docx直接操作XML插ruby标签?求个实测数据。
