文档在线预览:keking/kkFileView踩坑记

news2024/9/21 4:29:03

文章目录

  • 一、概述
    • 1、官方文档
    • 2、使用
  • 二、部署服务
    • 1、传统部署方式
      • (1)环境要求
      • (2)生成部署包
    • 2、docker部署方式
  • 三、踩坑
    • 1、预览并发问题&预览首次打开慢
    • 2、字体问题乱码
    • 3、水印问题
    • 4、使用nginx代理
    • 5、docker部署指定配置

一、概述

1、官方文档

gitee源码:https://gitee.com/kekingcn/file-online-preview#5-pdf%E6%96%87%E6%A1%A3%E9%A2%84%E8%A7%88
官方文档:https://kkview.cn/zh-cn/index.html

2、使用

当您的项目内需要预览文件时,只需要调用浏览器打开本项目的预览接口,并传入须要预览文件的url,示例如下:

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script>

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(url)));

二、部署服务

1、传统部署方式

(1)环境要求

Java: 1.8+
LibreOffice或OpenOffice(Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装)

(2)生成部署包

可以从官网下,但是需要加入知识星球(付费)。
也可以下载源码自己进行构建:
在这里插入图片描述
在这里插入图片描述
解压kkFileView-x.x.x文件(Windows用.zip包,Linux/MacOS用.tar.gz包)
打开解压后文件夹的bin目录,运行startup脚本(Windows下以管理员身份运行startup.bat,Linux以root用户运行startup.sh)
浏览器访问本机8012端口 http://127.0.0.1:8012 即可看到项目演示用首页

2、docker部署方式

官网说的是直接可以拉取镜像,但是我一直拉不下来,或许需要自己进行构建。

在这里插入图片描述
把fonts和Dockerfile都拷贝到docker服务器,然后运行dockerbuild.txt中的命令即可构建基础镜像。

后续打出jar包进行构建即可。

三、踩坑

1、预览并发问题&预览首次打开慢

可使用预览转码队列,将需要预览的文件url放入队列中,提前进行转码,本地访问接口为:http://127.0.0.1:8012/addTask?url=http://xxx/test.txt (url参数为需要需要的文件访问地址,GET请求)

2、字体问题乱码

大部分Linux系统上并没有预装中文字体或字体不全,需要把常用字体拷贝到Linux服务器上,具体操作如下: 下载如下字体包 https://kkview.cn/resource/fonts.zip 文件解压完整拷贝到Linux下的 /usr/share/fonts目录。然后依次执行mkfontscale 、mkfontdir 、fc-cache使字体生效

3、水印问题

在预览url后面加上参数&watermarkTxt即可
例如:

var url = 'http://127.0.0.1:8080/file/test.txt'; //要预览文件的访问地址
window.open('http://127.0.0.1:8012/onlinePreview?url=' + encodeURIComponent(Base64.encode(url)) + '&watermarkTxt=' + encodeURIComponent('动态水印'));

4、使用nginx代理

例如nginx的访问地址为 https://file.keking.cn 想要使用 https://file.keking.cn/preview/来做预览,kkFileView部署在内网192.168.1.233服务器上,需要在nginx中添加反向代理如下:

location /preview {
    proxy_pass http://192.168.1.233:8012/;
}

修改kkFileView的配置文件如下两项

server.servlet.context-path = /preview
base.url = https://file.keking.cn/preview

使用如下地址来访问预览页面

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script>

var url = 'https://file.keking.cn/file/test.txt'; //要预览文件的访问地址
window.open('https://file.keking.cn/preview/onlinePreview?url='+encodeURIComponent(Base64.encode(url)));

5、docker部署指定配置

针对docker运行的用户,所有配置项可以使用设置相应的环境变量来配置
环境变量的KEY为配置文件中每个配置项后${}中的KEY
例如,使用docker运行要指定base.url为http://file.keking.cn,docker运行命令如下

