# 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
[](https://hub.docker.com/r/frooodle/s-pdf)
[](https://discord.gg/Cn8pWhQRxZ)
[](https://github.com/Stirling-Tools/Stirling-PDF/)
[](https://github.com/Stirling-Tools/stirling-pdf)
这是一个强大的,本地托管的基于web的PDF操作工具,使用Docker。它使您能够对PDF文件执行各种操作,包括拆分、合并、转换、重组、添加图像、旋转、压缩等。这个本地托管的web应用程序已经发展到包含一套全面的功能,满足您所有的PDF需求。
Stirling PDF不会发起任何用于记录保存或跟踪目的的出站呼叫。
所有文件和pdf要么只存在于客户端,要么只在任务执行期间驻留在服务器内存中,要么临时驻留在仅用于执行任务的文件中。到那时,用户下载的任何文件都将从服务器上删除。

## 🎉直接使用
[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)
对于那些不介意空间优化的人来说,只需使用最新的标签。



请注意,在下面的示例中,您可能需要根据需要更改卷路径,当前示例将它们安装到当前工作目录
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) |  |
| Basque (Euskara) (eu_ES) |  |
| Bulgarian (Български) (bg_BG) |  |
| Catalan (Català) (ca_CA) |  |
| Croatian (Hrvatski) (hr_HR) |  |
| Czech (Česky) (cs_CZ) |  |
| Danish (Dansk) (da_DK) |  |
| Dutch (Nederlands) (nl_NL) |  |
| English (English) (en_GB) |  |
| English (US) (en_US) |  |
| French (Français) (fr_FR) |  |
| German (Deutsch) (de_DE) |  |
| Greek (Ελληνικά) (el_GR) |  |
| Hindi (हिंदी) (hi_IN) |  |
| Hungarian (Magyar) (hu_HU) |  |
| Indonesia (Bahasa Indonesia) (id_ID) |  |
| Irish (Gaeilge) (ga_IE) |  |
| Italian (Italiano) (it_IT) |  |
| Japanese (日本語) (ja_JP) |  |
| Korean (한국어) (ko_KR) |  |
| Norwegian (Norsk) (no_NB) |  |
| Polish (Polski) (pl_PL) |  |
| Portuguese (Português) (pt_PT) |  |
| Portuguese Brazilian (Português) (pt_BR) |  |
| Romanian (Română) (ro_RO) |  |
| Russian (Русский) (ru_RU) |  |
| Serbian Latin alphabet (Srpski) (sr_LATN_RS) |  |
| Simplified Chinese (简体中文) (zh_CN) |  |
| Slovakian (Slovensky) (sk_SK) |  |
| Spanish (Español) (es_ES) |  |
| Swedish (Svenska) (sv_SE) |  |
| Thai (ไทย) (th_TH) |  |
| Traditional Chinese (繁體中文) (zh_TW) |  |
| Turkish (Türkçe) (tr_TR) |  |
| Ukrainian (Українська) (uk_UA) |  |
| Vietnamese (Tiếng Việt) (vi_VN) |  |
## 🎫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;``