2025-06-30 09:38:03 +08:00

162 lines
5.8 KiB
Java
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

采用`kkFileView`文件文档在线预览解决方案使用主流的`Spring Boot`搭建易上手和部署基本支持主流办公文档的在线预览如doc,docx,xls,xlsx,ppt,pptx,pdf,txt,zip,rar,图片,视频,音频等等
## 环境要求
### 1.1 开发环境
| 类目 | 版本或建议 |
|-------|---------|
| 硬件 | 开发电脑建议使用I3及以上CPU16G及以上内存 |
| 操作系统 | Windows 10/11MacOS |
| JDK | 默认使用JDK 21兼容JDK 8/11JDK17需调整部分代码推荐使用 `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/11JRE17需调整部分代码推荐使用 `OpenJDK` `Liberica JDK``Eclipse Temurin``Alibaba Dragonwell``BiSheng`等发行版 |
| Redis | 数据缓存推荐使用 `5.0` 及以上版本 |
## Maven私服配置
> Apache Maven 3.6.3及以上版本<br>解决以下依赖无法从公共Maven仓库下载的问题
打开Maven安装目录中的 `conf/settings.xml` 文件<br>
`<servers></servers>` 中添加如下内容
```xml
<server>
<id>maven-releases</id>
<username>jnpf-user</username>
<password>HLrQ0MA%S1nE</password>
</server>
```
`<mirrors></mirrors>` 中添加
```xml
<mirror>
<id>maven-releases</id>
<mirrorOf>*</mirrorOf>
<name>maven-releases</name>
<url>https://repository.jnpfsoft.com/repository/maven-public/</url>
</mirror>
```
## 关联项目
> 需要使用下表中的对应分支
| 项目 | 分支 | 说明 |
| ------------------------ | ------------- | ---------------------- |
| **后端**(任一后端服务) | | |
| 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))
```
2http/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服务器已安装 mkfontscalefontconfig如未安装运行以下命令
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`)