docker run -it -d -p 8012:8012 -e KK_BASE_URL="http://file.keking.cn" keking/kkfileview:v2.2.1

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

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

相关文章

stm32 RAM for Algorithm问题,已解决

在此界面将 programming Algorithm内的flash remove&#xff0c;然后再重选就能解决

Drools

Drools基本了解 谈谈对业务规则管理系统的了解 举例说明 规则引擎系统是一个规则管理系统&#xff0c;接受数据输入、解释业务规则、根据业务规则做出业务决策的一个系统&#xff0c;其适用场景有贷款风险评估、积分优惠系统、保险理赔系统。规则是由“条件动作”组成&#x…

雅萌五代射频仪拆机图

雅萌五代射频仪拆机图&#xff0c;相对之前的版本&#xff0c;这个射频仪的头部电极部分&#xff0c;进行结构的优化&#xff0c;整个面比较平整光滑&#xff0c;不容易残留凝胶

allegro学习之一

1&#xff09;favorite设置界面 2&#xff09;双单位显示界面设置 3&#xff09;高亮实心显示 4&#xff09;自己设置的favorite 5&#xff09;导线圆滑显示 6&#xff09;plane的使用场景 7&#xff09;add to visibility的方法 8&#xff09;net group的使用 效果图如下&am…

实施运维方案(Word原件)

编写目的&#xff1a; 作为项目运维服务质量管理的总纲&#xff0c;规范和指导公司运维服务质量管理&#xff0c;加强运维服务质量管理的有效性。保证运维服务的整体质量&#xff0c;提升公司运维服务的整体质量水平。使公司能够为客户提供更高质量的运维服务&#xff0c;保障公…

【优选赛事】2024年iCAN大赛AI视觉检测设计挑战赛

