OpenOffice格式转换中文乱码终极解决方案

简介: 1、环境CentOS release 6.7 (Final)已安装:openoffice4.1.3, jodconverter.2.2.2。

2、OpenOffice使用

Apache OpenOffice是一款先进的开源 办公软件套件,它包含文本文档、电子表格、演示文稿、绘图、数据库等,能够支持许多语言,可以在多种操作系统上运作,并能够读写其它常用办公软件包生成的文件。同时它也是一个平台,用户可以基于其提供的API接口来开发自己的应用程序。


Jodconverter是一个JAVA的OpenDocument**文件转换器,利用OpenOffice可以进行多种文档格式之间的转换,支持的格式包括OpenDocument,PDF,RTF,Word,Excel,PowerPoint,以及Flash。它可以被用做**JAVA库,命令行工具,或者一个WEB应用。


已验证过的格式转换支持如下:

【1】、ppt/pptx转为html,转成的html结果是:文字和图片分开存储,每页PPT对应一个html。

【2】、ppt/pptx转pdf;

【3】、doc/docx转html。


3、格式转换出现中文乱码

java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /opt/test.ppt /opt/test.pdf

乱码症状:所有中文字符都显示为???乱码。

我遇到的情况是:ppt转pdf出现乱码,随即花了半天的时间找到了解决方案。

其他类型转换出现乱码如:doc转pdf等的解决方案都类似。


4、乱码解决方案

步骤1:创建路径。

在centos的/usr/java/jdk1.8.0_91/jre/lib/fonts下新建路径:fallback。


[root@780ec6 fallback]# echo $JAVA_HOME

/usr/java/jdk1.8.0_91

1

2

步骤2:上传字体。

将字体:simhei.ttf 黑体、simsun.ttc 宋体(windows下通过everything找下)上传至/usr/java/jdk1.8.0_91/jre/lib/fonts/fallback路径下。


步骤3:查看系统字体文件路径。

查看方案:


[root@80ec6 fallback]# cat /etc/fonts/fonts.conf

<!-- Font directory list -->

 <dir>/usr/share/fonts</dir>

 <dir>/usr/share/X11/fonts/Type1</dir> <dir>/usr/share/X11/fonts/TTF</dir> <dir>/usr/local/share/fonts</dir>

 <dir>~/.fonts</dir>

1

2

3

4

5

步骤4:字体拷贝。

将 /usr/java/jdk1.8.0_91/jre/lib/fonts的全部内容,拷贝到步骤3查看的路径下, 我的字体路径为:/usr/share/fonts。


步骤5:更新缓存

执行命令:fc-cache


步骤6:kill掉openoffice进程。

[root@80ec6 fonts]# ps -ef | grep openoffice

root 3045 3031 0 06:19 pts/1 00:00:03 /opt/openoffice4/program/soffice.bin -headless -accept=socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard

执行kill:kill -9 3045

1

2

3

步骤7:重启后台运行openoffice。

[root@a3cf78780ec6 openoffice4]# soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

1

步骤8:完成格式转换。

java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /opt/test.ppt /opt/test.pdf

1

至此,转换完毕,乱码不再存在。

相关文章
|
Linux
Linux环境下安装和配置OpenOffice及常见问题解决
本文主要讲解在Linux环境下,如何安装OpenOfice环境,及配置开机自启动
7139 0
Linux环境下安装和配置OpenOffice及常见问题解决
|
安全 Linux 网络安全
组网神器WireGuard安装与配置教程(超详细)
组网神器WireGuard安装与配置教程(超详细)
67398 2
|
8月前
|
消息中间件 分布式计算 Kafka
别再全量拉表了兄弟:一篇讲透增量数据处理与 CDC 的实战指南
别再全量拉表了兄弟:一篇讲透增量数据处理与 CDC 的实战指南
391 9
|
图形学 开发者
【Unity3D实例-功能-镜头】第三人称视觉-镜头优化
本文介绍了如何在Unity中使用Cinemachine调整第三人称视角镜头,适用于ARPG游戏开发。内容包括调整摄像机Y轴方向与速度、设置转向灵敏度以及实现摄像机跟随角色平移,帮助开发者快速掌握镜头控制技巧。
531 0
|
存储 前端开发 Java
Spring Boot 集成 MinIO 与 KKFile 实现文件预览功能
本文详细介绍如何在Spring Boot项目中集成MinIO对象存储系统与KKFileView文件预览工具,实现文件上传及在线预览功能。首先搭建MinIO服务器,并在Spring Boot中配置MinIO SDK进行文件管理;接着通过KKFileView提供文件预览服务,最终实现文档管理系统的高效文件处理能力。
2805 11
|
数据采集 DataWorks 大数据
数据开发平台/工具对比测评:
数据开发平台/工具对比测评
629 23
|
Java Linux 数据安全/隐私保护
libreOffice word 转 pdf
在Windows环境下,使用documents4j进行DOCX到PDF的转换大约需要20秒,而Linux环境下通过Docker配置LibreOffice进行转换,时间仅为1.4秒。documents4j仅适用于Windows且需Microsoft Office支持,libreOfficeCommand则依赖于Linux环境。Spire.Doc.Free有前4页免费但有水印,不推荐。
1832 0