这是一个健壮的、本地托管的基于Web的PDF操作工具,使用Docker实现。它使您能够对PDF文件执行各种操作,包括分割、合并、转换、重新组织、添加图像、旋转、压缩等。这个本地托管的Web应用程序已发展成为包含全面功能的套件,满足您所有的PDF需求。
Stirling PDF不发起任何出站调用用于记录保留或跟踪目的。
所有文件和PDF只存在于客户端,或仅在任务执行期间驻留在服务器内存中,或临时驻留在文件中,仅用于执行任务。任何由用户下载的文件都将在那时从服务器中删除。
• 支持暗黑模式。
• 自定义下载选项(参见此处的示例)
• 并行文件处理和下载
• API用于与外部脚本集成
• 可选的登录和身份验证支持(参见此处的文档)
页面操作
• 查看和修改PDF - 查看多页PDF,自定义查看排序和搜索。另外在页面上编辑功能,如注释、绘图、添加文本和图像。(使用PDF.js与Joxit和Liberation.Liberation字体)
• 全交互式GUI用于合并/分割/旋转/移动PDF及其页面。
• 将多个PDF合并成一个结果文件。
• 在指定页面号处将PDF分割成多个文件或提取所有页面为单独文件。
• 将PDF页面重新组织成不同的顺序。
• 每90度增量旋转PDF。
• 删除页面。
• 多页布局(将PDF格式化为多页页面)。
• 按设定百分比缩放页面内容大小。
• 调整对比度。
• 裁剪PDF。
• 自动分割PDF(使用物理扫描的页面分隔符)。
• 提取页面。
• 将PDF转换为单页。
转换操作
• 将PDF与图像互转。
• 将任何常见文件转换为PDF(使用LibreOffice)。
• 将PDF转换为Word/Powerpoint/其他(使用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。
有关任务和每项技术的概述,请查看Endpoint-groups.md。应用程序的演示在这里可用,用户名:demo,密码:demo。
• Spring Boot + Thymeleaf
• PDFBox
• LibreOffice用于高级转换
• OcrMyPdf
• HTML, CSS, JavaScript
• Docker
• PDF.js
• PDF-LIB.js
本地
请查看 https://github.com/Stirling-Tools/Stirling-PDF/blob/main/LocalRunGuide.md
Docker / Podman
https://hub.docker.com/r/frooodle/s-pdf Stirling PDF有两个不同版本,完整版本和超轻版。根据您使用的功能类型,您可能需要一个较小的镜像以节省空间。要查看不同版本提供的内容,请查看我们的版本映射。对于不在乎空间优化的人来说,只需使用最新标签。
Docker运行
docker run -d \
-p 8080:8080 \
-v /location/of/trainingData:/usr/share/tessdata \
-v /location/of/extraConfigs:/configs \
-v /location/of/logs:/logs \
-e DOCKER_ENABLE_SECURITY=false \
-e INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false \
-e LANGS=en_GB \
--name stirling-pdf \
frooodle/s-pdf:latest
还可以添加这些用于自定义,但不是必需的
-v /location/of/customFiles:/customFiles \
Docker Compose
version: '3.3'
services:
stirling-pdf:
image: frooodle/s-pdf:latest
ports:
- '8080:8080'
volumes:
- /location/of/trainingData:/usr/share/tessdata #Required for extra OCR languages
- /location/of/extraConfigs:/configs
# - /location/of/customFiles:/customFiles/
# - /location/of/logs:/logs/
environment:
- DOCKER_ENABLE_SECURITY=false
- INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false
- LANGS=en_GB
注意:Podman与Docker的命令行兼容,因此只需将“docker”替换为“podman”。
请查看 如何使用OCRhttps://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToUseOCR.md
Stirling PDF允许轻松定制应用程序。包括如下内容:
自定义应用程序名称 自定义口号、图标、HTML、图片、CSS等(通过文件覆盖) 有两种选项,一种是使用生成的设置文件settings.yml,该文件位于/configs目录,并遵循标准的YAML格式。环境变量也支持,并将覆盖设置文件。例如,在settings.yml中你有:
system:
defaultLocale: 'en-US'
要通过环境变量设置,你会有SYSTEM_DEFAULTLOCALE 当前的设置列表
security:
enableLogin: false # 设置为'true'以启用登录
csrfDisabled: true
system:
defaultLocale: 'en-US' # 设置默认语言(例如,'de-DE', 'fr-FR'等)
googlevisibility: false # 'true'允许谷歌可见性(通过robots.txt),'false'则不允许
customStaticFilePath: '/customFiles/static/' # 自定义静态文件的目录路径
showUpdate: true # 查看是否有新的更新可用
showUpdateOnlyAdmin: false # 只有管理员可以看到新的更新是否可用,取决于showUpdate必须设置为'true'
customHTMLFiles: false # 启用则可以将文件放在/customFiles/templates中覆盖现有的模板html文件
#ui:
# appName: exampleAppName # 应用的可见名称
# homeDescription: I am a description # 首页显示的简短描述或标语。
# appNameNavbar: navbarName # 导航栏显示的名称
当前端点ENDPOINTS_TO_REMOVE和GROUPS_TO_REMOVE可以包含逗号分隔的端点和组的列表以禁用,例如ENDPOINTS_TO_REMOVE=img-to-pdf,remove-pages将禁用图像到PDF和删除页面,GROUPS_TO_REMOVE=LibreOffice将禁用所有使用LibreOffice的功能。你可以在这里查看所有端点和组的列表。
customStaticFilePath:通过将文件放在/customFiles/static/目录中来自定义静态文件,例如通过放置/customFiles/static/favicon.svg来覆盖当前SVG。这可以用来更改任何图像/图标/CSS/字体/JS等在Stirling-PDF中。
仅限环境参数 SYSTEM_ROOTURIPATH
例如设置为/pdf-app将应用程序的根URI设置为 localhost:8080/pdf-app
SYSTEM_CONNECTIONTIMEOUTMINUTES设置自定义连接超时值
DOCKER_ENABLE_SECURITY告诉docker下载安全jar(对于auth login是必需的)
INSTALL_BOOK_AND_ADVANCED_HTML_OPS下载calibre到stirling-pdf,启用PDF与书籍和高级HTML转换
LANGS定义要安装以用于文档转换的自定义字体库
对于那些想要使用Stirling-PDF的后端API与他们自己的自定义脚本链接以编辑PDF的人,你可以在这里查看所有现有的API文档,或者导航到你的stirling-pdf实例的/swagger-ui/index.html查看你的版本文档(或通过在Stirling-PDF的设置中跟随API按钮)
先决条件:
用户必须在docker中设置./configs文件夹为卷,以便在更新时保留。Docker用户必须通过设置环境变量DOCKER_ENABLE_SECURITY为true来下载安全jar版本。然后通过settings.yml文件或设置SECURITY_ENABLE_LOGIN为true来启用登录。现在,初始用户将以用户名admin和密码stirling生成。登录时,您将被要求更改密码为新密码。您也可以使用环境变量SECURITY_INITIALLOGIN_USERNAME和SECURITY_INITIALLOGIN_PASSWORD来立即设置您自己的用户名和密码(建议在创建用户后删除它们)。一旦完成上述步骤,在重启后,如果一切正常,将显示新的stirling-pdf-DB.mv.db。登录Stirling PDF后,您将被重定向到/login页面使用这些默认凭据登录。登录后,一切应该正常工作。
要访问您的账户设置,请在导航栏右上角的设置齿轮菜单中转到“账户设置”。这个“账户设置”菜单也是您找到API密钥的地方。
要添加新用户,请到“账户设置”底部点击“管理员设置”,在这里您可以添加新用户。这里提到的不同角色用于限速。这是一个正在进行的工作,将来会有更多扩展。
对于API使用,您必须提供一个带有X-API-Key和该用户的关联API密钥的头部。
Q1: 你们计划的功能是什么?
进度条/跟踪 全自定义逻辑管道,以组合多个操作。支持自动扫描的文件夹支持,以执行操作 文本涂黑(通过用户界面,不仅仅是自动化方式) 添加表单 多页布局(将PDF页面拼接在一起)支持x行y列和自定义页面大小 手动或自动填写表单 Q2: 为什么我的应用程序正在下载.htm文件?
这通常是由您的NGINX配置引起的问题。NGINX的默认文件上传大小为1MB,您需要在您的Nginx sites-available文件中添加以下内容:client_max_body_size SIZE;,其中“SIZE”例如为50M,表示50MB文件。 Q3: 为什么我的下载超时?
NGINX默认有超时值,所以如果您在NGINX后面运行Stirling-PDF,您可能需要设置一个超时值,例如添加配置proxy_read_timeout 3600;。
本文由山行翻译整理自:https://github.com/Stirling-Tools/Stirling-PDF,如果对您有帮助,请帮忙点赞、关注、收藏,谢谢~
另外,对提示词感兴趣的可以关注一下视频号,上面有比较多的提示词干货分享哦~