预览pdf文件流(网页直接打开pdf文件)

你知道的越多,不知道的就越多,业余的像一棵小草!

你来,我们一起精进!你不来,我和你的竞争对手一起精进!

blog.csdn.net/jxlhljh

推荐:https://www.xttblog.com/?p=5347文件文档在线预览开源项目kkFileView的使用项目特性部署过程二进制下载部署文件进行部署docker方式部署通过源代码编绎部署部分配置说明server.context-path预览乱码字体问题预览展示附件其他说明使用openoffice进行转换libXext.so.6: cannot open shared object file: No such file or directory

kkFileView为文件文档在线预览解决方案,该项目使用流行的spring boot搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等,官网:https://kkfileview.keking.cn/zh-cn/index.html

1.项目特性支持word excel ppt,pdf等办公文档支持txt,java,php,py,md,js,css等所有纯文本支持zip,rar,jar,tar,gzip等压缩包支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像)支持mp3,mp4,flv等多媒体文件预览使用spring boot开发,预览服务搭建部署非常简便rest接口提供服务,跨平台特性(java,php,python,go,php,….)都支持,应用接入简单方便支持普通http/https文件下载url、http/https文件下载流url、ftp下载url等多种预览源提供zip,tar.gz发行包,提供一键启动脚本和丰富的配置项,方便部署使用提供Docker镜像发行包,方便在容器环境部署抽象预览服务接口,方便二次开发,非常方便添加其他类型文件预览支持最最重要Apache协议开源,代码pull下来想干嘛就干嘛2.部署过程??

部署方式,可以直接下载二进制步骤,也可以通过docker直接拉取,还可以通过源码编绎进行,下面分别说明

??

前提条件:Jdk需要先安装设置好,kkFileWiew是Java开发的,Jdk必需.

tar-xvfjdk-8u191-linux-x64.tar.gz-C/usr/localcat>>/etc/profile<<EOFexportJAVA_HOME=/usr/local/jdk1.8.0_191/exportPATH=\$JAVA_HOME/bin:\$PATHexportCLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jarEOFsource/etc/profile[root@localhosttestuser]#java-versionjavaversion”1.8.0_191″Java(TM)SERuntimeEnvironment(build1.8.0_191-b12)JavaHotSpot(TM)64-BitServerVM(build25.191-b12,mixedmode)2.1 二进制下载部署文件进行部署##从码云发行版本https://gitee.com/kekingcn/file-online-preview/releases下载最新版发行包,这里只以linux为例,一般服务器都是linux的,如果用windows也可,看官网说明进行。

预览pdf文件流(网页直接打开pdf文件)二进制下载部署文件进行部署##解压kkFileView-x.x.x文件(Windows用.zip包,Linux/MacOS用.tar.gz包),如:tarxvfkkFileView-4.0.0.tar.gz-C/opt/##运行startup脚本(Windows下以管理员身份运行startup.bat,Linux以root用户运行startup.sh)cd/opt/kkFileView-4.0.0/bin

注:linux下kkFileWiew需要LibreOffice的支持,因此startup.sh会判断系统是否已安装LibreOffice,如果没有安装,将自动下载安装,因此需要有互联网环境的支持,如果是内网的机器,可以考虑在一台有互联网环境下的机器上搭建一个http代理服务器,然后通过export命令设置通过代理下载,如在192.168.56.1上搭建了一个http代理(设置了账号和密码),可以通过如下命令执行,然后再执行startup.sh

exporthttp_proxy=http://admin:admin123@192.168.56.1:1080exporthttps_proxy=http://admin:admin123@192.168.56.1:1080exportno_proxy=’127.0.0.1′

如果你不知道如何搭建http代理,可留言我,后面我写一篇如何搭建htttp代理服务器的文章出来。

运行startup.sh

[root@localhostbin]#./startup.shUsingKKFILEVIEW_BIN_FOLDER/opt/kkFileView-4.0.0/binInstallingOpenOfficeLoadedplugins:fastestmirrorDeterminingfastestmirrors……..略Complete!Loadedplugins:fastestmirrorNosuchcommand:installlocalho.Pleaseuse/usr/bin/yum–helpinstallfinshed…StartingkkFileView…Pleaseexecute./showlog.shtochecklogformoreinformationYoucangethelpinourofficialhomesite:https://kkFileView.keking.cnIfthisprojectishelpfultoyou,pleasestaritonhttps://gitee.com/kekingcn/file-online-preview/stargazers按步骤3的提示执行./showlog.sh查看启动日志,报错,需要解决office.home的问题:

查看启动日志

./startup.sh报错,不是一键部署吗?官网直接说.startup.sh难道有坑?查看startup.sh中,定定了几个目录/opt/libpreoffice*,根据官网说的,4.0版本后依赖libpreoffice,继续看/opt目录下,没看到libpreoffice目录存在,说明libpreoffice未安装成功。

