菜单

主要功能

相关源文件

本页面全面概述了 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

    • 使用 LibreOffice 进行高质量转换

来源

从 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 等格式

    • 使用 LibreOffice 进行可靠转换
  • 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 中的压缩算法实现了复杂的方法来:

  1. 查找文档中的所有图像(直接图像和嵌套在表单 XObjects 中的图像)
  2. 创建基于哈希的识别系统以识别重复图像
  3. 为每个独特的图像创建优化版本
  4. 将所有实例替换为压缩版本
  5. 跟踪压缩统计数据以供报告

来源

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 集成: 与外部脚本和系统集成

来源