博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docx 转 doc
阅读量:7032 次
发布时间:2019-06-28

本文共 1518 字,大约阅读时间需要 5 分钟。

hot3.png

1、docx4j 官方文档截图,如何处理 doc docx

2、LibreOffice(部分数学公式无法转换,转换过来是乱码,而且转换之前还必须把Word的数学公式设为 Cambria Math)

 

3、FMath , 一个将 LaTeX 转为 mathml 的Java框架

 

 

寻找 docx 转 doc 的过程

关于转换我已经试过很多方法了,下面是我的经历,首先就是我发我的Word2007打开有数学公式 的Word会出现部分乱码,需要手动把他们全部转为 Cambria Math 字体,才会正常显示,可是别人的 Word 2007 并没有这个问题,我怀疑是不是我的 Word2007 是破解版的。

1)未设置字体时

2)设置了 Cambria Math 字体

 

因为是字体没有设置 为 Cambria Math,所以我就想在数学公式生成Word的时候设置字体,参考这篇文章:

可是,我就算这样设置了,结果也不尽然。

然后,我就把这个撂倒一边,去看了 docx4j 的官方文档,它说如果想要从 docx to doc ,那么需要使用 openOffice/jodconvert ,此时我非常兴奋,因为有大神在前面指路。

首先我下载的是 JODConvert ,URL:

其API使用也是非常简单,不过他要依赖 OpenOffice 或 LibreOffice,网上说 LibreOffice 功能上已经渐渐超过 OpenOffice 了,当然,我并不知道,我两个都下载了。

首先下载的是 LibreOffice:

然后又下载了 OpenOffice:

因为我使用的使用Windows,于是也都安装了客户端程序,接下来就是使用 JODConver 和以上两个组件开始对接转文件了,代码如下:

以上三个方法,只使用了 transformBinaryWordDocXToDoc,因为我的目的就是转换 docx 到 doc.另外,注意一下参数。DocumentFamily.PRESENTATION,如果是Text,数学公式无法转换过来。

然后看看如何调用 OpenOffice 或 LibreOffice

通过切换代码来分别调用不同的组件,测试了,两个都有效果,但是效果都不理想,我不知道是不是我的数学公式有问题,还是这个组件自身的bug,有些数学公式就是转换不出来,如下

1)正常的数学公式(OMML)

2)LibreOffice 转换过来的公式,因为2003只是图片

3)OpenOffice 转换过来的公式,同样也是图片

结果很明显,LibreOffice 可以转换数学公式,但是不是所有公式都能正常转换,OpenOffice 则公式都没有转换出来。总之,想通过docx 转 doc 这种方式我觉得只要有数学公式那么就是行不通的,但是我又在怀疑是不是我的数学公式生成有问题,于是我找了各个版本的 MML2OMML.XSL , 进行数学公式转换,可是结果也一样,所以最后我决定还是生成 doc 吧,转来转去实在太累了。

 

如何生成 doc 呢?因为后台只有LaTeX,这个LaTeX如何才能转为Word中的数学公式呢?因为只有 2007以上版本才支持数学公式,2003 只能是图片,所以我得找个框架在后台把 LaTeX 转为 图片,于是网上看到了 FMath:

看看他的转换代码:

还可以参考: http://note.youdao.com/share/?id=8c207c69907332f436ade0ddedfadf4a&type=note#/

转载于:https://my.oschina.net/heweipo/blog/777522

你可能感兴趣的文章
以太坊钱包开发系列1 - 创建钱包账号
查看>>
社交系统 ThinkSNS+ V2.1.1 更新播报
查看>>
理解CPU分支预测,提高代码效率
查看>>
javascript调试接口
查看>>
Python基础系列:初识python引用计数与弱引用
查看>>
javascript继承方法以及优缺点
查看>>
tab 切换下划线跟随实现
查看>>
20+个很棒的Android开源项目
查看>>
跨域、vue双向绑定相关面试题
查看>>
Web Components(一)入门
查看>>
mpvue打包没有app.json等配置文件的解决方法
查看>>
树莓派配置swoole环境
查看>>
JavaScript 工作原理之十二-网络层探秘及如何提高其性能和安全性
查看>>
搭建基于react项目的心得
查看>>
react-native踩坑记录
查看>>
HTTP API 设计入坑指南(一)
查看>>
OkHttp源码分析
查看>>
【挖坑系列】跨域问题相关
查看>>
使用cronolog切割nginx访问日志,定时清理旧日志
查看>>
PHP最常用函数TOP100(翻译)
查看>>