iCAN大学生创新创业大赛(以下简称“iCAN大赛”")是一个无固定限制、鼓励原始创新的赛事&#xff0c;自2007年发起至今&#xff0c;得到了广大青年学生的热爱。2010年&#xff0c;iCAN大赛获批《教育部、财政部关于批准2010年度大学生竞赛资助项目的通知》大学生竞赛资助项…

Windows上安装EMQX作为MQTT服务器以及配置MQTTX客户端

一、安装EMQX MQTT服务器 EMQX 是一个高性能、可扩展的物联网消息中间件&#xff0c;EMQX 实现了 MQTT 协议的服务器端&#xff0c;即 MQTT Broker&#xff0c;它负责接收来自客户端的连接请求&#xff0c;处理订阅、发布消息&#xff0c;并将消息转发给相应的订阅者。 下载E…

大模型训练流程解析

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl训练大模型是一个复杂且资源密集的过程,它不仅仅要求大量的计算资源和时间,还涉及多个关键步骤和要素。这个过程需要从数据的收集、清洗、整理到模型的设计与选择,再到模型的训练、评估与优化,…

Netty4自学笔记 (3) - Netty NIO Server和Client 样例说明

全文详见个人独立博客&#xff1a;Netty4自学笔记 (3) - Netty NIO Server和Client 样例说明 Netty4自学笔记 (3) - Netty NIO Server和Client 样例说明更新节奏缓慢&#xff0c;因为每晚学习注意力不够集中&#xff0c;学习进展缓慢。本还给自己找了一大堆其他理由&#xff0…

tof系统标定流程之双频测距与代码详解

tof系统标定流程之双频测距目录 1、双频测距原理2、双频测距流程3、双频测距代码1、双频测距原理 为什么需要双频测距,只用一个频率测距不行吗?实际上一个频率的测距范围有限,以100MHZ/80MHZ/10MHZ/15MHZ的频率为例,其测距范围分别是1.5m,1.875m,15m,10m,频率越低测距范围…

TypeError: ‘dict’ object is not callable 深度解析

TypeError: ‘dict’ object is not callable 深度解析 在Python编程中&#xff0c;TypeError: dict object is not callable是一个常见的错误&#xff0c;通常发生在尝试调用一个字典对象时。这个错误表明代码中存在逻辑错误&#xff0c;可能是将字典误用为函数或方法。本文将…

C++第六篇 模板初阶和STL简介

目录 一&#xff0c;模板初阶 1.泛型编程 2.函数模板 2.1 函数模板概念 2.2 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3.类模板(模板类&#xff0c;模板函数) 3.1 类模板定义格式 二&#xff0c;STL简介 1. 什么是STL 2. ST…

[环境配置]Pycharm:Failed to start [PowerShell.exe]

解决方法&#xff0c;点Local旁边的 号&#xff0c;点击Command Prompt&#xff0c;即可在Pycharm中呼出控制台。 如果要修改Command Prompt的启动时访问的cmd.exe的路径&#xff0c;可以去Settings→Tools→Terminal中&#xff0c;修改Shell Path实现&#xff0c;改为cmd.exe…

「AI绘画Stable Diffusion 零基础入门 」AI 绘画SD原理与工具介绍,万字详解新手入门必看!

大家好&#xff0c;我是设计师阿威 AI 绘画原理 想要入门 AI 绘画&#xff0c;首先需要了解它的原理是什么样的。 其实很早就已经有人基于深度学习模型展开了对图像生成的研究了&#xff0c;但在那时&#xff0c;生成的图像分辨率和内容都非常抽象。 直到近两年&#xff0c…

CentOS 8挂载本地源

CentOS 8挂载本地源 1.虚拟机连接centos镜像2.系统查看centos镜像是否在连接上3. 挂载ISO镜像4.配置YUM源1. 备份现有YUM源配置2. 创建新的YUM源配置文件3. 清理YUM缓存并重新生成 5.验证YUM源 1.虚拟机连接centos镜像 2.系统查看centos镜像是否在连接上 [rootlocalhost ~]# l…

【wiki知识库】07.用户管理后端SpringBoot部分

目录 一、今日目标 二、&#x1f388;SpringBoot部分类的添加 2.1 使用逆向工程新增User模块 2.2 UserQueryParam添加 2.3 UserSaveParam添加 2.4 UserResetPasswordParam添加 2.5 UserQueryVo添加 2.6 SnowFlake工具类 三、&#x1f686;后端新增接口 3.1 /user/li…

【应用层】远程登入管理设备 Telnet

文章目录 Telnet 概述Telnet 认证模式用户等级eNSP 搭建拓扑验证password认证方式登入&#xff08;不支持空密码登入&#xff09;AAA认证方式登入 eNSP连接真机环境配置telnetTelnet 配置命令汇总 Telnet 概述 Telnet是一种基于文本的网络协议&#xff0c;它允许用户通过虚拟终…

PHP开发【石头剪刀布小游戏】

石头剪刀布小游戏 玩法超级简单&#xff0c;你只需要在下面选择石头、剪刀或者布&#xff0c;然后提交&#xff0c;系统就会随机生成电脑的选择&#xff0c;告诉你最终的结果哦&#xff01; 游戏规则&#xff1a; 如果你的选择和电脑一样&#xff0c;那么就是平局。如果你赢…

十一、外观模式

文章目录 1 基本介绍2 案例2.1 Person 类2.2 Computer 类2.3 Player 类2.4 TV 类2.5 StudyManager 类2.6 Client 类2.7 Client 类运行结果2.8 总结 3 各角色之间的关系3.1 角色3.1.1 SubSystem ( 子系统 )3.1.2 Facade ( 窗口 )3.1.3 Client ( 客户端 ) 3.2 类图 4 注意事项5 在…

PointNet点云语义分割

在本教程中&#xff0c;我们将学习如何在斯坦福 3D 室内场景数据集 (S3DIS) 上训练 Point Net 进行语义分割。S3DIS 是一个 3D 数据集&#xff0c;包含来自多栋建筑的室内空间点云&#xff0c;占地面积超过 6000 平方米 [1]。Point Net 是一种新颖的架构&#xff0c;它使用整个…