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的请查看博客:https://blog.csdn.net/frank0712105003/article/details/8125662
我就以linux 64位 CentOS 为例安装OpenOffice。如果嫌下载慢,可以私聊我,或者在百度网盘下载:https://pan.baidu.com/s/1DHxyNM652A7ozL0vC7Iudw 提取码:8z7u
x86的是32位,x86_64是64位的,看好了下载
(2)解压并安装rpm
将下载好的安装包,我们正常都是放在/usr/local/目录下,可以自己建一个OpenOffice文件夹,输入命令:tar -zxvf Apache_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' 等待安装完成即可,不清楚为什么使用单引号。
感谢https://www.cnblogs.com/SLKnate/p/linux_centos7_XWindowSystem.html博客园这位大佬,我才成功启动了OpenOffice
安装完成再启动一次OpenOffice即可。
二、使用java程序调用OpenOffice实现转换并添加水印
(1)思路
首先连接OpenOffice,给定待转换的office文件,指定转换完成的pdf路径及名称,拿到pdf对象,添加水印对象,添加水印。
看了下大佬们的coding,大致的思路就是这样的。
(2)资料下载
具体实现我写了一个Demo,我将需要的安装包及jar包还有字体还有demo,放到百度云,链接:
链接: https://pan.baidu.com/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文档。
到这里整篇博客就结束了,可能所写之处有不对的地方,希望各位前辈多多包涵,指出我的不足,让我们一起进步,一起成长。
linux下安装OpenOffice及使用java调用OpenOffice转换word、Excel为pdf并添加水印相关推荐
- eclipse java调用c 代码吗_linux下通过eclipse开发用java调用c程序的方法
linux下通过eclipse开发用java调用c程序的方法: 1.先建立好java工程并建立java文件如下: public class testso { static { ...
- linux下安装MySQL8及其远程可视化连接
1.下载路径 https://dev.mysql.com/downloads/mysql/ 2.解压 root模式下 tar -xvf 3.使用rpm命令安装MySql组件 rpm -ivh mysq ...
- Redis基础,Linux下安装Redis和hredis,C++调用Redis,Redis中字符串设计
文章目录 一.Redis是什么 Redis架构 Redis优势 Redis应用场景 二.Linux下载安装Redis(Ubuntu系统) 了解Redis版本 在线安装Redis 启动Redis服务端 ...
- linux上安装java失败,Linux下安装jdk失败怎么办
有时出于需要(比如安装最新的eclipse),我们需要安装指定版本的JDK.然而,安装完成之后,再次键入命令查询JDK版本却发现版本号没有更新.那么,这应该如何解决呢?下面就让学习啦小编教大家Linu ...
- linux 部署java的胡那就,心得之:linux下安装jdk tomcat oracle10g
最近一直在研究linux环境的操作,其实之前一直没有实际需求要用到linux,因项目需要,突然接受,显得很局促和苦闷,因我对linux的操作太不熟悉了,基本命令使用起来都很苦逼.现在突然需要搭建lin ...
- 使用oracle安装jdk1.7,【Java】Linux下安装配置Oracle JDK 1.7版本
1 环境 Vmware虚拟机中的Ubuntu 12.04 32位系统 2具体安装步骤 ①下载最新的jdk包 注意jdk区分32位版本和64位版本,要与Ubuntu兼容才行 下载地址 http://ww ...
- Linux下安装Weblogic10.3.6并创建简单集群测试
Linux下安装Weblogic10.3.6并创建简单集群进行测试 一.卸载随系统安装的openjdk 1.先查看安装的jdk信息,常用命令有rpm -qa | grep java, rpm -qa ...
- linux下安装jira详细步骤
首先从官网下载jdk的安装包,将jdk的安装包上传到虚拟机或者服务器,在./usr/local/目录下面创建一个java目录:mkdir java 等等,具体祥看本文,希望对你有所帮助 linux下安 ...
- Linux 下安装 Oracle9i
Linux 下安装 Oracle9i 数据库版本:Oracle9i R2 (9.2.0.1.0) 1. 创建用户与组: ------------------------- 切换为 Root 用户并执行 ...
最新文章
- vue更新数组和对象
- 脑电植入:治疗抑郁症的新方法?重磅!UCSF研究人员成功治疗一例重度抑郁症患者...
- Build a Machine Learning Portfolio(构建机器学习投资组合)
- map与unordered_map的区别
- 魅族Flyme5.x以上系统INSTALL_FAILED_SHARED_USER_INCOMPATIBLE
- 深入理解CSS权重(优先级)
- 3d 室内地图_微软科研人员欲通过3D点云混淆技术保护AR定位隐私
- 生成不同数据类型的随机数
- oracle _db_block_write_batch,Oracle体系结构----实例的进程结构
- Java实现图书管理系统(新手友好)
- 图像处理农业应用sci_SCI征稿通知
- 伴随方法:线性方程的伴随方程(Adjoint Equation)
- Power BI分解销售目标
- 小程序云数据库更新数组第n项
- 运营之光2.0 我的互联网运营方法论与自白
- 空气污染气体卫星数据的下载教程
- PTA 计算谱半径 —— 简单题
- Kitti中GPS/IMU数据格式
- 揭秘本土主流电子眼对车辆闯红灯的检测方法
- js正则 匹配 汉字、数字、英文字母、下划线 的 正则表达式
热门文章
- MinGW到底是个什么ghost
- HTML+CSS+js搭建简易网页(1)构建网页的骨架
- 计算机学院研究生论文课题,计算机专业研究生论文开题报告范文(最新)
- 【产品】设计时可用到的认知偏差与效应
- 华为机试练习(七)书籍叠放问题
- python什么是函数的唯一标识_Python:从modu中唯一标识一个函数
- python mock patch_偷梁换柱:使用mock.patch辅助python单元测试
- 帕累托图(Pareto Diagram,排列图)
- 黑龙江省计算机一级考试科目,黑龙江省2021年3月全国计算机等级考试时间和科目调整...
- 成为合格插画设计师的要点