1. 程式人生 > >OpenOffice+JodConverter實現Office檔案到PDF的轉換

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

[[email protected] ~]# 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 ~]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

下載

下載中文版的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

安裝

下載&解壓

[[email protected] ~]# cd /tmp/openoffice/
[[email protected] openoffice]# ls
Apache_OpenOffice_4.1.3_Linux_x86-64_install-rpm_zh-CN.tar.gz
[[email protected] 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
[[email protected] openoffice]# ls
Apache_OpenOffice_4.1.3_Linux_x86-64_install-rpm_zh-CN.tar.gz  zh-CN
[[email protected] openoffice]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

安裝

[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]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

執行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 ~]#
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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得到如下結構:

[[email protected] ~]# ls /opt/jodconverter-2.2.2/
ChangeLog.txt  docs  document-formats.xml  lib  LICENSE.txt  README.txt  src
[[email protected] ~]# 
  • 1
  • 2
  • 3

轉化

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
[[email protected] 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
[[email protected] tmp]# 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

問題點

預覽的時候由於字型的問題,顯示為亂碼或者佔位符的情況很多。這種情況下一般將字型檔案拷貝到openoffice目錄下(本文的情況:/opt/openoffice4/share/fonts/truetype),然後再重啟openoffice服務之後再次轉化即可。

總結

OpenOffice作為Apache下的頂級專案,還是值得使用的。但是JodConverter自從2009年之後就不再更新,只能說在免費可用的產品中暫定可用的一個簡單解決方案進行預覽前轉換,統一顯示。

再分享一下我老師大神的人工智慧教程吧。零基礎!通俗易懂!風趣幽默!希望你也加入到我們人工智慧的隊伍中來!http://www.captainbed.net