Stirling PDF在线处理部署

Stirling PDF 是个开源的PDF工具箱,能合并、拆分、压缩、转换格式、加解密、OCR,甚至还能改页面顺序和旋转。不需要注册,数据在本地处理,适合自己搭一个内部用或者给团队用。 部署方式很简单,我直接上Docker。 前提条件 – 一台有Docker的服务器(我用雨云的2C4G实例,跑这个绰绰有余,性价比高,稳定) – 域名的SSL证书(如果有公网需求,没有就局域网用) 直接启动
docker run -d \
  --name stirling-pdf \
  -p 8080:8080 \
  -v /opt/stirling-pdf/data:/usr/share/tesseract-ocr/4.00/tessdata \
  -v /opt/stirling-pdf/config:/configs \
  -e DOCKER_ENABLE_SECURITY=false \
  -e INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false \
  frooodle/s-pdf:latest
解释几个参数: – `DOCKER_ENABLE_SECURITY=false` 关闭登录,适合内网用。公网记得开,后面说。 – `INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false` 不装额外依赖,减少镜像体积,OCR功能会弱一些。如果需要OCR中文,改成true。 – 挂载两个卷:tessdata是OCR语言包目录,configs是配置文件。 启动后浏览器访问 `http://你的IP:8080` 就能看到界面。 配置HTTPS和反向代理 公网用必须套HTTPS。我习惯用Nginx反代,配置如下:
server {
    listen 443 ssl;
    server_name pdf.yourdomain.com;

    ssl_certificate /etc/nginx/ssl/fullchain.pem;
    ssl_certificate_key /etc/nginx/ssl/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        # 上传文件大小限制,默认1M不够用
        client_max_body_size 100M;
    }
}
注意 `client_max_body_size` 要设大,PDF文件随便几十M。 开启登录认证 如果公网暴露,必须加密码保护。修改 `configs/settings.yml`(没有就创建):
security:
  enableLogin: true
  # 自定义用户名密码,格式:用户名:密码
  users:
    - username: admin
      password: admin123
    - username: user1
      password: pass456
改完重启容器:
docker restart stirling-pdf
OCR中文支持 默认OCR只有英文。要识别中文PDF,需要下载中文语言包:
wget https://github.com/tesseract-ocr/tessdata/raw/main/chi_sim.traineddata
mv chi_sim.traineddata /opt/stirling-pdf/data/
重启容器,上传PDF后选择语言”chi_sim”即可。 常用操作 – 合并PDF:上传多个文件,拖拽排序,点合并。 – PDF转Word:上传后选格式,转换完直接下载。 – 压缩PDF:选压缩等级,一般选”中等”效果最好。 – 加解密:设置密码,可以限制打印、复制。 性能调优 PDF处理吃CPU,尤其是OCR和压缩。如果并发高,可以加内存限制:
docker run -d --memory="2g" --cpus="2" ...
雨云的机器我实测同时处理3个100页PDF,CPU占用60%,内存1.5G,够用。 备份策略 配置文件和OCR数据都在挂载卷里,直接打包:
tar -czf stirling-pdf-backup.tar.gz /opt/stirling-pdf/
每周crontab跑一次就行。 踩坑记录 1. 上传大文件超时:Nginx `proxy_read_timeout` 设大点,比如600s。 2. OCR识别乱码:确认语言包版本和容器内tesseract版本匹配,我用latest镜像没问题。 3. 中文文件名乱码:容器内默认locale不是UTF-8,加环境变量 `-e LANG=zh_CN.UTF-8`。 Stirling PDF 没有花里胡哨的UI,功能扎实,适合自建。如果想给团队用,配合反向代理和登录认证,基本可以替代在线PDF工具。

雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容