• 【Docker项目实战篇】Docker部署PDF多功能工具Stirling-PDF


    前言

    之前使用Docker部署过Stirling-PDF项目,当时的版本为0.22.2,其中部分功能使用起来可能存在bug。现在该项目已经更新到了0.26.1版本,部分bug得到修复,同时Stirling-PDF界面有了较大变化,更加的美观,现在来体验一下新版本以及功能。

    一、Stirling-PDF介绍

    1.1 Stirling-PDF简介

    Stirling-PDF:这是一个使用 Docker 的强大的、本地托管的基于 Web 的 PDF 操作工具。它使您能够对 PDF 文件执行各种操作,包括拆分、合并、转换、重新组织、添加图像、旋转、压缩等。这个本地托管的 Web 应用程序已经发展到包含一套全面的功能,可以满足您的所有 PDF 需求。

    1.2 Stirling-PDF功能

    功能分类功能说明
    页面操作查看和修改PDF:使用PDF.js与Joxit及Liberation字体,支持多页PDF浏览、自定义排序、搜索以及页面注释、绘图、添加文字和图片功能。
    全交互式GUI:用于合并、拆分、旋转、移动PDF及其页面。
    合并PDF:将多个PDF合并成单个文件。
    拆分PDF:按指定页码拆分为多个文件或提取所有页面为独立文件。
    重新组织页面顺序。
    旋转PDF:以90度为单位旋转。
    删除页面。
    多页布局:将PDF格式化为多页页面。
    缩放页面内容大小。
    调整对比度。
    裁剪PDF。
    自动拆分扫描的PDF(基于物理分隔)。
    提取页面。
    将PDF转换为单页。
    转换操作PDF与图片互转。
    常见文件转换为PDF(使用LibreOffice)。
    PDF转换为Word/PPT/其他格式(使用LibreOffice)。
    HTML转PDF。
    URL转PDF。
    Markdown转PDF。
    安全与权限添加/移除密码。
    更改/设置PDF权限。
    添加水印。
    签名/认证PDF。
    清理PDF。
    自动屏蔽敏感文字。
    其他操作添加/生成/编写签名。
    修复PDF。
    检测并移除空白页。
    比较两个PDF并显示文本差异。
    向PDF中添加图片。
    压缩PDF以减小文件大小(使用OCRMyPDF)。
    从PDF中提取图片。
    从扫描件中提取图片。
    添加页码。
    根据PDF头部文本自动重命名文件。
    对PDF进行OCR处理(使用OCRMyPDF)。
    转换为PDF/A标准(使用OCRMyPDF)。
    编辑元数据。
    扁平化PDF。
    获取PDF所有信息,可查看或导出为JSON。

    二、本次实践规划

    2.1 本地环境规划

    本次实践为个人测试环境,操作系统版本为centos7.6。

    hostnameIP地址操作系统版本Docker版本Stirling-PDF版本
    ubuntu-docker192.168.3.86Ubuntu 22.04.1 LTS24.0.70.26.1

    2.2 本次实践介绍

    1.本次实践部署环境为个人测试环境,生产环境请谨慎;
    2.在Docker环境下部署PDF多功能工具Stirling-PDF。

    三、本地环境检查

    3.1 检查Docker服务状态

    检查Docker服务是否正常运行,确保Docker正常运行。

    root@ubuntu-docker:~# systemctl status docker
    ● docker.service - Docker Application Container Engine
         Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
         Active: active (running) since Fri 2024-06-21 16:45:29 UTC; 9h ago
    TriggeredBy: ● docker.socket
           Docs: https://docs.docker.com
       Main PID: 3625 (dockerd)
          Tasks: 12
         Memory: 26.0M
            CPU: 3.367s
         CGroup: /system.slice/docker.service
    

    3.2 检查Docker版本

    检查Docker版本

    root@ubuntu-docker:~# docker  -v
    Docker version 24.0.7, build 24.0.7-0ubuntu2~22.04.1
    

    3.3 检查docker compose 版本

    检查Docker compose版本,确保2.0以上版本。

    root@ubuntu-docker:~#  docker compose version
    Docker Compose version v2.19.1
    
    

    四、下载Stirling-PDF镜像

    使用本人的阿里云私人镜像仓库下载Stirling-PDF镜像registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat

    root@ubuntu-docker:~# docker pull   registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat
    0.26.1-fat: Pulling from jeson/s-pdf
    d25f557d7f31: Pull complete
    c1f8f1be6b13: Pull complete
    1f66901a7ce5: Pull complete
    64608eef7b1e: Pull complete
    b3900a49ca85: Pull complete
    cea40baf48ce: Pull complete
    Digest: sha256:67ee927cc5b499e32164c25cad5197e9226ced31d319282a7a346b912063909c
    Status: Downloaded newer image for registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat
    registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat
    

    五、部署Stirling-PDF

    5.1 创建部署目录

    创建部署目录

    mkdir -p /data/s-pdf && cd /data/s-pdf
    

    5.2 编辑部署文件

    /data/s-pdf目录,创建docker-compose.yaml文件,内容如下,其中宿主机映射端口、登录账号密码等可以自定义配置。

    version: '3.9'
    services:
      stirling-pdf:
        image: registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat
        container_name: Stirling-PDF
        ports:
          - '6080:8080'
        volumes:
          - /data/s-pdf/trainingData:/usr/share/tessdata    # OCR 语言支持
          - /data/s-pdf/extraConfigs:/configs
          - /data/s-pdf/customFiles:/customFiles/
          - /data/s-pdf/logs:/logs/
        environment:
          DOCKER_ENABLE_SECURITY: true    # 启用内部安全功能
          SECURITY_ENABLELOGIN: true    # 启用登录功能
          SECURITY_INITIALLOGIN_USERNAME: jeven    # Stirling-PDF登录账号
          SECURITY_INITIALLOGIN_PASSWORD: jeven    # Stirling-PDF登录密码
          UI_APPNAME: jeven-PDF    # 自定义导航标题
          INSTALL_BOOK_AND_ADVANCED_HTML_OPS: false
          LANGS: zh_CN    # 设置语言
         
    

    5.3 创建Stirling-PDF容器

    执行以下命令,创建Stirling-PDF容器。

    root@ubuntu-docker:/data/s-pdf# docker compose up -d
    [+] Running 2/2
     ✔ Network s-pdf_default   Created                                                                                                                                 0.0s
     ✔ Container Stirling-PDF  Started                                                                                                                                 0.3s
    

    5.4 查看Stirling-PDF容器状态

    检查tirling-PDF容器状态状态,确保Stirling-PDF容器正常启动。

    [root@ubuntu-docker:/data/s-pdf# docker compose ps
    NAME                IMAGE                                                      COMMAND                  SERVICE             CREATED             STATUS              PORTS
    Stirling-PDF        registry.cn-hangzhou.aliyuncs.com/jeson/s-pdf:0.26.1-fat   "tini -- /scripts/in…"   stirling-pdf        58 seconds ago      Up 57 seconds       0.0.0.0:6080->8080/tcp, :::6080->8080/tcp
    

    5.5 查看Stirling-PDF容器日志

    检查Stirling-PDF容器日志,确保Stirling-PDF服务正常运行。

    docker compose logs
    

    在这里插入图片描述

    六、访问PDF多功能工具Stirling-PDF

    6.1 访问Stirling-PDF首页

    访问地址:http://192.168.3.86:6080,将IP替换为自己服务器IP地址。如果无法访问到以下页面,则检查宿主机的防火墙是否关闭或者放行相关端口,云服务器则还需要设置安全组规则。

    在这里插入图片描述

    6.2 设置系统中文

    在登录页,选择系统语言为简体中文,账号密码为我们在部署文件中自定义的,登录即可。

    在这里插入图片描述

    在这里插入图片描述

    七、Stirling-PDF工具的基本使用

    7.1 将word文档转换为PDF文档

    点击菜单栏中的转换成PDF模块,选择将“将文件转换为PDF文件”。

    在这里插入图片描述

    选择文件,点击转化为PDF。

    在这里插入图片描述

    转换成功后,浏览器会自动下载到本地。

    在这里插入图片描述

    测试将转换后的pdf文档打开,浏览正常。

    在这里插入图片描述

    7.2 PDF转换为word

    点击菜单栏中的从PDF转换模块,选择"PDF转换为word"。

    在这里插入图片描述

    上传文件,点击“转换”。

    在这里插入图片描述

    PDF文件会转换成word文件,浏览器自动下载到本地。

    在这里插入图片描述

    打开下载到本地的word文件,浏览文件内容。

    在这里插入图片描述

    八、总结

    Stirling-PDF是一款功能强大的PDF工具。最新版本修复了以前版本中的一些bug,并且有更美观漂亮的界面,使用起来更加流畅。它是一款非常优秀的PDF工具,可以极大地提高我们的工作效率。我已经将它部署到本地个人工具库中了。

  • 相关阅读:
    Ansible-playbook 快速入门到放弃
    Vue生成多文件pdf准考证
    flutter聊天界面-TextField输入框实现@功能等匹配正则表达式展示高亮功能
    广和通入驻中国联通5G物联网OpenLab开放实验室,携手共赴5G扬帆新征程
    Lamt的部署
    2022年06月 Scratch(一级)真题解析#中国电子学会#全国青少年软件编程等级考试
    7种常见分布的数学期望及其证明
    Vue脚手架的搭建
    JavaScript中的map()方法详解
    java计算机毕业设计数据分析星辰网智能手机销售网站源码+系统+mysql数据库+lw文档+部署
  • 原文地址:https://blog.csdn.net/jks212454/article/details/139872087