本页面介绍了 Stirling-PDF 中的 PDF 处理系统,包括应用程序如何通过原生处理和外部工具集成来处理各种 PDF 操作。它涵盖了用于操作 PDF 文件的核心架构、实用工具、转换能力和变换操作。
Stirling-PDF 的 PDF 处理基于模块化架构,该架构将原生 Java PDF 操作与外部工具集成相结合,以实现专业化操作。
核心 PDF 处理流程图
来源
`PdfUtils` 类是 Stirling-PDF 中 PDF 处理的中央引擎。它提供了多种 PDF 操作方法,包括
| 方法 | 目的 | 文件位置 |
|---|---|---|
convertFromPdf() | 将 PDF 页面转换为图片 | PdfUtils.java129-265 |
convertPdfToPdfImage() | 将 PDF 转换为只包含图片的 PDF | PdfUtils.java274-294 |
imageToPdf() | 将图片转换为 PDF | PdfUtils.java313-354 |
addImageToDocument() | 将图片添加到 PDF 文档 | PdfUtils.java357-405 |
overlayImage() | 在 PDF 页面上叠加图片 | PdfUtils.java407-444 |
textToPageSize() | 将文本表示转换为 PDRectangle 大小 | PdfUtils.java43-66 |
getAllImages() | 从 PDF 资源中提取所有图片 | PdfUtils.java68-83 |
来源
Stirling-PDF 集成了多种外部工具,用于高级 PDF 处理。`ProcessExecutor` 类管理这些外部进程,提供
ProcessExecutor 系统图
`ProcessExecutor` 为不同的外部工具使用不同的信号量限制和超时设置
| 进程类型 | 目的 |
|---|---|
| LIBRE_OFFICE | 用于 PDF 到 Office 格式转换 |
| PDFTOHTML | 用于 PDF 到 HTML 转换 |
| PYTHON_OPENCV | 用于图片处理操作 |
| WEASYPRINT | 用于 HTML/URL 到 PDF 转换 |
| TESSERACT | 用于 OCR 操作 |
| QPDF | 用于 PDF 优化 |
| CALIBRE | 用于电子书转换 |
来源
Stirling-PDF 提供了广泛的 PDF 格式相互转换功能。
PDF 转换流程图
图片到 PDF:
HTML 到 PDF:
Markdown 到 PDF:
网站到 PDF:
PDF 到图片:
PDF 到 HTML:
PDF 到 Markdown:
PDF 到 Office 格式:
来源
Stirling-PDF 提供了多种 PDF 变换操作,用于处理现有 PDF。
PDF 变换操作图
删除页面:
重新排列页面:
拆分 PDF:
来源
`PdfUtils.convertFromPdf()` 中的 PDF 到图片转换过程支持
PDF 到图片转换流程
`PdfUtils.imageToPdf()` 中的图片到 PDF 转换过程支持
图片到 PDF 转换流程
来源
WeasyPrint 用于 HTML 和 URL 到 PDF 的转换
HTML 到 PDF 转换
URL 到 PDF 转换
LibreOffice 用于 PDF 到 Office 格式的转换
`CompressController` 中使用 QPDF 进行 PDF 优化
来源
Stirling-PDF 的 PDF 处理系统通过 Apache PDFBox 将原生 Java PDF 操作与外部工具集成相结合,以实现专业化操作。其架构是模块化的,其中 `PdfUtils` 类作为 PDF 操作的中央实用工具,而 `ProcessExecutor` 则管理外部工具的执行。
该系统支持广泛的 PDF 操作,包括
这种模块化设计使得部署选项更加灵活,并能够在提供统一的 PDF 处理操作界面的同时,利用各种专业工具的优势。