OpenOffice+JodConverter实现Office文件到PDF的转换

OpenOffice简介

OpenOffice自从2002年发布第一个版本1.0.1以来已经过去了15个年头,在2011年移转至ASF,更在2012年底正式成为Apache顶级项目之一。而OpenOffice.org的名头也转换为了Apache OpenOffice。 作为Office工具的翻版,OpenOffice在文本文档、电子表格、演示文稿、绘图、数据库也是功能完备,而基于Apache2.0发布的OpenOffice可以完全自由使用而无需付出任何费用,至今也已经在公共事业/教育/非盈利事业/商业等较为广泛地使用。这篇文章将会重点介绍如何使用OpenOffice和JodConvert将既有的各种Office文件转换为Pdf文件以方便统一预览。

事前准备

OpenOffice可以在多种平台上运行,同时需要JRE运行环境。本文在CentOS上安装了JDK1.8以及Xwindow

[root@liumiaocn ~]# yum groupinstall “X Window System”

项目 详细
OS CentOS7
JDK 1.8:https://github.com/liumiaocn/easypack/blob/master/maven/easypack_jdk
X Window yum groupinstall “X Window System”
[root@liumiaocn ~]# uname -a
Linux liumiaocn 3.10.0-514.el7.x86_64 #1 SMP Tue Nov 22 16:42:41 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
[root@liumiaocn ~]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
[root@liumiaocn ~]#

下载

下载中文版的64位linux上运行安装的Apache OpenOffice的RPM安装包,也可以根据需要自行选择。

项目 详细
下载地址 http://www.openoffice.org/zh-cn/download/
当前最新版本 4.1.3
下载文件名称 Apache_OpenOffice_4.1.3_Linux_x86-64_install-rpm_zh-CN.tar.gz

安装

下载&解压

[root@liumiaocn ~]# cd /tmp/openoffice/
[root@liumiaocn openoffice]# ls
Apache_OpenOffice_4.1.3_Linux_x86-64_install-rpm_zh-CN.tar.gz
[root@liumiaocn openoffice]# tar xvpf Apache_OpenOffice_4.1.3_Linux_x86-64_install-rpm_zh-CN.tar.gz 
zh-CN/
...
zh-CN/RPMS/openoffice-graphicfilter-4.1.3-9783.x86_64.rpm
...
zh-CN/readmes/README_zh-CN.html
[root@liumiaocn openoffice]# ls
Apache_OpenOffice_4.1.3_Linux_x86-64_install-rpm_zh-CN.tar.gz  zh-CN
[root@liumiaocn openoffice]#

安装

[root@liumiaocn openoffice]# cd zh-CN/RPMS/
[root@liumiaocn RPMS]# rpm -ivh *.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:openoffice-ure-4.1.3-9783        ################################# [  2%]
   2:openoffice-core01-4.1.3-9783     ################################# [  5%]
   3:openoffice-zh-CN-4.1.3-9783      ################################# [  7%]
   4:openoffice-impress-4.1.3-9783    ################################# [ 10%]
   5:openoffice-zh-CN-base-4.1.3-9783 ################################# [ 12%]
   6:openoffice-zh-CN-calc-4.1.3-9783 ################################# [ 15%]
   7:openoffice-zh-CN-draw-4.1.3-9783 ################################# [ 17%]
   8:openoffice-zh-CN-help-4.1.3-9783 ################################# [ 20%]
   9:openoffice-zh-CN-impress-4.1.3-97################################# [ 22%]
  10:openoffice-zh-CN-math-4.1.3-9783 ################################# [ 24%]
  11:openoffice-zh-CN-res-4.1.3-9783  ################################# [ 27%]
  12:openoffice-zh-CN-writer-4.1.3-978################################# [ 29%]
  13:openoffice-base-4.1.3-9783       ################################# [ 32%]
  14:openoffice-calc-4.1.3-9783       ################################# [ 34%]
  15:openoffice-core02-4.1.3-9783     ################################# [ 37%]
  16:openoffice-core03-4.1.3-9783     ################################# [ 39%]
  17:openoffice-core04-4.1.3-9783     ################################# [ 41%]
  18:openoffice-core05-4.1.3-9783     ################################# [ 44%]
  19:openoffice-core06-4.1.3-9783     ################################# [ 46%]
  20:openoffice-core07-4.1.3-9783     ################################# [ 49%]
  21:openoffice-draw-4.1.3-9783       ################################# [ 51%]
  22:openoffice-images-4.1.3-9783     ################################# [ 54%]
  23:openoffice-4.1.3-9783            ################################# [ 56%]
  24:openoffice-math-4.1.3-9783       ################################# [ 59%]
  25:openoffice-writer-4.1.3-9783     ################################# [ 61%]
  26:openoffice-brand-writer-4.1.3-978################################# [ 63%]
  27:openoffice-brand-math-4.1.3-9783 ################################# [ 66%]
  28:openoffice-brand-base-4.1.3-9783 ################################# [ 68%]
  29:openoffice-brand-calc-4.1.3-9783 ################################# [ 71%]
  30:openoffice-brand-draw-4.1.3-9783 ################################# [ 73%]
  31:openoffice-brand-impress-4.1.3-97################################# [ 76%]
  32:openoffice-brand-zh-CN-4.1.3-9783################################# [ 78%]
  33:openoffice-ogltrans-4.1.3-9783   ################################# [ 80%]
  34:openoffice-gnome-integration-4.1.################################# [ 83%]
  35:openoffice-graphicfilter-4.1.3-97################################# [ 85%]
  36:openoffice-javafilter-4.1.3-9783 ################################# [ 88%]
  37:openoffice-onlineupdate-4.1.3-978################################# [ 90%]
  38:openoffice-ooofonts-4.1.3-9783   ################################# [ 93%]
  39:openoffice-ooolinguistic-4.1.3-97################################# [ 95%]
  40:openoffice-pyuno-4.1.3-9783      ################################# [ 98%]
  41:openoffice-xsltfilter-4.1.3-9783 ################################# [100%]
[root@liumiaocn RPMS]#

运行OpenOffice服务

[root@liumiaocn ~]# /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &
[1] 2229
[root@liumiaocn ~]# ps -ef |grep soffice |grep -v grep
root       2229   2011  0 02:34 pts/2    00:00:00 /bin/sh /opt/openoffice4/program/soffice -headless -accept=socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard
root       2238   2229  1 02:34 pts/2    00:00:00 /opt/openoffice4/program/soffice.bin -headless -accept=socket,host=127.0.0.1,port=8100;urp; -nofirststartwizard
[root@liumiaocn ~]#

JodConverter

JodConverter是一款利用OpenOffice进行转化的工具,可以在Office文件和OpenOffice文件之间进行转换,同时也可以将Office或者OpenOffice系列文件转化位PDF,最新版本是2.2.2。

项目 详细
下载地址 https://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/
当前最新版本 2.2.2
下载文件名称 jodconverter-2.2.2.zip
URL https://sourceforge.net/projects/jodconverter/files/JODConverter/2.2.2/jodconverter-2.2.2.zip/download

将此zip包解压至/opt得到如下结构:

[root@liumiaocn ~]# ls /opt/jodconverter-2.2.2/
ChangeLog.txt  docs  document-formats.xml  lib  LICENSE.txt  README.txt  src
[root@liumiaocn ~]# 

转化

jod可以用来将Office系列文件转换为PDF,以下以ppt文件为例,进行转化。

项目 详细
待转化文件 /tmp/aaa.pptx
转化对象文件 /tmp/aaa.pdf
转化命令 java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/aaa.pptx /tmp/aaa.pdf
[root@liumiaocn tmp]# java -jar /opt/jodconverter-2.2.2/lib/jodconverter-cli-2.2.2.jar /tmp/aaa.pptx /tmp/aaa.pdf
Jun 20, 2017 2:53:35 AM com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection connect
INFO: connected
Jun 20, 2017 2:53:41 AM com.artofsolving.jodconverter.openoffice.connection.AbstractOpenOfficeConnection disposing
INFO: disconnected
[root@liumiaocn tmp]# 

问题点

预览的时候由于字体的问题,显示为乱码或者占位符的情况很多。这种情况下一般将字体文件拷贝到openoffice目录下(本文的情况:/opt/openoffice4/share/fonts/truetype),然后再重启openoffice服务之后再次转化即可。

总结

OpenOffice作为Apache下的顶级项目,还是值得使用的。但是JodConverter自从2009年之后就不再更新,只能说在免费可用的产品中暂定可用的一个简单解决方案进行预览前转换,统一显示。

你可能感兴趣的:(工具,#,自动化工具)