Linux环境_源码安装Unoconv实现文件在线预览doc,doxc,xls,xlsx,ppt,pptx 文件

因业务需求需要,用unoconv就可以轻松地实现利用LibOffice可以打开的文档的转换。

服务器版本

环境系统版本
LinuxRed Hat Enterprise Linux Server release 7.6 (Maipo)
LinuxCentOS Linux release 7.6

需要准备软件包

软件及版本下载链接
LibreOffice_6.3.2_Linux_x86-64_rpm.tar.gzhttps://www.libreoffice.org/donate/dl/rpm-x86_64/6.3.4/zh-CN/LibreOffice_6.3.4_Linux_x86-64_rpm.tar.gz
unoconv-master.ziphttps://github.com/unoconv/unoconv/archive/master.zip

在这里插入图片描述

文章目录

      • 服务器版本
      • 需要准备软件包
      • 一、安装libreoffice
        • ① 下载libreoffice
        • ② 解压
        • ③ 进入到解压后RPM目录
        • ④ 安装所有rpm包
        • ⑤ 启动 libreoffice
      • 二、安装 unovocn
        • ①下载
        • ②解压
        • ③安装unovocn
        • ④ 测试
        • ⑤ 异常报错
        • ⑥ 解决方案
      • 四、生成PDF乱码问题
        • ① 准备字体
        • ② linux操作

一、安装libreoffice

① 下载libreoffice

http://www.libreoffice.org/download/
点击 download 后稍等一会 会自动下载

wget https://www.libreoffice.org/donate/dl/rpm-x86_64/6.3.4/zh-CN/LibreOffice_6.3.4_Linux_x86-64_rpm.tar.gz

在这里插入图片描述

② 解压

tar -zxvf LibreOffice_6.3.2_Linux_x86-64_rpm.tar.gz

③ 进入到解压后RPM目录

cd LibreOffice_6.3.2.2_Linux_x86-64_rpm/RPMS

④ 安装所有rpm包

yum install *.rpm

⑤ 启动 libreoffice

/opt/libreoffice6.3/program/soffice --headless --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard &

二、安装 unovocn

①下载

git地址 :https://github.com/dagwieers/unoconv
依然使用 wget 下载

wget https://github.com/dagwieers/unoconv/archive/master.zip

②解压

unzip unoconv-master.zip

③安装unovocn

make install

④ 测试

进入解压后的 unoconv-master 目录 运行 unoconv -f pdf CHANGELOG.md 来测试。

⑤ 异常报错

/usr/lib64/libreoffice/program/soffice.bin X11 error: Can’t open display:
Set DISPLAY environment variable, use -display option
or check permissions of your X-Server
(See “man X” resp. “man xhost” for details)

⑥ 解决方案

网上查了一下 需要安装一些别的软件就可以 yum install libreoffice-headless 用这个命令安装好这些依赖即可

再运行 unoconv -f pdf CHANGELOG.md 即可看到同目录已经生成了 相应的pdf文件

四、生成PDF乱码问题

① 准备字体

将Windows下的Fonts,如:C:\Windows\Fonts,压缩成Fonts.zip压缩包
在这里插入图片描述

② linux操作

将压缩包拷贝到Linux目录下,执行如下命令即可:

