Java实现office办公文档在线预览

        使用openOffice预览office的办公文档,可以预览PDF,但是不能预览图片,在这过程中查看的资料;

本地windows调研

  文章1Java实现office办公文档在线预览(word、excel、ppt、txt等)_java实现文件预览编辑功能-优快云博客        这篇文章几乎介绍了所有Java预览openOffice的代码,非常有用;复制代码,然后再安装启动openOffice就能运行起来,但是不支持docx,xlsx这种;要支持docx、xlsx需要下载jodconverter-2.2.2.jar 才行;

       下载jar包,这里是下载地址
https://download.youkuaiyun.com/download/liuyanlinglanq/90424357 下载下来之后,就直接放到自己的maven仓库就行,和2.2.1平级建立一个2.2.2的文件夹,然后放入里面的jodconverter-2.2.2.jar;最终路径就是:D:\apache-maven-3.5.3\repository\com\artofsolving\jodconverter\2.2.2\jodconverter-2.2.2.jar。

    下载,安装,启动openOffice;下载就从文章1的官网下载即可,我下载的windows4.1.15版本;直接点击exe安装即可

文章2

使用OpenOffice转换文档格式为pdf,引用包版本报错问题_com.artofsolving.jodconverter 有2.2.2版本吗-优快云博客    然后再加一些pom文件;

文章3:
windows安装OpenOffice 4.1.5_openoffice怎么下载-优快云博客 (这篇文章就是windows上的简单安装图片版本,没啥具体的用处)

文章4:

【windows启动openOffice】-优快云博客 (这篇文章就是windows上的启动命令,找到安装目录,然后执行命令就行)

cd C:\Program Files (x86)\OpenOffice 4\program

启动命令:soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -npfirststartwizard
确认启动:netstat -anop tcp 有8100就行 或 netstat -anop tcp | findstr "8100"

文章5:
OpenOffice使用_关闭openoffice服务-优快云博客

netstat -ano| findstr "8100"

taskkill /f /PID 12296

然后至此效果展示;(postman调用)

服务器安装openoffice

1、安装ssh连接服务器

好了本地的调研完毕了,需要将这个发到服务器上;服务器是CentOS 7;

使用ssh工具,PuTTY连接服务器;

下载Putty,然后由于它记不住密码,所以创建一个快捷方式,方便登录;

文章2.1

以下都是PuTTY的相关文档;

