【推荐】15k的star,5分钟本地化部署,一款由ChatGPT开发PDF文件处理神器,功能强大,你想要的都有。

【推荐】15k的star,5分钟本地化部署,一款由ChatGPT开发PDF文件处理神器,功能强大,你想要的都有。


大家好!我是老码农。

《码农说》公众号的第13篇文章我们暖暖来袭。

今天分享主题:一款最初由100%ChatGPT开发的PDF处理应用程序,Stirling-PDF

工具的源代码,我已经下载好了,公众号内回复:0108即可下载,不想下载的直接按照资料部署即可。

推荐3个理由

理由1:部署非常简单,如果基于Docker部署,5分钟搞定。因为是本地化部署,不用担心数据安全问题;

  • 网络上各种在线PDF处理工具不付费大都功能受限,用起来很不爽;
  • 文中记述了详细的部署过程。

理由2:体验ChatGPT的强大之处;工具用好了,能让我们有更多的时间摸鱼,太牛掰了;

理由3:基于主流的技术架构,我们可以方便进行二次开发;

官网

  • Stirling-PDF
    • https://github.com/Stirling-Tools/Stirling-PDF

特点

  • 本地部署基于Web页面的PDF操作工具;
  • 本地可基于Docker部署;
  • 可以对PDF文件执行各种操作,如拆分、合并、转换、重组、添加图像、旋转、压缩等;
  • 支持黑暗模式;
  • 并行文件处理和下载;
  • 可选的登录和身份验证支持。

功能

页面操作
  • 查看和修改PDF-使用自定义查看排序和搜索功能查看多页PDF。加上页面上的编辑功能,如注释、绘制和添加文本和图像。

  • 用于合并/拆分/旋转/移动PDF及其页面的完整交互式GUI。

  • 将多个PDF合并到一个结果文件中。

  • 按指码将PDF拆分为多个文件,或将所有页面提取为单个文件。

  • 将PDF页面重新组织为不同的顺序。

  • 以90度为增量旋转PDF。

  • 删除页面。

  • 多页布局(将PDF格式设置为多页页面)。

  • 按设置%缩放页面内容大小。

  • 裁剪PDF。

  • 。。。

转换操作
  • 将PDF转换为图像和从图像转换PDF。

  • 将任何常用文件转换为PDF(使用LibreOffice)。

  • 将PDF转换为Word/Powerpoint/其他(使用LibreOffice)。

  • 将HTML转换为PDF。

安全性和权限
  • 添加和删除密码。

  • 更改/设置PDF权限。

  • 添加水印。

  • 认证/签署PDF。

其他操作
  • 添加/生成/写入签名。

  • 检测并删除空白页。

  • 比较2个PDF并显示文本差异。

  • 将图像添加到PDF中。

  • 压缩PDF以减小其文件大小(使用OCRMyPDF)。

  • 从PDF中提取图像。

  • 从扫描中提取图像。

  • 添加页码。

安装

下面提供了2种安装方式,实际都是用Docker启动容器。推荐大家用Docker安装。

第1种:docker run
  • Step1: 创建数据卷

    docker volume create s_pdf_trainingData
    

    继续执行下面命令

    docker volume create s_pdf_extraConfigs
    

    继续执行下面命令

    docker volume create s_pdf_logs
    
  • Step2:运行docker run, 启动容器

    docker run -d -p 8686:8080 -v s_pdf_trainingData:/usr/share/tesseract-ocr/5/tessdata -v s_pdf_extraConfigs:/configs -v s_pdf_logs:/logs -e DOCKER_ENABLE_SECURITY=false --name stirling-pdf  frooodle/s-pdf:latest
    
第2种: docker compose
  • Step1: 编写脚本,脚本文件名compose.yaml

    version: '3.3'
    services:
      stirling-pdf:
        image: frooodle/s-pdf:latest
        ports:
          - '8686:8080'
        volumes:
          - s_pdf_trainingData:/usr/share/tesseract-ocr/5/tessdata 
          - s_pdf_extraConfigs:/configs
          - s_pdf_logs:/logs/
    #      - /location/of/customFiles:/customFiles/
        environment:
          - DOCKER_ENABLE_SECURITY=false
    volumes:
      s_pdf_trainingData:
      s_pdf_extraConfigs:
      s_pdf_logs:
    
  • Step2: 编写一个执行脚本

    • Window上:run.bat,该文件和compose.yml放在同一目录下,文件内容如下

      docker compose up -d
      
    • Linux Or macOS上:run.sh, 该文件和compose.yml也放在同一目录下,文件内容如下

      #!/bin/bash
      docker compose up -d
      

      然后修改该文件可执行权限

      chmod +x run.sh
      
  • Step3:参照下面说明,执行完脚本,启动容器即可。

    • Windows上,直接双击run.bat即可启动;

    • Linux Or MacOS上,执行下面的脚本,启动容器。

      ./run.sh
      

访问

  • Step1:打开浏览器,输入http://localhost:8686/

    默认是英文的,下图画框部分是提供的功能。

    在这里插入图片描述

  • Step2:改成中文,如下图操作即可

    在这里插入图片描述

  • Step3:修改完语言后,界面如下,提供的功能很全

    在这里插入图片描述

  • Step4: 更多的功能,大家安装后自己体验吧。

我是老码农

大家好!我是老码农。今天就分享到这里。

关注《码农说》,期待未来能与更多的同学有深入的交流,一同学习技术,共同成长。

以下是一个大小不超过15k字节的 HTML 设备控制范例: ```html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>设备控制界面</title> <style> body { font-family: Arial, sans-serif; text-align: center; background-color: #f2f2f2; } h1 { margin-top: 40px; margin-bottom: 20px; } button { font-size: 18px; padding: 10px 20px; margin: 10px; border: none; border-radius: 5px; background-color: #4CAF50; color: #fff; cursor: pointer; } button:hover { background-color: #2E8B57; } .status { font-size: 24px; margin-top: 40px; margin-bottom: 20px; } </style> </head> <body> <h1>设备控制界面</h1> <button id="on">开</button> <button id="off">关</button> <p class="status">设备状态:未知</p> <script> // 获取按钮元素和状态元素 var onBtn = document.getElementById('on'); var offBtn = document.getElementById('off'); var statusEl = document.querySelector('.status'); // 给按钮绑定点击事件 onBtn.addEventListener('click', function() { // 发送请求控制设备开启 controlDevice('on'); }); offBtn.addEventListener('click', function() { // 发送请求控制设备关闭 controlDevice('off'); }); // 发送请求控制设备 function controlDevice(action) { // 发送 AJAX 请求 var xhr = new XMLHttpRequest(); xhr.open('POST', '/api/control', true); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { // 请求成功,更新状态元素 var res = JSON.parse(xhr.responseText); statusEl.textContent = '设备状态:' + res.status; } }; xhr.send(JSON.stringify({ action: action })); } </script> </body> </html> ``` 这个范例中,页面包含一个标题、两个按钮和一个状态元素,使用了简单的样式和布局。通过给按钮绑定点击事件,可以发送 AJAX 请求控制设备的开启和关闭,并且在请求成功后更新状态元素。你可以根据具体需求进行修改和扩展。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值