unzip Fonts.zip
mkdir /usr/share/fonts/win
cp Fonts/* /usr/share/fonts/win
cd /usr/share/fonts/win
chmod  -Rf 755 *
mkfontscale  
mkfontdir  
fc-cache –fv 

重启服务器即可。

reboot

再次测试,一切正常!!!

下一篇:(企业内部)SpringBoot 在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件
https://gblfy.blog.csdn.net/article/details/102847228

yum安装Unoconv
unoconv 在线预览 doc,doxc,xls,xlsx,ppt,pptx 文件功能环境搭建
https://gblfy.blog.csdn.net/article/details/102847276

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/522268.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

车纷享:基于阿里云HBase构建车联网平台实践

摘要: 1. 业务介绍 车纷享是国内首家进行汽车共享开发和运营的公司。旗下共享汽车平台采用新能源汽车作为运营工具以B2CC2C汽车共享作为商业运营模式采用车联网技术作为运营管理技术目前已与国内多个城市建立合作。 1. 业务介绍 车纷享是国内首家进行汽车共享开发和…

promise用法_图解 Promise 实现原理(四):Promise 静态方法实现

作者:Morrain转发链接:https://mp.weixin.qq.com/s/Lp_5BXdpm7G29Z7zT_S-bQ前言Promise 是异步编程的一种解决方案,它由社区最早提出和实现,ES6 将其写进了语言标准,统一了用法,原生提供了Promise对象。更多…

这本零差评且有趣的Python算法书有点火~

普通程序员,不学算法,也可以成为大神吗?对不起,这个,绝对不可以。可是算法好难啊~~看两页书就想睡觉……所以就不学了吗?就一直当普通程序员吗?如果有一本算法书,看着很轻松……又有…

QuickBI助你成为分析师——数据源FAQ小结

摘要: 添加数据源的时候经常会遇到各种问题,下面来讲解一下常见情况,若仍有疑问扫码咨询哦! 使用 Quick BI 分析数据时,需要先指定原始数据所在的数据源,测试连通数据源是数据分析的基础,下面让…

库函数strcmp的模拟实现

strcmp是字符串之间的比较&#xff0c;看官方说明 前面字符串大于后面的字符串返回大于0的数字&#xff0c;相等返回0&#xff0c;前面的字符串小于后面的&#xff0c;返回小于0的数字 strcmp的模拟实现 #include<string.h> #include<stdio.h>int my_strcmp(cons…

5种最流行的AI编程语言

摘要&#xff1a; 有没有兴趣来了解更多与AI开发有关的内容&#xff1f; 本文将介绍创建AI程序时可以使用的5种最佳语言。有没有兴趣来了解更多与AI开发有关的内容&#xff1f; 本文将介绍创建AI程序时可以使用的5种最佳语言。PythonPython语法简单&#xff0c;功能多样&#x…

VSFTPD实战02_需求

文章目录一、常用命令&#xff08;Linux&#xff09;二、 需求案例三、思路分析四、coding实战&#xff1a;① 创建ftp用户test 指定目录为/home/test② 为test设置密码③ 切换用户&#xff0c;查看目录五、限制用户目录① 编辑配置文件② 在/etc/vsftpd/目录下面&#xff0c;新…

axure web组件_AXURE原型设计:移动端选择器的应用

移动端的选择器就好比是web端的下拉列表&#xff0c;可以说是每个系统、软件必备的组件&#xff0c;也是移动端元件库的必备元件&#xff0c;文章对移动端选择器的不同种类以及原型应用进行了梳理分析&#xff0c;与大家分享。一般而言&#xff0c;移动端的选择器分为单选选择器…

Storm精华问答 | storm与Hadoop有什么区别?

戳蓝字“CSDN云计算”关注我们哦&#xff01;归于Apache社区&#xff0c;Storm被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍。而目前已是分布式技术领域最新爆发点&#xff0c;Storm更是流计算技术中的佼佼者和主流。今天我们就一起来看看Sto…

库函数strstr的实现

strstr是字符串的查找&#xff0c;就是找一个字符串中是否含有另一个字符串的函数&#xff0c;如果存在子字符串&#xff0c;返回的是第一个字符串的起始位置&#xff0c;看一下模拟实现 #include<stdio.h> #include<string.h>char* my_strstr(const char* str1,c…

QuickBI助你成为分析师——搞定数据源

摘要&#xff1a; QuickBI支持多种数据源连接&#xff0c;添加数据源是数据分析展示的第一步&#xff0c;下面来详细介绍一下产品数据源支持情况&#xff01; Quick BI是一个基于云计算的灵活的轻量级的自助BI工具服务平台&#xff0c;提供海量数据即时分析 &#xff0c;拖拽式…

视图实战篇_01

文章目录作用一作用二作用三作用四&#xff1a;表名称说明字段说明user用户表有id&#xff0c;name&#xff0c;age&#xff0c;sex字段goods商品表有id&#xff0c;name&#xff0c;price字段ug用户表和商品表的中间表有id&#xff0c;userid&#xff0c;goodsid字段 作用一 …

AI研究公司面试准备指南

摘要&#xff1a; 本篇内容主要是汇集了一些如何应付人工智能公司面试所需要的一些资源&#xff0c;主要内容是博客、教材和课程等。年已过尽&#xff0c;春招和实习已经在路上。相信大家对于去年秋招岗位的薪资多少有些了解&#xff0c;比较热门的一些岗位大多与人工智能相关&…

光动能表怎么维护_男士手表什么牌子好,男士手表品牌推荐, 天梭、阿玛尼、西铁城、天王表、罗西尼、卡西欧男手表推荐...

本文目录一、男士手表分类和选购看点&#xff0c;男士手表什么牌子好二、天梭、阿玛尼、欧米茄、天王表、罗西尼、卡西欧等大品牌爆款男士机械手表推荐三、天梭、阿玛尼、卡西欧爆款男士石英手表推荐四、西铁城光动能男士手表推荐五、华为、佳明智能运动手表推荐本文由钟灵原创…

“刚毕业1年,做Python挣了60W!”网友:吹的不多..

现状揭秘&#xff1a;Python岗位大厂50K起&#xff1f;程序员&#xff1a;心态崩了&#xff01;屠杀各种榜单&#xff0c;拿下语言排行榜的Python&#xff0c;薪酬真的如同网传开挂了吗&#xff1f;数据来自于职友集网站2019年7月8号从上图看&#xff0c;Python薪酬普遍集中在2…

区块链如何改变AI

摘要&#xff1a; 区块链和人工智能&#xff0c;这两种常常被误解的技术&#xff0c;它们怎样增强数据处理能力&#xff1f;本文将对其进行详细介绍。区块链被吹捧为一种新兴技术&#xff0c;它有可能对每个行业造成影响。区块链的分布式系统与当今使用的固有集中式操作系统相对…

库函数memcpy的使用

库函数memcpy是内存函数的拷贝&#xff0c;memcpy的函数参数如下 把源头的指针的值拷贝到目标指针的值中&#xff0c;拷贝是按字节拷贝的&#xff0c;使用方法如下 #include<stdio.h> #include<string.h> int main(){int arr1[]{1,2,3,4,5,6,7,8,9,10};int arr2[1…

大家常用的 IDEA 插件大推荐,个个都得安装!

代码生成 插件名称作用Easy Code代码生成&#xff0c;支持定制模板Codota智能提示.ignore生成各种ignore文件&#xff0c;一键创建git ignore文件的模板&#xff0c;免得自己去写lombok简化代码工具restfultoolkit精确搜索urlMaven Helper解决maven以来冲突GenerateAllSetter一…

全新一代人工智能计算引擎MaxCompute杭州开服,强化阿里云大数据能力,比肩谷歌微软...

摘要&#xff1a; 3月22日&#xff0c;阿里云将正式开服售卖华东1&#xff08;杭州&#xff09;节点的大数据计算服务MaxCompute&#xff0c;以进一步提升对华东区域客户服务的响应速度&#xff0c;推动杭州大数据、人工智能产业的加速发展。 日前&#xff0c;全球权威调研机构…

datagrid如何获取一行数据中的某个字段值_SQL中常见的面试题

大家在面试数据分析岗或其他岗位的时候&#xff0c;时常会被问到一些SQL题&#xff0c;我今天就将常被问到的一些SQL题及答案整理下&#xff0c;给大家做个参考&#xff01;案例所使用的表为&#xff1a;&#xff08;一&#xff09;各种连接函数的区别&#xff1f;&#xff08;…