5款SSH客户端工具推荐!强的起飞!!!_51CTO博客_常用ssh客户端工具 (里面有下载地址 Download PuTTY - a free SSH and telnet client for Windows
putty保存登录账号和密码_putty保存用户名和密码-优快云博客 (创建一个快捷方式,方便登录)

1,创建一个桌面快捷方式。

2,进入快捷方式属性,修改目标,在后面加上 -ssh -l 用户名 -pw 密码 -i session标识 -P 端口号 IP地址。例如 "C:\Program Files\PuTTY\putty.exe" -ssh -l root -pw 123456 -i "yuanchengserver1" -P 22 142.16.187.129

3,然后,通过快捷方式就可以直接登录了~

使用putty上传文件从windows到linux_putty传输文件到linux-优快云博客 (将字体上传到服务器上)

利用putty上传/下载文件 - 让我们荡起双桨! - 博客园 (上传+下载)

pscp C:\Windows\Fonts\*.ttf root@43.143.167.3:/usr/share/fonts/chinese/

2、服务器下载至本地

pscp root@43.143.167.3:/opt/word.pdf C:\Users\Administrator\Downloads\

2、安装openoffice

文章2.2

以下都是在linux上安装openOffice的操作

linux-安装openoffice_openoffice linux下载-优快云博客

(我一开始看的这个,也挺详细,就是少了部分问题和乱码的解决,而且里面有wget的下载,方便linux上下载;但是里面提供的地址会跳转,导致302 found,换一个地址,https://master.dl.sourceforge.net/project/openofficeorg.mirror/4.1.5/binaries/zh-CN/Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_zh-CN.tar.gz?viasf=1,(上面这个是我下载完了之后,看文件的下载地址得到的)但是上面的地址下载之后文件名,还会带?viasf=1,修改一下名字即可)

mv Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_zh-CN.tar.gz?viasf=1 Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_zh-CN.tar.gz
 

linux的openoffice乱码情况,linux安装openoffice,并解决中文乱码-优快云博客
这篇文章介绍的最详细,包括中间代码调用时的异常,/opt/openoffice4/program/soffice.bin: error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory 问题;
启动openoffice时报错:libXext.so.6: cannot open shared object file: No such file or directory-优快云博客

这个就是该libXext问题的扩展明细版本,但是内容都是一样的;

以及最后的乱码问题;

乱码问题就是添加字体库,之前试了很多次依然没有用,估计是字体库不够,我基本上把电脑上的字体库都给拷贝过去了;

OpenOffice格式转换中文乱码终极解决方案_openofiice 转换乱码-优快云博客 (这个也是乱码问题的解决方案,都是一样的,就是这里面有windows本地的字体库在C:\Windows\Fonts这下面;)

OpenOffice格式转换中文乱码终极解决方案_铭毅天下-GitCode 开源社区 (也是解决乱码的,这个我没用但是感觉写的挺好的)

Linux安装OpenOffice,解决文乱码 - 简书 (也是解决乱码的,也差不多,命令挺好的,复制挺好用的)

      

      我是把字体放到了/usr/share/fonts/chinese下面了,基本上放了所有的;IP地址为

下载 wget 'https://master.dl.sourceforge.net/project/openofficeorg.mirror/4.1.5/binaries/zh-CN/Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_zh-CN.tar.gz?viasf=1'

修改文件名 mv Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_zh-CN.tar.gz?viasf=1 Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_zh-CN.tar.gz

tar -zxvf   Apache_OpenOffice_4.1.5_Linux_x86-64_install-rpm_zh-CN.tar.gz

cd  zh-CN

cd RPMS
rpm -ivh  *.rpm
cd desktop-integration
rpm -ivh  openoffice4.1.5-redhat-menus-4.1.5-9789.noarch.rpm
安装完毕

# 把127.0.0.1 换成服务器的IP地址

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard &

opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard 临时启动

nohup /opt/openoffice4/program/soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard & 后台启动

关闭服务,  杀掉进程就可以了
ps -ef | grep soffice  查出进程

kill -9  端口号

调用异常

/opt/openoffice4/program/soffice.bin: error while loading shared libraries: libXext.so.6: cannot open shared object file: No such file or directory

yum install -y libXext.x86_64
yum groupinstall "X Window System"

字体乱码

cd /usr/share/fonts

创建一个中文文件夹,并进入

mkdir chinese

cd chinese

6.复制windos字体到linux:通过PuTTY,上传到chinese里面 (在windows上操作)

pscp C:\Windows\Fonts\*.ttf root@43.143.167.3:/usr/share/fonts/chinese/

pscp C:\Windows\Fonts\*.ttc root@43.143.167.3:/usr/share/fonts/chinese/
 

给字体赋予权限并进行一下操作:

chmod 755 *.TTF

chmod 755 *.TTC

chmod 755 *.ttf
chmod 755 *.ttc

mkfontscale(如果提示 mkfontscale: command not found,需自行安装 # yum install mkfontscale)

mkfontdir

fc-cache -fv(如果提示 fc-cache: command not found,则需要安装# yum install fontconfig )

ps -ef | grep soffice  查出进程

kill -9  端口号

/opt/openoffice4/program/soffice -headless -accept="socket,host=43.143.167.3,port=8100;urp;" -nofirststartwizard &

卸载

rpm -e `rpm -qa |grep openoffice` `rpm -qa |grep ooobasis`

3、服务器使用时修改代码

       调用过程中,由于服务器的IP地址原因,所以代码需要修改为使用IP地址连接,参考该文章,启动命令时将127.0.0.1改为服务器的ip地址。

openOffice For Linux OpenOfficeConnection Connect 卡死_socketopenofficeconnection-优快云博客

4. 效果展示

本来以为非常完美,但是发现还是有字体没法展示;

大部分的字体都可以正常显示,但是等线,不行,但是不是所有等线都不行,是等线(中文正文),等线(西文正文)无法显示,尝试多种方法,依然乱码。

开始以为是等线不行,后来发现直接选等线是可以的,但是不能是主题字体里的等线(中文正文)

fc-list | grep Deng

是可以查询到等线的;

将该word文档后缀改为zip,解压;查看文件;进入 word/document.xml

        word能识别的部分的中文都有w:ascii 明确的;不能识别的都没有w:ascii,要么什么都没有,要么只有w:asciiTheme,可能跟这个有关系?因为无法知道明确的字体是什么,所以没法识别;有明确字体的能识别;

最终参考这篇文章,找了一下win7的字体库,上传;

openoffice4-jodconverter2-txt纯文本linux环境中文乱码成问号?或方口_jodconverter 中文-优快云博客

试错

  1. 上传本地windows10的中文字体库至linux中,txt中文乱码成问号。
  2. 上报本地windows10的全部字体至linux中,txt中文乱码成方口。
  3. 使用编码将txt转存为uft-8,txt转换的pdf还是中文乱码。

解决方案

使用windows7系统的字体库,乱码问题解决。ps:中间并未进行手动转码操作。
(windows7字体库百度下载一个即可)

win7字体下载:

https://download.youkuaiyun.com/download/liuyanlinglanq/90491034

下载完毕,上传到

pscp C:\Users\Administrator\Downloads\20230801R1GSkKwB\Win7全字库\*.ttf root@43.143.167.3:/usr/share/fonts/chinese/

然后是确实多了很多字体;继续让字体生效,重启openoffice

终于可以了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值