700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > linux下安装OpenOffice及使用java调用OpenOffice转换word Excel为pdf并添加水印

linux下安装OpenOffice及使用java调用OpenOffice转换word Excel为pdf并添加水印

时间:2021-10-03 23:09:40

相关推荐

linux下安装OpenOffice及使用java调用OpenOffice转换word Excel为pdf并添加水印

一、linux下安装OpenOffice

OpenOffice是Apache的一款开源的软件,我主要是用来转换office文档成pdf文件,并给其添加水印等。

(1)下载安装包

进入主题,首先我们需要下载OpenOffice的安装包,安装包分成windows系统、linux系统、32位、64位、rpm包、deb包,我是安装在linux下,我安装的linux是64位的,并且使用的redhat的CentOS,所以选择这个包

如果不知道是多少位的,命令输入 uname -p 如果是x86_64 那么就是64位,如果是i386 i686就是32位的

如果忘记了自己安装的版本,命令行输入 lsb_release -a 就可以看到,如果是CentOS,选择rpm,如果是Ubuntu,选择deb

如果想了解rpm和deb的请查看博客:/frank0712105003/article/details/8125662

我就以linux 64位 CentOS 为例安装OpenOffice。如果嫌下载慢,可以私聊我,或者在百度网盘下载:/s/1DHxyNM652A7ozL0vC7Iudw 提取码:8z7u

x86的是32位,x86_64是64位的,看好了下载

(2)解压并安装rpm

将下载好的安装包,我们正常都是放在/usr/local/目录下,可以自己建一个OpenOffice文件夹,输入命令:tar -zxvfApache_OpenOffice_4.1.7_Linux_x86-64_install-rpm_z.gz ,解压完成进入zh-CN/RPMS 文件夹 ,安装解压出来的 rpm 包,输入命令 :rpm -ivh *.rpm,安装完成后的界面如图:

在进入desktop-integration文件夹,继续安装对应linux的rpm,我的linux是CentOS所以选择redhat的,输入命令:rpm -ivh openoffice4.1.7-redhat-menus-4.1.7-9800.noarch.rpm ,如图 :

安装完成如图:

(3)启动OpenOffic服务:

OpenOffice默认安装到opt文件夹下了,我默认了安装路径,所以启动命令是:

/opt/openoffice4/program/soffice -headless -accept="socket,host=虚拟机的地址,port=8100;urp;" -nofirststartwizard 临时启动

/opt/openoffice4/program/soffice -headless -accept="socket,host=虚拟机地址,port=8100;urp;" -nofirststartwizard & 后台启动

e

验证是否启动成功:

用netstat -lnp |grep soffice或者 ps -ef|grep soffice 查看启动状态,如下图所示表示启动成功。

我只是测试所以ip是127.0.0.1,表示只能本机调用,如果想在其他主机调用该linux下的OpenOffice,要设置在一个网段内,不然是无法访问到的,也就无法调用OpenOffice服务。

(4)启动OpenOffice可能出现的问题:

A.error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory

解决:这个是找不到libXext.so.6文件。去系统里面的/usr/lib64中或者/usr/lib,查看有没有这个文件,如果有就copy到/opt/openoffice4/program/目录里面,赋予chmod 777 libXext.so.6。

如果没有,需要安装:yum install libXext.x86_64(64位) (yum install libXext.i686 32位)。安装成功后,进入/usr/lib64中将libXext.so.6拷贝到/opt/openoffoce4/program中:cp libXext.so.6 /opt/openoffice4/program/,进入/opt/openoffice4/program/赋予权限。(这个是看一位大佬博客写的,我也忘记博客地址了,不好意思)

B.no suitable windowing system found 输入命令 :yum -y groupinstall "X Window System" 如果 出现

输入命令:yum groupinstall 'GNOME Desktop' 等待安装完成即可,不清楚为什么使用单引号。

感谢/SLKnate/p/linux_centos7_XWindowSystem.html博客园这位大佬,我才成功启动了OpenOffice

安装完成再启动一次OpenOffice即可。

二、使用java程序调用OpenOffice实现转换并添加水印

(1)思路

首先连接OpenOffice,给定待转换的office文件,指定转换完成的pdf路径及名称,拿到pdf对象,添加水印对象,添加水印。

看了下大佬们的coding,大致的思路就是这样的。

(2)资料下载

具体实现我写了一个Demo,我将需要的安装包及jar包还有字体还有demo,放到百度云,链接:

链接: /s/1wTqtBNVgaSVuqardgeKjXw 提取码: gjhd x86是32位的 x86_64是64位的

我写的Demo都有注释,很容易看懂,待转换的文件放在/data目录下,指定是1.docx,生成的pdf也是在该目录下1.pdf,添加水印的是2.pdf。

(3)可能出现的问题

A.OpenOffice报拒绝连接的异常,您忘记开启OpenOffice服务,开启OpenOffice服务后再尝。

B.如果转换完成的pdf中文出现乱码或者显示方框,说明你的linux下没有字体,我在上传的百度云,有一个ttc后缀的文件(宋体简体),或者自己找一个字体,将其放到linux下/usr/share/fonts文件夹下,重启一下OpenOffice服务即可,再次运行程序。

C.有的转换xlsx或者docx文件时,无法转换或者异常,是因为jodconverter的版本是2.2.1,2.2.2版本就支持了,你直接修改pom依赖可能也下载不到,因为中央仓库没有,所以我在百度云上传的jar就是2.2.2的,放在你本地仓库指定的文件夹下,maven update下就可以了

D.即便你使用了2.2.2版本,可能转换有的doc,xls文档,生成的pdf是xml文件,因为这类都是xml类型的文档,有一种解决方案,另存,在转换即可。如何区分呢,用记事本打开,显示xml就是xml类型的,显示乱码就是正常的office文档。

到这里整篇博客就结束了,可能所写之处有不对的地方,希望各位前辈多多包涵,指出我的不足,让我们一起进步,一起成长。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。