# Stirling-PDF **Repository Path**: yangshare/Stirling-PDF ## Basic Information - **Project Name**: Stirling-PDF - **Description**: 本地托管的web应用程序,允许您对PDF文件执行各种操作 - **Primary Language**: Java - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2024-09-26 - **Last Updated**: 2024-11-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

Stirling-PDF

[![Docker Pulls](https://img.shields.io/docker/pulls/frooodle/s-pdf)](https://hub.docker.com/r/frooodle/s-pdf) [![Discord](https://img.shields.io/discord/1068636748814483718?label=Discord)](https://discord.gg/Cn8pWhQRxZ) [![Docker Image Version (tag latest semver)](https://img.shields.io/docker/v/frooodle/s-pdf/latest)](https://github.com/Stirling-Tools/Stirling-PDF/) [![GitHub Repo stars](https://img.shields.io/github/stars/stirling-tools/stirling-pdf?style=social)](https://github.com/Stirling-Tools/stirling-pdf) 这是一个强大的,本地托管的基于web的PDF操作工具,使用Docker。它使您能够对PDF文件执行各种操作,包括拆分、合并、转换、重组、添加图像、旋转、压缩等。这个本地托管的web应用程序已经发展到包含一套全面的功能,满足您所有的PDF需求。 Stirling PDF不会发起任何用于记录保存或跟踪目的的出站呼叫。 所有文件和pdf要么只存在于客户端,要么只在任务执行期间驻留在服务器内存中,要么临时驻留在仅用于执行任务的文件中。到那时,用户下载的任何文件都将从服务器上删除。 ![stirling-home](images/stirling-home.jpg) ## 🎉直接使用 [https://pdf.yangshare.cn](https://pdf.yangshare.cn) ## ✨特性 - 暗模式支持。 - 自定义下载选项 — 并行文件处理和下载 - 自定义“管道”在队列中运行多个功能 - 与外部脚本集成的API - 可选的登录和认证支持(见[这里](https://github.com/Stirling-Tools/Stirling-PDF/tree/main#login-authentication)的文档) - 数据库备份和导入(参见[这里](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/DATABASE.md)获取文档) ## **🛞PDF** ### **页面操作** - 查看和修改pdf -查看多页pdf与自定义的查看排序和搜索。加上页面编辑功能,如注释,绘制和添加文本和图像。(使用pdf格式与Joxit和Liberation。解放字体) - 用于合并/拆分/旋转/移动pdf及其页面的完整交互式GUI。 - 合并多个pdf一起成一个单一的结果文件。 - 分割pdf文件成多个文件在指定的页码或提取所有页面作为单独的文件。 - 重新组织PDF页面到不同的顺序。 - 以90度的增量旋转pdf。 - 删除页面。 - 多页布局(将pdf文件格式化为多页页面)。 - 按设置%缩放页面内容大小。 - 调整对比度。 - 裁剪PDF。 - 自动分割PDF(与物理扫描的页面分隔)。 - 提取页面。 - 将PDF转换为单个页面。 - 相互叠加pdf文件 ### **转换操作** - 转换pdf和从图像。 - 将任何普通文件转换为PDF(使用LibreOffice)。 - 将PDF转换为Word/Powerpoint/Others(使用LibreOffice)。 - 将HTML转换为PDF。 - URL格式为PDF格式。 - 至PDF格式。 ### **安全与权限** - 添加和删除密码。 - 更改/设置PDF权限。 - 添加水印。 - 对pdf文件进行认证/签名。 - 净化pdf文件。 - 自动编辑文本。 ### **其他操作** - 添加/生成/写入签名。 - 修复pdf文件。 - 检测和删除空白页。 - 比较两个pdf文件,显示文本差异。 - 将图像添加到pdf文件。 - 压缩pdf,以减少他们的文件大小(使用OCRMyPDF)。 - 从PDF中提取图像。 - 从扫描中提取图像。 - 添加页码。 - 自动重命名文件检测PDF头文本。 - PDF的OCR(使用OCRMyPDF)。 - PDF/A转换(使用OCRMyPDF)。 - 编辑元数据。 - 平面化pdf文件。 - 获取PDF上的所有信息以查看或导出为JSON。 - 显示/检测嵌入Javascript 有关任务和每个使用的技术的概述,请查看[Endpoint-groups.md](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/Endpoint-groups.md)。 > 这里输入引用文本应用程序的演示是可用的 [here](https://pdf.yangshare.cn). ## 🎁应用的技术 - Spring Boot + Thymeleaf - [PDFBox](https://github.com/apache/pdfbox/tree/trunk) - [LibreOffice](https://www.libreoffice.org/discover/libreoffice/) for advanced conversions - [OcrMyPdf](https://github.com/ocrmypdf/OCRmyPDF) - HTML, CSS, JavaScript - Docker - [PDF.js](https://github.com/mozilla/pdf.js) - [PDF-LIB.js](https://github.com/Hopding/pdf-lib) ## 🎞️使用方法 ### Windows windows用户请下载最新版本 Stirling-PDF.exe 从 [release](https://github.com/Stirling-Tools/Stirling-PDF/releases) 或单击 [here](https://github.com/Stirling-Tools/Stirling-PDF/releases/latest/download/Stirling-PDF.exe) ### Locally 请看 https://github.com/Stirling-Tools/Stirling-PDF/blob/main/LocalRunGuide.md ### Docker / Podman https://hub.docker.com/r/frooodle/s-pdf Stirling PDF有3个不同的版本,一个完整版本和ultra-Lite版本以及一个“Fat”版本。根据您使用的功能类型,您可能需要更小的图像来节省空间。 要了解不同版本提供什么,请查看我们的 [version mapping](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/Version-groups.md) 对于那些不介意空间优化的人来说,只需使用最新的标签。 ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/frooodle/s-pdf/latest?label=Stirling-PDF%20Full) ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/frooodle/s-pdf/latest-ultra-lite?label=Stirling-PDF%20Ultra-Lite) ![Docker Image Size (tag)](https://img.shields.io/docker/image-size/frooodle/s-pdf/latest-fat?label=Stirling-PDF%20Fat) 请注意,在下面的示例中,您可能需要根据需要更改卷路径,当前示例将它们安装到当前工作目录 eg ``./extraConfigs:/configs`` to ``/opt/stirlingpdf/extraConfigs:/configs`` ### Docker Run ```bash docker run -d \ -p 8080:8080 \ -v ./trainingData:/usr/share/tessdata \ -v ./extraConfigs:/configs \ -v ./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 Can also add these for customisation but are not required -v /location/of/customFiles:/customFiles \ ``` ### Docker Compose ```yaml version: '3.3' services: stirling-pdf: image: frooodle/s-pdf:latest ports: - '8080:8080' volumes: - ./trainingData:/usr/share/tessdata #Required for extra OCR languages - ./extraConfigs:/configs # - ./customFiles:/customFiles/ # - ./logs:/logs/ environment: - DOCKER_ENABLE_SECURITY=false - INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false - LANGS=en_GB ``` Note: Podman is CLI-compatible with Docker, so simply replace "docker" with "podman". ## Enable OCR/Compression feature Please view https://github.com/Stirling-Tools/Stirling-PDF/blob/main/HowToUseOCR.md ## 支持的语言 Stirling PDF目前支持38种 | Language | Progress | | ------------------------------------------- | -------------------------------------- | | Arabic (العربية) (ar_AR) | ![99%](https://geps.dev/progress/99) | | Basque (Euskara) (eu_ES) | ![60%](https://geps.dev/progress/60) | | Bulgarian (Български) (bg_BG) | ![91%](https://geps.dev/progress/91) | | Catalan (Català) (ca_CA) | ![47%](https://geps.dev/progress/47) | | Croatian (Hrvatski) (hr_HR) | ![91%](https://geps.dev/progress/91) | | Czech (Česky) (cs_CZ) | ![87%](https://geps.dev/progress/87) | | Danish (Dansk) (da_DK) | ![96%](https://geps.dev/progress/96) | | Dutch (Nederlands) (nl_NL) | ![93%](https://geps.dev/progress/93) | | English (English) (en_GB) | ![100%](https://geps.dev/progress/100) | | English (US) (en_US) | ![100%](https://geps.dev/progress/100) | | French (Français) (fr_FR) | ![90%](https://geps.dev/progress/90) | | German (Deutsch) (de_DE) | ![99%](https://geps.dev/progress/99) | | Greek (Ελληνικά) (el_GR) | ![79%](https://geps.dev/progress/79) | | Hindi (हिंदी) (hi_IN) | ![76%](https://geps.dev/progress/76) | | Hungarian (Magyar) (hu_HU) | ![73%](https://geps.dev/progress/73) | | Indonesia (Bahasa Indonesia) (id_ID) | ![74%](https://geps.dev/progress/74) | | Irish (Gaeilge) (ga_IE) | ![95%](https://geps.dev/progress/95) | | Italian (Italiano) (it_IT) | ![99%](https://geps.dev/progress/99) | | Japanese (日本語) (ja_JP) | ![92%](https://geps.dev/progress/92) | | Korean (한국어) (ko_KR) | ![81%](https://geps.dev/progress/81) | | Norwegian (Norsk) (no_NB) | ![95%](https://geps.dev/progress/95) | | Polish (Polski) (pl_PL) | ![89%](https://geps.dev/progress/89) | | Portuguese (Português) (pt_PT) | ![76%](https://geps.dev/progress/76) | | Portuguese Brazilian (Português) (pt_BR) | ![99%](https://geps.dev/progress/99) | | Romanian (Română) (ro_RO) | ![97%](https://geps.dev/progress/97) | | Russian (Русский) (ru_RU) | ![81%](https://geps.dev/progress/81) | | Serbian Latin alphabet (Srpski) (sr_LATN_RS) | ![76%](https://geps.dev/progress/76) | | Simplified Chinese (简体中文) (zh_CN) | ![98%](https://geps.dev/progress/98) | | Slovakian (Slovensky) (sk_SK) | ![89%](https://geps.dev/progress/89) | | Spanish (Español) (es_ES) | ![98%](https://geps.dev/progress/98) | | Swedish (Svenska) (sv_SE) | ![97%](https://geps.dev/progress/97) | | Thai (ไทย) (th_TH) | ![96%](https://geps.dev/progress/96) | | Traditional Chinese (繁體中文) (zh_TW) | ![95%](https://geps.dev/progress/95) | | Turkish (Türkçe) (tr_TR) | ![96%](https://geps.dev/progress/96) | | Ukrainian (Українська) (uk_UA) | ![87%](https://geps.dev/progress/87) | | Vietnamese (Tiếng Việt) (vi_VN) | ![96%](https://geps.dev/progress/96) | ## 🎫FAQ案例 ### Q1: 你计划的功能是什么? - 进度条/跟踪 - 完整的自定义逻辑管道,将多个操作组合在一起。 - 文件夹支持自动扫描执行操作 - 编辑文本(通过用户界面,而不仅仅是自动化的方式) - 添加表单 - 多页布局(把PDF页面贴在一起)支持x行y列和自定义页面大小 - 手动或自动填写表格 ### Q2: 为什么我的应用程序下载.htm文件? 这是一个通常由NGINX配置引起的问题。NGINX默认的文件上传大小是1MB,你需要在你的NGINX站点可用文件中添加以下内容。``client_max_body_size SIZE; ``其中SIZE为50M,例如对于50MB的文件。 ### Q3: 为什么我的下载超时 NGINX默认有超时值,所以如果你在NGINX后面运行Stirling-PDF,你可能需要设置一个超时值,比如添加配置 ``proxy_read_timeout 3600;``