libpreoffice未安装成功

/opt目录下,没看到libpreoffice目录存在,说明libpreoffice未安装成功,如下:

[root@localhostopt]#ls-hl/opt/total0drwxr-xr-x.5rootroot42Aug2013:05kkFileView-4.0.0

继续看,发现没有安装的情况是要执行install.sh的

kkFileView

install.sh如下

kkFileView

看着像是会执行安装的,cd /tmp/LibreOffice_7.1.4.2_Linux_x86-64_rpm/RPMS查看,也确实是下载了很多包

kkFileView??

「手工再执行一次安装看看」cd /tmp/LibreOffice_7.1.4.2_Linux_x86-64_rpm/RPMSyum localinstall *.rpm -y

????

执行成功后再重启.startup.sh,发现能正常启动了。

??[root@localhostRPMS]#cd/opt/kkFileView-4.0.0/bin/[root@localhostbin]#./startup.sh

kkFileView浏览器访问本机8012端口,如:http://192.168.56.101:8012

kkFileView使用

http://192.168.56.101:8012/onlinePreview?url=aHR0cDovLzE5Mi4xNjguNTYuMTAxOjgwMTIvZGVtby9hcHBsaWNhdGlvbi5wcm9wZXJ0aWVz2.2 docker方式部署##拉取镜像dockerpullkeking/kkfileview:v4.0.0##官网拉取dockerpull192.168.56.1:6000/keking/kkfileview:v4.0.0##通过私库拉取(有的话)##运行(第一次)dockerrun-itd-p8012:8012192.168.56.1:6000/keking/kkfileview:v4.0.0##有私库的情况下。或dockerrun-itd-p8012:8012keking/kkfileview:v4.0.0##查看dockerps-adockerexec-it1be9d7d654dc/bin/bash##停止与启动,dockerstop容器iddockerstart容器id2.3 通过源代码编绎部署##下载代码,以4.0.0版本为例gitclonehttps://gitee.com/kekingcn/file-online-preview.git##切换到v4.0.0版本gitcheckout-bv4.0.0origin/v4.0.0##编绎??

mvn clean package -Dmaven.test.skip=true

??##编绎成功后,在file-online-preview\server\target目录下找到对应的二进制文件##再走一遍2.1步骤中的二进制部署方式即可。3.部分配置说明??

通过修改application.properties来修改配置,需要重启程序如:

??3.1 server.context-path??

默认的访问路径为/onlinePreview,通过server.context-path进行修改,

??

更详细的配置参见官网的配置说明https://kkfileview.keking.cn/zh-cn/docs/config.html

4.预览乱码字体问题??

大部分Linux系统上并没有预装中文字体或字体不全,需要把常用字体拷贝到Linux服务器上,具体操作如下:

????

下载如下字体包http://kkfileview.keking.cn/fonts.zip文件解压完整拷贝到Linux下的 /usr/share/fonts目录。然后依次执行mkfontscale 、mkfontdir 、fc-cache使字体生效,可能需要重启kkFileView程序

??unzip-o-d/usr/share/fonts/fonts.zip##解压多了一层,需要移动一下到上一层的fonts下面,然后再删除zhFonts文件夹mv/usr/share/fonts/zhFonts/*/usr/share/fonts/cd/usr/share/fonts/mkfontscalemkfontdirfc-cache

如果报mkfontscale命令不存在执行

yuminstallmkfontscale-y??

解决乱码前:

??

解决乱码前??

解决乱码后:

??

解决乱码后5.预览展示properties

propertiespdf

pdfword

word也是通过转换成pdf再浏览的

word6.附件

附件链接:https://pan.baidu.com/s/1sXYjx1_16I5JFGyxEja_bA 提取码:kixv7.其他说明7.1使用openoffice进行转换

有时发现liboffice并没有传说官网中说的那么稳定与好,可能是我没用好,我自己转换试验是觉得openoffice更稳定,转换大于10M的word也顺利,反而用官网推荐的liboffice转换,常常崩并把office进程给搞没了,所以我这边一般是使用openoffice进行转换。

不需要改什么,就是直接再安装openoffice4就好。

修改application.properties中的配置

#openofficehome路径#office.home=C:\\ProgramFiles(x86)\\OpenOffice4#office.home=${KK_OFFICE_HOME:default}office.home=/opt/openoffice4

然后进行kkfileView的重启,kkfileView启动时发现/opt/openoffice4目录有安装了openoffice4会以openoffice4进行启动。

7.2 libXext.so.6: cannot open shared object file: No such file or directory#/opt/openoffice4/program/soffice.bin:errorwhileloadingsharedlibraries:libXext.so.6:cannotopensharedobjectfile:Nosuchfileordirectory#先执行:yuminstall-ylibXext.x86_64##然后cp-a/usr/lib64/libXext.so.6/opt/openoffice4/program/

发表评论

登录后才能评论