文档章节

docx 转 doc

learn_more
 learn_more
发布于 2016/10/28 17:33
字数 907
阅读 286
收藏 1

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的时候设置字体,参考这篇文章:http://stackoverflow.com/questions/16784914/how-generate-docx-odt-file-with-math-formulas-from-java

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

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

首先我下载的是 JODConvert ,URL:http://www.artofsolving.com/opensource/jodconverter.html

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

首先下载的是 LibreOffice:http://www.libreoffice.org/

然后又下载了 OpenOffice:http://www.openoffice.org/

因为我使用的使用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://www.fmath.info/java/latex-mathml-converter/

看看他的转换代码:

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

© 著作权归作者所有

learn_more
粉丝 93
博文 240
码字总数 210196
作品 0
深圳
程序员
私信 提问
python docx文档转html页面

说到word文档转html的,网上一搜一大把,各种在线word转html页面,使用起来也方便。但是在实际项目中要使用的话,需要自己开发,这里就提供一个简单的方法。 后缀 .doc 和 .docx 都是word文档...

Mr_zebra
2018/11/20
105
0
PageOffice与Apache POI的区别

相同之处: 都可以对MS Office文档进行填充数据,转HTML、PDF等。 服务器端都不需要装MS Office办公软件。 都支持windows、linux、unix服务器。 2. 不同之处: PageOffice是客户端生成文档的...

山里的红杏
2018/09/12
196
0
docx 转成 html java

我想把 docx 转成html 做在线预览 doc 可以成功得转过来 docx 就是不行 转过来 table 样式就没有了 用到得技术 poi openoffice jacob 其中jacob 可以但是linux服务器用不了 其他得两个 doc能...

看起来很好吃_你
2016/07/11
1K
1
freemarker生成docx,打开出现内容有错误

我用freemarker生成doc文件可以,但是生成docx文件后打开显示“文件已损坏,无法打开”。 我的步骤是:新建word2007文件,设置格式,另存为xml,改名为ftl,再用freemarker生成doc和docx文件...

wangch_sk
2013/04/10
4.4K
7
使用POI读写word docx文件【docx总结的不错】

目录 1 读docx文件 1.1 通过XWPFWordExtractor读 1.2 通过XWPFDocument读 2 写docx文件 2.1 直接通过XWPFDocument生成 2.2 以docx文件作为模板 POI在读写word docx文件时是通过xwpf模块来进行...

Airship
03/13
67
0

没有更多内容

加载失败,请刷新页面

加载更多

JIT编程与方法内联

JIT的比较冷门,首先你要读一下这两篇 帖子: 《面向JIT编程-方法内联》 https://blog.csdn.net/u012834750/article/details/79488572 《浅谈对JIT编译器的理解》 https://www.cnblogs.com/...

爱吃窝窝头
14分钟前
3
0
基于TCP的RPC实现

RPC即远程服务调用 出现原因:随着项目越来越大,访问量越来越大,为了突破性能瓶颈,需要将项目拆分成多个部分,这样比起传统的项目都是本地内存调用,分布式的项目之间需要在网络间进行通信...

少年已不再年少
24分钟前
5
0
OSChina 周二乱弹 —— 他只能用这个办法劝你注意身体了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# Kodaline《High Hopes》 《High Hopes》- Kodaline 手机党少年们想听歌,请使劲儿戳(这里) @xiaoshiyue :仙女...

小小编辑
45分钟前
1K
20
Spring Boot Actuator 整合 Prometheus

简介 Spring Boot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等。这一节结合 Prometheus 、Grafana 来更加直观...

程序员果果
54分钟前
11
0
Linux文件查找命令详解

对于文件查找,我们最好用的还是属于find命令了,在说find命令之前,先把另外几个查找命令介绍一下。 目录 0x01 查询命令介绍 0x02 find命令介绍 0x01 查询命令介绍 在介绍之前,首先先了解一...

无心的梦呓
54分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部