菜单

核心组件

相关源文件

本页面提供了构成Stirling-PDF骨干网的主要组件的概述。它侧重于核心架构元素,包括控制器、实用程序和服务,这些元素为应用程序的功能提供动力。有关PDF处理的具体信息,请参阅PDF处理

系统概览

Stirling-PDF建立在分层架构之上,该架构提供了清晰的关注点分离,并支持应用程序提供的广泛的PDF处理功能。

高层架构

来源

控制器层

控制器层处理HTTP请求,管理用户交互,并协调PDF的处理。Stirling-PDF在Web控制器(提供HTML页面)和API控制器(处理操作)之间进行了清晰的划分。

Web控制器组织

来源

Web控制器负责页面渲染和返回相应的HTML模板。它们遵循一种一致的模式,其中每个端点方法

  1. 在模型中设置当前页面属性
  2. 返回相应的模板名称
  3. 可选地添加模板所需的其他模型属性

API控制器组织

来源

API控制器负责实际的PDF处理操作。它们遵循一致的模式

  • 使用@RestController@RequestMapping注解来定义API端点
  • 接受带有MultipartFile参数的文件上传
  • 使用PdfUtils实用程序类来处理PDF文件
  • 将处理后的文件作为可下载的响应返回

核心工具

实用程序为应用程序中的可重用功能提供支持。最重要的实用程序类是PdfUtils,它负责PDF操作。

PdfUtils

PdfUtils类是PDF操作的中心实用程序,它提供了以下方法:

来源

PdfUtils中的关键方法包括:

  • textToPageSize:将文本表示(例如“A4”)转换为PDFBox的PDRectangle大小。
  • getAllImages:从PDF资源中提取图像。
  • convertFromPdf:将PDF页面转换为具有各种选项的图像。
  • convertPdfToPdfImage:将PDF渲染为图像,并从这些图像创建新的PDF。
  • imageToPdf:将各种图像格式转换为PDF。

Web响应实用程序

WebResponseUtils类提供了将处理后的数据转换为具有适当标头和内容类型的HTTP响应的方法。

进程执行器

ProcessExecutor实用程序处理与LibreOffice、Tesseract OCR和其他外部工具的集成,并管理进程执行和输出处理。

前端组件

前端使用Thymeleaf模板、CSS和JavaScript的组合来创建用户界面。

模板结构

来源

模板遵循模块化结构

  • 通用片段在页面之间重用
  • 名为common.html的片段包含共享的头部元素和脚本
  • 特定功能的页面包括所需的片段并添加其独特内容

关键JavaScript组件

多个JavaScript文件处理客户端功能

  1. fileInput.js:管理文件选择、拖放、文件验证和选定文件的显示。
  2. downloader.js:处理文件下载、进度跟踪和错误处理。
  3. merge.js:为PDF合并功能提供特定功能。

来源

配置与初始化

构建配置

来源

该应用程序通过以下方式进行配置:

  1. Gradle构建系统定义依赖项和插件
  2. 用于应用程序设置的YAML配置
  3. 用于国际化和消息的属性文件
  4. 用于专门功能的Java配置类

Google Drive集成(Pro功能)

对于Pro用户,Stirling-PDF提供Google Drive集成。

来源

国际化系统

Stirling-PDF包含全面的国际化支持。

来源

国际化系统为整个应用程序提供本地化文本。

  • 每个支持语言的属性文件。
  • Thymeleaf模板使用带有#{key}语法的消息键。
  • 通过UI动态切换语言。

总结

Stirling-PDF的核心组件构成了一个结构良好、关注点分离的应用。

  1. 控制器层:处理Web请求并协调PDF操作。
  2. 核心实用程序:为PDF操作和进程执行提供可重用的功能。
  3. 前端组件:提供响应式和直观的用户界面。
  4. 配置:管理应用程序设置和企业功能。
  5. 国际化:支持多语言。

这些组件共同创建了一个全面的PDF处理平台,可以部署在各种环境中,并扩展其他功能。