单位有近万个 docx 文档需要批量转换为 html,并需要保留图表(可转换为图片)
目前做过的尝试
1.WPS 可以完美转换,但不能批量,尚未找到能调用的接口
2.pydocx,无法保留图表
3,pandoc,无法保留图表及图片
4,mammoth,没装,看文档是无法保留图表的
5,LibreOffice,我已经急病乱投医了,这个转完的文件像一坨屎一样糊在我的桌面上,而且打开以后更是屎....
目前的想法有两条路
1,第三方代码解决,貌似够呛了
2,控制 WPS 或 WORD 等编辑工具进行批量另存
请大神指点一二
1
lneoi 2022-03-04 14:56:39 +08:00
围观 之前找的也是没办法保留表格
|
2
RickyC 2022-03-04 14:57:47 +08:00
猜想用 宏或者 COM 接口 操作 WPS 或 Word 的接口,用 Save as 保存为网页
|
3
xylophone21 2022-03-04 15:00:06 +08:00
@RickyC 如果文件个数很多,一个一个的打开,点宏也还是蛮大的工作量的
|
4
RickyC 2022-03-04 15:00:17 +08:00
|
5
RickyC 2022-03-04 15:00:59 +08:00
@xylophone21 当然不是手动打开;用宏可以批量,用别的语言操作 com 也可以批量。
|
6
cwcc 2022-03-04 15:01:57 +08:00
同求,不过我的看法是现在 Word 格式虽然是开放的但还是很复杂,复杂就有点私有那味了,也就是不能完全通过自己的代码来操控 DOCX 文件内的每一个细节。
我之前是尝试使用各种语言的各种库生成 DOCX ,但反过来就很难。(因为有时候你永远也不能确定这份 Word 文档的一段简单的文字格式有多复杂) |
7
MuSeCanYang 2022-03-04 15:16:43 +08:00
Aspose. Words
|
8
murmur 2022-03-04 15:24:34 +08:00
libreoffice 转 pdf 可以啊,为什么非得 html ,要求 html 本身就是过分,文档预览都用的 canvas 渲染
|
9
colatea OP 找到办法了
https://blog.csdn.net/lzl001/article/details/8435048 pip install pypiwin32 app = Dispatch('Word.Application') doc = app.Documents.open('D:\\doc\\test.docx') doc.SaveAs('D:\\html\\test.html', 8) doc.Close() app.Quit() |
11
yangyaofei 2022-03-04 16:26:48 +08:00
可以用 libreoffice + Jodconvert 转换格式 如果是 linux 的话, win 下用 win32 确实最好了
但是,你要提取内容为啥不直接用类似 POI 的库去读,或者更暴力点,解压开了之后里面就是一堆 xml 和图片,随便搞 |
12
shayuvpn0001 2022-03-05 12:01:24 +08:00
这个需求其实最好是用微软亲儿子来实现,简单的 VBA ,复杂的上 VSTO 。你上面的语句也是背后启动了 Word ,调用 word 的另存为功能实现的。
如果一切顺利,这个确实是可以跑到天荒地老。一旦碰到文档有问题,比如编码不对,死机没及时保存等,python 可能跑到这里就自动终止了。 |