采用`kkFileView`文件文档在线预览解决方案,使用主流的`Spring Boot`搭建,易上手和部署,基本支持主流办公文档的在线预览,如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等 ## 一 环境要求 ### 1.1 开发环境 | 类目 | 版本或建议 | |-------|---------| | 硬件 | 开发电脑建议使用I3及以上CPU,16G及以上内存 | | 操作系统 | Windows 10/11,MacOS | | JDK | 默认使用JDK 21,兼容JDK 8/11、JDK17(需调整部分代码),推荐使用 `OpenJDK`,如 `Liberica JDK`、`Eclipse Temurin`、`Alibaba Dragonwell`、`BiSheng`等发行版; | | Maven | 依赖管理工具,推荐使用 `3.6.3` 及以上版本 | | IDE | 代码集成开发环境,推荐使用 `IDEA2024` 及以上版本,兼容 `Eclipse`、 `Spring Tool Suite` 等IDE工具 | ### 1.2 运行环境 > 适用于测试或生产环境 | 类目 | 版本说明或建议 | | --- |--------------| | 服务器配置 | 建议至少在 4C/16G/50G 的机器配置下运行; | | 操作系统 | 建议使用 `Windows Server 2019` 及以上版本或主流 `Linux` 发行版本,推荐使用 `Linux` 环境;兼容 `统信UOS`,`OpenEuler`,`麒麟服务器版` 等信创环境; | | JRE | 默认使用JRE 21,兼容JRE 8/11、JRE17(需调整部分代码);推荐使用 `OpenJDK`,如 `Liberica JDK`、`Eclipse Temurin`、`Alibaba Dragonwell`、`BiSheng`等发行版; | | Redis | 数据缓存,推荐使用 `5.0` 及以上版本 | ## 二 Maven私服配置 > Apache Maven 3.6.3及以上版本
解决以下依赖无法从公共Maven仓库下载的问题 打开Maven安装目录中的 `conf/settings.xml` 文件,
在 `` 中添加如下内容 ```xml maven-releases jnpf-user HLrQ0MA%S1nE ``` 在 `` 中添加 ```xml maven-releases * maven-releases https://repository.jnpfsoft.com/repository/maven-public/ ``` ## 三 关联项目 > 需要使用下表中的对应分支 | 项目 | 分支 | 说明 | | ------------------------ | ------------- | ---------------------- | | **后端**(任一后端服务) | | | | jnpf-java-boot | v5.2.x-stable | Java单体后端项目源码 | | jnpf-java-cloud | v5.2.x-stable | Java微服务后端项目源码 | | jnpf-dotnet | v5.2.x-stable | .NET单体后端项目源码 | | jnpf-dotnet-cloud | v5.2.x-stable | .NET微服务后端项目源码 | ## 四 部署指南 ### 4.1 环境要求 `LiberOffice` (Windows下已内置,CentOS或Ubuntu下会自动下载安装,MacOS下需要自行安装) ### 4.2 部署运行 #### 4.2.1 开发环境 - a.IDEA导入项目 - b.调整配置,打开 `server/src/main/config/application.properties` - 运行端口:30090(默认),位于配置文件第 1 行 - Redis配置,位于配置文件第 45-49 行 - 预览服务地址,本地开发环境需要把地址修改为 `http://localhost:30090` - c.启动项目,`server/src/main/java/cn/keking/ServerMain` - d.打开`http://localhost:30090`测试页面 #### 4.2.2 测试生产环境 - a.打包,打开 `/server/target` 主要有以下几个文件 - kkFileView-xxx.jar(一般用于更新) - kkFileView-xxx.zip(windows环境下首次部署) - kkFileView-xxx.tar.gz(Linux环境下首次部署) - b.上传至服务器 - 解压上传的文件 - 调整配置,打开 `config/application.properties`,配置参考上述开发环境内容 - 进入 `bin` 目录,运行startup脚本(首次部署,之后更新及维护都在bin目录下) - c.Nginx配置说明 例如访问地址为 `https://java.jnpfsoft.com` ,文件预览部署在内网 `192.168.0.18` 服务器上,需要在 `Nginx` 中添加反向代理如下 ```text # 文件预览服务 location /FileServer { proxy_pass 192.168.0.18:30090; } # 解决文件预览服务无法加载js,css问题 location ~ /FileServer/*.*\.(js|css)?$ { proxy_pass 192.168.0.18:30090; } ``` 修改文件预览配置文件如下两项,打开服务器上的 `kkFileView-xxx/configapplication.properties` ```text server.servlet.context-path= ${KK_CONTEXT_PATH:/FileServer} base.url =https://java.jnpfsoft.com/FileServer ``` ## 五 使用指南 1、单文件预览 ```aidl // 要预览文件的访问地址 let previewUrl = 'http://127.0.0.1:8080/file/test.txt' // 使用 http://127.0.0.1:30090/onlinePreview?url='+encodeURIComponent(Base64.encode(previewUrl)) ``` 2、http/https下载流url预览 ```aidl // 要预览文件的访问地址 let previewUrl = 'http://127.0.0.1:8080/filedownload?fileId=1' // 使用 http://127.0.0.1:30090/onlinePreview?url='+encodeURIComponent(Base64.encode(previewUrl)) ``` 3、更多参考官方文档(`https://kkfileview.keking.cn/zh-cn/docs/usage.html`) ## 六 常见问题 1、预览乱码(字体问题) 大部分Linux系统上并没有预装中文字体或字体不全,需要把常用字体拷贝到Linux服务器上,具体操作如下: 下载如下字体包 `http://kkfileview.keking.cn/fonts.zip` 文件解压完整拷贝到Linux下的 `/usr/share/fonts` 目录。然后依次执行`mkfontscale`、`mkfontdir`、`fc-cache`使字体生效 > 特别说明:安装字体前确保Linux服务器已安装 mkfontscale、fontconfig,如未安装运行以下命令 CentOS运行如下命令 ```bash yum install mkfontscale fontconfig -y ``` Ubuntu运行如下命令 ```bash sudo apt-get install ttf-mscorefonts-installer fontconfig -y ``` 2、更多问题请参考官方文档说明(`https://kkfileview.keking.cn/zh-cn/docs/faq.html`)