上万个 word 文档批量自动化排版

36 天前
 ghwolf007
问题:上万个 doc 的 word 文档,类似论文格式的报告(包括目录,正文,插图清单,附录清单,参考文献),每个部分都对文字格式、段落格式有要求,标题和正文不能出现某些字眼,目前这上万个 doc 文档中可能存在大量格式不符合要求的,因为是不同的人写的,积攒了很多年了,现在要批量排版归档。

需求:请教各位大佬怎么批量自动化排版?自己调研了一下,先 win32com 转 docx ,然后使用 python-docx 结合 vba 把文档内容读取出来按照要求重新排版写入新文件,这条路子可不可行?因为之前没接触过,希望各位大佬不吝赐教!
968 次点击
所在节点    程序员
10 条回复
mirrornighth
36 天前
可行的
ruanimal
36 天前
有的 word 文档 的排版样式非常复杂,程序排版效果不一定好
如果只有这么多文档,多找点人人力搞一下?
Ib7WF3828E1C0W09
36 天前
可行的
ghwolf007
36 天前
@mirrornighth #1
@wittgensteinR #3
感谢大佬
ghwolf007
36 天前
@ruanimal #2 就是因为太费人了。。。希望能尽可能的代替人工处理大部分格式问题
DsuineGP
35 天前
如果这些文档是由同一个文档模版创建的, 那么可行; 否则, 不可行

1, 无法准确识别文章某一个段落的格式类型, docx 文档中不存在「标题」「正文」...只有「样式表」, 换句话说, 所有的标题和正文的格式只是「样式表」中的某一个样式的命名.你没法保证每一个文档中样式表的命名都是「标题」「正文」.只能根据 fontSize==16 或者 bold==true 这样的条件去判断, 但是每一个文档中样式都略有区别.

2. 从 doc 转到 docx 之后, 形状、图片元素可能被转置成 VML 而非 OOXML 通用的 DML, 虽然没看 python-docx 代码, 但是大概率是不支持的
ghwolf007
35 天前
@DsuineGP #6 感谢大佬 非常专业!!!
1.目前这些文档确实来源五花八门 提交的时候又强制要求转为 doc 来提交 最终修改完还是要转为 doc 所以处理起来很麻烦;
2. python-docx 应该是不支持 VML 的,就是不知道能不能局部修改,只改标题、正文文本、目录、页码这些。
ghwolf007
35 天前
@DsuineGP #6 我看 doc 和 docx 都有内置样式和自定义样式吧 这块会有什么区别吗
DsuineGP
35 天前
@ghwolf007 逻辑上没有区别, 印象中 doc 跟 docx 一样都是根据 styleId 去样式表中查找对应的样式, 但是这个 styleId 五花八门, 比如一眼从客户端中能看出来是标题的段落, 实际的 styleId 可能是 「 heading 1 」/「标题」 或者干脆命名成 「丁真」
ghwolf007
31 天前
@DsuineGP #9 这个还真是难搞 看来需要从生产的源头卡死 这个有啥好办法吗 现在有用 office 的 也有用 wps 的 搞一套通用模板给到源头?是修改系统自带样式还是新增样式比较好一些?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1064886

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX