更新 README.md
This commit is contained in:
312
README.md
312
README.md
@@ -1,159 +1,155 @@
|
|||||||
# document-server 文书服务
|
# document-server 文书服务
|
||||||
|
|
||||||
+ api下为调用的接口,在需要处理文书的项目中引用,以`Http Invoker`配置Service后进行调用
|
+ api下为调用的接口,在需要处理文书的项目中引用,以`Http Invoker`配置Service后进行调用
|
||||||
+ 参考[在Spring Boot中使用Http Invoker](https://codeleading.com/article/15413828287/) 的`Client`部分
|
+ 参考[在Spring Boot中使用Http Invoker](https://codeleading.com/article/15413828287/) 的`Client`部分
|
||||||
|
|
||||||
+ [jod-document-server](document-server/jod-document-server)下使用poi-tl处理word文件,使用jacob处理调用[LibreOffice](https://zh-cn.libreoffice.org/)来进行格式转换,`java -jar xxx.jar`启动
|
+ [jod-document-server](document-server/jod-document-server)下使用poi-tl处理word文件,使用jacob处理调用[LibreOffice](https://zh-cn.libreoffice.org/)来进行格式转换,`java -jar xxx.jar`启动
|
||||||
+ 参考:[springboot整合libreoffice(两种方式,使用本地和远程的libreoffice);docker中同时部署应用和libreoffice](https://blog.csdn.net/qq_42882229/article/details/140917550)
|
+ 参考:[springboot整合libreoffice(两种方式,使用本地和远程的libreoffice);docker中同时部署应用和libreoffice](https://blog.csdn.net/qq_42882229/article/details/140917550)
|
||||||
+ 在Linux下,需要注意word文件的字体,必须在Linux中存在
|
+ 在Linux下,需要注意word文件的字体,必须在Linux中存在
|
||||||
+ 若出现格式问题,需先使用LibreOffice打开修复后,在进行转换
|
+ 若出现格式问题,需先使用LibreOffice打开修复后,在进行转换
|
||||||
|
|
||||||
+ [docto-document-server](document-server/docto-document-server)下使用poi-tl处理word文件,使用docto调用`Microsoft Office`来转换格式,`java -jar xxx.jar`启动
|
+ [docto-document-server](document-server/docto-document-server)下使用poi-tl处理word文件,使用docto调用`Microsoft Office`来转换格式,`java -jar xxx.jar`启动
|
||||||
+ 仅能运行在Windows,兼容性最好,比较慢
|
+ 仅能运行在Windows,兼容性最好,比较慢
|
||||||
|
|
||||||
+ [document-fonts](document-fonts)为linux下需要安装的中文字体
|
+ [document-fonts](document-fonts)为linux下需要安装的中文字体
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## linux下使用[jodconverter-document-server](document-server/jodconverter-document-server)
|
## linux下使用[jodconverter-document-server](document-server/jodconverter-document-server)
|
||||||
|
|
||||||
linux下后台运行方法(假设在/root/document-server):
|
linux下后台运行方法(假设在/root/document-server):
|
||||||
|
|
||||||
1. `document-server-2.0.0.jar`所在位置创建`start-server.sh`脚本
|
1. `document-server-2.0.0.jar`所在位置创建`start-server.sh`脚本
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
# 设置终端标题
|
# 设置终端标题
|
||||||
echo -ne "\033]0;文书转换服务\007"
|
echo -ne "\033]0;文书转换服务\007"
|
||||||
# 自动获取脚本所在绝对目录(兼容软链接)
|
# 自动获取脚本所在绝对目录(兼容软链接)
|
||||||
SCRIPT_DIR=$(cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" &>/dev/null && pwd)
|
SCRIPT_DIR=$(cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" &>/dev/null && pwd)
|
||||||
# 进入脚本目录并启动服务
|
# 进入脚本目录并启动服务
|
||||||
cd "$SCRIPT_DIR" || exit 1
|
cd "$SCRIPT_DIR" || exit 1
|
||||||
exec java -jar ./document-server-2.0.0.jar --spring.config.location=./application.yml
|
exec java -jar ./document-server-2.0.0.jar --spring.config.location=./application.yml
|
||||||
```
|
```
|
||||||
|
|
||||||
2.创建`document-server.service`
|
2.创建`document-server.service`
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
sudo vim /etc/systemd/system/document-server.service
|
sudo vim /etc/systemd/system/document-server.service
|
||||||
```
|
```
|
||||||
|
|
||||||
`document-server.service`内容
|
`document-server.service`内容
|
||||||
|
|
||||||
```ini
|
```ini
|
||||||
[Unit]
|
[Unit]
|
||||||
Description=Document Server Service
|
Description=Document Server Service
|
||||||
After=network.target
|
After=network.target
|
||||||
|
|
||||||
[Service]
|
[Service]
|
||||||
Type=simple
|
Type=simple
|
||||||
User=root
|
User=root
|
||||||
ExecStart=/root/document-server/start-server.sh
|
ExecStart=/root/document-server/start-server.sh
|
||||||
StandardOutput=file:/root/document-server/document-server.log
|
StandardOutput=file:/root/document-server/document-server.log
|
||||||
StandardError=inherit
|
StandardError=inherit
|
||||||
Restart=on-failure
|
Restart=on-failure
|
||||||
RestartSec=5s
|
RestartSec=5s
|
||||||
|
|
||||||
[Install]
|
[Install]
|
||||||
WantedBy=multi-user.target
|
WantedBy=multi-user.target
|
||||||
```
|
```
|
||||||
|
|
||||||
3.启动服务并开机自启
|
3.启动服务并开机自启
|
||||||
```shell
|
```shell
|
||||||
sudo systemctl daemon-reload
|
sudo systemctl daemon-reload
|
||||||
sudo systemctl enable document-server
|
sudo systemctl enable document-server
|
||||||
sudo systemctl start document-server
|
sudo systemctl start document-server
|
||||||
```
|
```
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 构建Docker镜像以便于通过Docker容器运行
|
## 构建Docker镜像以便于通过Docker容器运行
|
||||||
|
|
||||||
1.先通过maven打包[jodconverter-document-server](document-server/jodconverter-document-server)
|
1.先通过maven打包[jodconverter-document-server](document-server/jodconverter-document-server)
|
||||||
|
|
||||||
2.执行[build.sh](document-docker/build.sh)
|
2.执行[build.sh](document-docker/build.sh)
|
||||||
|
|
||||||
3.通过`docker load -i document-server-1.0.tar.gz`导入镜像,通过`docker ps | grep document-server`查看镜像版本
|
3.通过`docker load -i document-server-1.0.tar.gz`导入镜像,通过`docker ps | grep document-server`查看镜像版本
|
||||||
|
|
||||||
4.编写`docker-compose.yml`,在其中指定镜像启动
|
4.编写`docker-compose.yml`,在其中指定镜像启动
|
||||||
```yml
|
```yml
|
||||||
version: '3.8'
|
version: '3.8'
|
||||||
services:
|
services:
|
||||||
document-server:
|
document-server:
|
||||||
image: document-server:1.0
|
image: document-server:1.0
|
||||||
container_name: document-server
|
container_name: document-server
|
||||||
environment:
|
environment:
|
||||||
- DISABLE_IPV6=true
|
- DISABLE_IPV6=true
|
||||||
- CUSTOM_PORT=3000
|
- CUSTOM_PORT=3000
|
||||||
- CUSTOM_HTTPS_PORT=3001
|
- CUSTOM_HTTPS_PORT=3001
|
||||||
- DOCUMENT_SERVER_PORT=9004
|
- DOCUMENT_SERVER_PORT=9004
|
||||||
- PORT_NUMBERS=2001,2002,2003
|
- PORT_NUMBERS=2001,2002,2003
|
||||||
- MAX_TASKS_PER_PROCESS=100
|
- MAX_TASKS_PER_PROCESS=100
|
||||||
# 传递环境变量时,$ 是特殊符号,需要 $$ 来表示
|
# 传递环境变量时,$ 是特殊符号,需要 $$ 来表示
|
||||||
# linux 命令中,$ 也是特殊符号,需要在前面增加 \ 表示转义特殊符号
|
# linux 命令中,$ 也是特殊符号,需要在前面增加 \ 表示转义特殊符号
|
||||||
# 如果需要传递 ${ ,则需要写成 \$${ 。其首先被 docker 解析为 \${ ,\${ 作为linux命令的一部分,$转义后,相当于字符串 ${
|
# 如果需要传递 ${ ,则需要写成 \$${ 。其首先被 docker 解析为 \${ ,\${ 作为linux命令的一部分,$转义后,相当于字符串 ${
|
||||||
# 如果不是类似 ${ ,如 {{ ,则无需转义
|
# 如果不是类似 ${ ,如 {{ ,则无需转义
|
||||||
- GRAMER_PREFIX="\$${"
|
- GRAMER_PREFIX="\$${"
|
||||||
- GRAMER_SUFFIX="}"
|
- GRAMER_SUFFIX="}"
|
||||||
- GRAMER_CUSTOMIZE_LIST="%"
|
- GRAMER_CUSTOMIZE_LIST="%"
|
||||||
- GRAMER_CUSTOMIZE_LIST_STRING_DELIMITING=","
|
- GRAMER_CUSTOMIZE_LIST_STRING_DELIMITING=","
|
||||||
ports:
|
ports:
|
||||||
# 用于通过http访问libreoffice
|
# 文书转换服务端口,用于document-api远程调用document-server
|
||||||
- 3000:3000
|
- 9004:9004
|
||||||
# 用于通过https访问libreoffice
|
volumes:
|
||||||
- 3001:3001
|
# libreoffice的配置保存路径
|
||||||
# 文书转换服务端口,用于document-api远程调用document-server
|
- ./config:/config
|
||||||
- 9004:9004
|
# document-server的配置,如不指定,则以默认为准。建议通过环境变量修改关键配置
|
||||||
volumes:
|
- ./application.yml:/app/application.yml
|
||||||
# libreoffice的配置保存路径
|
restart: unless-stopped
|
||||||
- ./config:/config
|
# 如果要使用现有网络而不创建新网络,则取消下面的注释
|
||||||
# document-server的配置,如不指定,则以默认为准。建议通过环境变量修改关键配置
|
# networks:
|
||||||
- ./application.yml:/app/application.yml
|
# # 现有网络的名称
|
||||||
restart: unless-stopped
|
# - exist_network
|
||||||
# 如果要使用现有网络而不创建新网络,则取消下面的注释
|
|
||||||
# networks:
|
# 如果要使用现有网络而不创建新网络,则取消下面的注释
|
||||||
# # 现有网络的名称
|
#networks:
|
||||||
# - exist_network
|
# # 现有网络的名称
|
||||||
|
# exist_network:
|
||||||
# 如果要使用现有网络而不创建新网络,则取消下面的注释
|
# external: true
|
||||||
#networks:
|
```
|
||||||
# # 现有网络的名称
|
|
||||||
# exist_network:
|
`application.yml`默认内容如下:
|
||||||
# external: true
|
```yml
|
||||||
```
|
server:
|
||||||
|
port: ${DOCUMENT_SERVER_PORT:9004}
|
||||||
`application.yml`默认内容如下:
|
|
||||||
```yml
|
document:
|
||||||
server:
|
gramer:
|
||||||
port: ${DOCUMENT_SERVER_PORT:9004}
|
default:
|
||||||
|
prefix: '${'
|
||||||
document:
|
suffix: '}'
|
||||||
gramer:
|
prefix: ${GRAMER_PREFIX:${document.gramer.default.prefix}}
|
||||||
default:
|
suffix: ${GRAMER_SUFFIX:${document.gramer.default.suffix}}
|
||||||
prefix: '${'
|
customize-list-tag: ${GRAMER_CUSTOMIZE_LIST:%}
|
||||||
suffix: '}'
|
customize-list-tag-string-delimiting: ${GRAMER_CUSTOMIZE_LIST_STRING_DELIMITING:,}
|
||||||
prefix: ${GRAMER_PREFIX:${document.gramer.default.prefix}}
|
|
||||||
suffix: ${GRAMER_SUFFIX:${document.gramer.default.suffix}}
|
jodconverter:
|
||||||
customize-list-tag: ${GRAMER_CUSTOMIZE_LIST:%}
|
local:
|
||||||
customize-list-tag-string-delimiting: ${GRAMER_CUSTOMIZE_LIST_STRING_DELIMITING:,}
|
# 启动本地转换
|
||||||
|
enabled: true
|
||||||
jodconverter:
|
# macOS下:program/soffice 的 program 所在目录 或 MacOS/soffice 的 MacOS 所在目录
|
||||||
local:
|
# windows下:program/soffice.exe 的 program 所在目录
|
||||||
# 启动本地转换
|
# linux下:program/soffice.bin 的 program 所在目录
|
||||||
enabled: true
|
# 如果不配置,则自动查找
|
||||||
# macOS下:program/soffice 的 program 所在目录 或 MacOS/soffice 的 MacOS 所在目录
|
#office-home: /Applications/LibreOffice.app/Contents
|
||||||
# windows下:program/soffice.exe 的 program 所在目录
|
# 一个端口表示一个常驻进程,默认只有一个进程,端口为2002
|
||||||
# linux下:program/soffice.bin 的 program 所在目录
|
port-numbers: ${PORT_NUMBERS:2002}
|
||||||
# 如果不配置,则自动查找
|
# 每个进程最多处理多个任务,默认为200
|
||||||
#office-home: /Applications/LibreOffice.app/Contents
|
max-tasks-per-process: ${MAX_TASKS_PER_PROCESS:200}
|
||||||
# 一个端口表示一个常驻进程,默认只有一个进程,端口为2002
|
```
|
||||||
port-numbers: ${PORT_NUMBERS:2002}
|
|
||||||
# 每个进程最多处理多个任务,默认为200
|
---
|
||||||
max-tasks-per-process: ${MAX_TASKS_PER_PROCESS:200}
|
|
||||||
```
|
## windows下才用[docto-document-server](document-server/docto-document-server)
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## windows下才用[docto-document-server](document-server/docto-document-server)
|
|
||||||
|
|
||||||
通过`java -jar ./document-server-2.0.0.jar --spring.config.location=./application.yml`执行
|
通过`java -jar ./document-server-2.0.0.jar --spring.config.location=./application.yml`执行
|
||||||
Reference in New Issue
Block a user