主要功能
相关源文件
本页面全面概述了 Stirling-PDF 的核心功能,Stirling-PDF 是一款功能强大的本地托管网页版 PDF 处理工具。它详细介绍了构成该系统功能的PDF操作、转换能力、安全功能和高级功能等广泛特性。
有关硬件和软件要求的信息,请参阅系统要求。
PDF 操作类别
Stirling-PDF 提供 50 多种 PDF 操作,这些操作按逻辑类别组织,提供了全面的 PDF 处理工具包。这些操作通过代码库中的各种控制器和实用程序类实现。
来源
页面操作
页面操作构成了 Stirling-PDF 的核心功能,为用户提供了操作 PDF 文档结构和布局的能力。
合并、拆分和提取
- 合并 PDF: 将多个 PDF 文件合并为一个文档
- 拆分 PDF: 在指定页码处或按单页拆分 PDF 文件
- 提取页面: 从 PDF 文档中提取特定页面
拆分功能在 SplitPDFController 中实现,它允许将 PDF 拆分为单独的文档,并将其输出为包含多个页面的 ZIP 文件。
来源
重组和重新排列
- 重新排列页面: 更改 PDF 文档中页面的顺序
- 移除页面: 从 PDF 中删除特定页面
- 多页布局: 将 PDF 格式化为多页布局
RearrangePagesPDFController 使用针对不同排序类型的专用方法处理这些操作
| 排序类型 | 描述 |
|---|
| REVERSE_ORDER | 反转文档的页面顺序 |
| DUPLEX_SORT | 为双面打印组织页面 |
| BOOKLET_SORT | 为小册子打印排列页面 |
| SIDE_STITCH_BOOKLET_SORT | 为侧边装订的小册子排列页面 |
| ODD_EVEN_SPLIT | 分离奇数页和偶数页 |
| ODD_EVEN_MERGE | 合并奇数页和偶数页 |
| REMOVE_FIRST | 移除首页 |
| REMOVE_LAST | 移除末页 |
| REMOVE_FIRST_AND_LAST | 同时移除首页和末页 |
| DUPLICATE | 将每页复制指定次数 |
来源
视觉调整
- 旋转 PDF: 以 90 度增量旋转页面
- 缩放页面内容: 按设定的百分比调整内容大小
- 裁剪 PDF: 裁剪 PDF 页面的可见区域
- 调整对比度: 修改 PDF 内容的对比度
来源
转换功能
Stirling-PDF 提供了广泛的 PDF 格式转换功能,通过其集成层利用各种外部工具。
来源
转换为 PDF
-
图片转 PDF: 将 JPEG、PNG、TIFF 等格式的图片转换为 PDF,并提供多种适配选项
- 在
PdfUtils.imageToPdf() 中实现,提供以下选项:
- 适配选项(fillPage、maintainAspectRatio、fitDocumentToImage)
- 根据图像方向自动旋转
- 颜色类型转换
-
HTML 转 PDF: 将 HTML 文件或包含 HTML 和资产的 ZIP 存档转换为 PDF
- 通过
FileToPdf.convertHtmlToPdf() 方法使用 Weasyprint
- 包括用于安全的 HTML 清理功能
-
Markdown 转 PDF: 通过 HTML 中间格式将 Markdown 文档转换为 PDF
- 使用 CommonMark 进行 Markdown 到 HTML 的转换,使用 Weasyprint 进行 HTML 到 PDF 的转换
-
URL 转 PDF: 将网页直接转换为 PDF 文档
- 在转换前验证 URL 格式和可访问性
- 通过 ProcessExecutor 使用 Weasyprint
-
Office 转 PDF: 将各种文档格式(DOC、DOCX、PPT 等)转换为 PDF
来源
从 PDF 转换
-
PDF 转图片: 将 PDF 转换为各种图片格式,包括 PNG、JPEG、TIFF、WebP
- 可选择单张图片(所有页面合并为一张图片)或多张图片(每页一张)
- 颜色类型选项:RGB、灰度或黑白
- 可自定义 DPI 设置
-
PDF 转 HTML: 将 PDF 转换为 HTML 文件,保留内容结构
- 通过 ProcessExecutor 使用 pdftohtml 工具
- 输出包含 HTML 和相关资产的 ZIP 文件
-
PDF 转 Office 格式: 将 PDF 转换为 DOC、DOCX、ODT、PPT、PPTX、RTF 等格式
-
PDF 转 Markdown: 通过 HTML 中间格式将 PDF 转换为 Markdown 格式
- 使用 pdftohtml 工具将 PDF 转换为 HTML
- 使用 FlexmarkHtmlConverter 将 HTML 转换为 Markdown
-
PDF 转文本: 从 PDF 文档中提取纯文本内容
来源
安全特性
Stirling-PDF 提供多种安全操作来保护、安全化和清理 PDF 文档。
文档保护
- 添加密码: 对 PDF 文档应用密码保护
- 移除密码: 移除现有密码保护(需要当前密码)
- 更改权限: 修改文档权限(打印、编辑、复制等)
文档安全
- 修订: 从 PDF 中永久删除敏感内容
- 清理 PDF: 移除潜在有害内容、元数据和隐藏信息
- 证书签名: 使用证书对 PDF 进行数字签名
- 签署 PDF: 向 PDF 文档添加可视化签名
- 显示/检测嵌入式 JavaScript: 分析 PDF 以查找潜在恶意脚本
来源
高级特性
Stirling-PDF 包含用于专业 PDF 任务和工作流自动化的复杂功能。
压缩和优化
Stirling-PDF 中的 PDF 压缩系统通过以下方式优化 PDF 文件大小:
- 降低图像质量和尺寸
- 适当时将图像转换为灰度
- 通过 QPDF 使用专用优化技术
CompressController 中的压缩算法实现了复杂的方法来:
- 查找文档中的所有图像(直接图像和嵌套在表单 XObjects 中的图像)
- 创建基于哈希的识别系统以识别重复图像
- 为每个独特的图像创建优化版本
- 将所有实例替换为压缩版本
- 跟踪压缩统计数据以供报告
来源
OCR 处理
- 针对扫描文档的光学字符识别
- 将基于图像的 PDF 转换为可搜索文本
- 通过 ProcessExecutor 集成使用 Tesseract OCR 引擎
来源
自动化流程
- 自定义“流程”以在自动化队列中运行多个功能
- 允许创建用于批处理的工作流序列
- 支持与外部脚本集成的 API
来源
其他高级操作
- 水印: 为 PDF 添加文本或图像水印
- 比较 PDF: 识别文档之间的差异
- 提取图像: 从 PDF 文件中提取嵌入图像
- 移除图像: 从 PDF 文档中移除所有图像
- 添加页码: 插入自定义页码
- 自动重命名文件: 检测 PDF 页眉文本以自动命名文件
- PDF/A 转换: 使用 LibreOffice 转换为归档 PDF 格式
- 元数据编辑: 查看和修改文档元数据
- 展平 PDF: 将交互式元素转换为静态内容
来源
国际化
Stirling-PDF 具有全面的国际化 (i18n) 支持,使其在全球范围内可供用户使用。
该系统目前支持 39 种语言,完成度各不相同。语言在一个翻译忽略列表中进行跟踪,该列表指定了每种语言不应翻译的字符串。
来源
翻译进度
每种语言的翻译进度都在 README 中跟踪和显示,大多数语言的翻译覆盖率达到 80% 以上。主要统计数据包括:
- 7 种语言翻译覆盖率达 95%+
- 23 种语言翻译覆盖率达 90%+
- 31 种语言翻译覆盖率达 80%+
来源
Stirling-PDF 集成了多种外部工具和库,以提供其全面的功能集。
ProcessExecutor 类管理外部工具的执行,具有以下功能:
- 基于信号量的每种工具类型并发控制
- 可配置的超时设置
- 实时输出处理
- 错误处理和报告
外部工具通过定义的进程类型访问
- LIBRE_OFFICE: 用于文档格式转换
- TESSERACT: 用于 OCR 处理
- WEASYPRINT: 用于 HTML/Markdown 到 PDF 的转换
- QPDF: 用于 PDF 压缩和优化
- PDFTOHTML: 用于 PDF 到 HTML/Markdown 的转换
- PYTHON_OPENCV: 用于图像处理(WebP 转换)
- CALIBRE: 用于电子书转换
来源
Stirling-PDF 包含多项性能优化
- 并行文件处理和下载: 高效处理多个文件
- 内存管理: 文件仅在任务执行期间临时存在于服务器内存中
- 资源清理: 处理后自动清理临时文件
- 常见操作缓存: 提高重复任务的性能
- 信号量限制: 控制并发外部进程执行以防止资源耗尽
来源
用户体验功能
- 深色模式支持: 在不同光照条件下改善视觉舒适度
- 自定义下载选项: 灵活的输出文件处理
- 多工具界面: 在一个会话中执行多项操作
- 流程自动化: 创建 PDF 操作序列作为自动化工作流
- API 集成: 与外部脚本和系统集成
来源