2026-01-08 15:08:55 +08:00
2025-11-13 17:19:31 +08:00
2025-11-17 16:21:50 +08:00
2022-08-03 16:51:05 +08:00
2025-07-01 15:51:49 +08:00
2025-12-01 11:03:10 +08:00

document-server 文书服务


linux下使用jodconverter-document-server

linux下后台运行方法假设在/root/document-server

  1. document-server-2.0.0.jar所在位置创建start-server.sh脚本
#!/bin/bash
# 设置终端标题
echo -ne "\033]0;文书转换服务\007"
# 自动获取脚本所在绝对目录(兼容软链接)
SCRIPT_DIR=$(cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" &>/dev/null && pwd)
# 进入脚本目录并启动服务
cd "$SCRIPT_DIR" || exit 1
exec java -jar ./document-server-2.0.0.jar --spring.config.location=./application.yml

2.创建document-server.service

sudo vim /etc/systemd/system/document-server.service

document-server.service内容

[Unit]
Description=Document Server Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/root/document-server/start-server.sh
StandardOutput=file:/root/document-server/document-server.log
StandardError=inherit
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

3.启动服务并开机自启

sudo systemctl daemon-reload
sudo systemctl enable document-server
sudo systemctl start document-server

构建Docker镜像以便于通过Docker容器运行

1.先通过maven打包jodconverter-document-server

2.执行build.sh

3.通过docker load -i document-server-1.0.tar.gz导入镜像,通过docker ps | grep document-server查看镜像版本

4.编写docker-compose.yml,在其中指定镜像启动

version: '3.8'
services:
  document-server:
    image: document-server:1.0
    container_name: document-server
    environment:
      - DISABLE_IPV6=true
      - CUSTOM_PORT=3000
      - CUSTOM_HTTPS_PORT=3001
      - DOCUMENT_SERVER_PORT=9004
      - PORT_NUMBERS=2001,2002,2003
      - MAX_TASKS_PER_PROCESS=100
      # 传递环境变量时,$ 是特殊符号,需要 $$ 来表示
      # linux 命令中,$ 也是特殊符号,需要在前面增加 \ 表示转义特殊符号
      # 如果需要传递 ${ ,则需要写成 \$${ 。其首先被 docker 解析为 \${ \${ 作为linux命令的一部分$转义后,相当于字符串 ${
      # 如果不是类似 ${ ,如 {{ ,则无需转义
      - GRAMER_PREFIX="\$${"
      - GRAMER_SUFFIX="}"
      - GRAMER_CUSTOMIZE_LIST="%"
      - GRAMER_CUSTOMIZE_LIST_STRING_DELIMITING=""
    ports:
      # 文书转换服务端口用于document-api远程调用document-server
      - 9004:9004
    volumes:
      # libreoffice的配置保存路径
      - ./config:/config
      # document-server的配置如不指定则以默认为准。建议通过环境变量修改关键配置
      - ./application.yml:/app/application.yml
    restart: unless-stopped
    # 如果要使用现有网络而不创建新网络,则取消下面的注释
#    networks:
#      # 现有网络的名称
#      - exist_network

# 如果要使用现有网络而不创建新网络,则取消下面的注释
#networks:
#  # 现有网络的名称
#  exist_network:
#    external: true

application.yml默认内容如下:

server:
  port: ${DOCUMENT_SERVER_PORT:9004}

document:
  gramer:
    default:
      prefix: '${'
      suffix: '}'
    prefix: ${GRAMER_PREFIX:${document.gramer.default.prefix}}
    suffix: ${GRAMER_SUFFIX:${document.gramer.default.suffix}}
    customize-list-tag: ${GRAMER_CUSTOMIZE_LIST:%}
    customize-list-tag-string-delimiting: ${GRAMER_CUSTOMIZE_LIST_STRING_DELIMITING:}

jodconverter:
  local:
    # 启动本地转换
    enabled: true
    # macOS下program/soffice 的 program 所在目录 或 MacOS/soffice 的 MacOS 所在目录
    # windows下program/soffice.exe 的 program 所在目录
    # linux下program/soffice.bin 的 program 所在目录
    # 如果不配置,则自动查找
    #office-home: /Applications/LibreOffice.app/Contents
    # 一个端口表示一个常驻进程默认只有一个进程端口为2002
    port-numbers: ${PORT_NUMBERS:2002}
    # 每个进程最多处理多个任务默认为200
    max-tasks-per-process: ${MAX_TASKS_PER_PROCESS:200}

windows下才用docto-document-server

通过java -jar ./document-server-2.0.0.jar --spring.config.location=./application.yml执行

Description
文书服务 api下为调用的接口 server下为使用jacob处理word文书,使用liberaoffice来进行pdf转换 tl-server下仅进行word转pdf,使用的docto调用office来转换
Readme 415 MiB
2025-11-17 12:14:03 +08:00
Languages
Java 86.2%
Dockerfile 7.1%
Shell 6.7%