主要观点:本文介绍将 PDF 转换为单个 PNG 图像文件的方法,通过 Spring 微服务实现,包括相关 API 端点、请求和响应对象、所需包、PNG 图像生成服务代码及实现细节等。
关键信息:
- API 端点:
@RestController
类DocumentController
中createThumbnailsForPDF
方法,可接收 PDF 文件路径(可为 AWS S3 路径)或原始文件,将 PDF 转换为缩略图并返回响应。 - 包:添加
org.apache.pdfbox:pdfbox-tools:3.0.0
和net.sf.cssbox:pdf2dom:2.0.1
包,用于处理 PDF 文档。 - PNG 图像生成服务:
ThumbnailGeneratorService
类的generateThumbnail
方法,从 S3 加载 PDF 并转换为缩略图,可选择生成所有页面的缩略图,通过extDocumentService
操作 S3,可设置 DPI 控制图像质量,convertToByteArrayResource
方法将BufferedImage
转换为ByteArrayResource
。
重要细节: ThumbnailRequest
和ThumbnailResponse
类定义了请求和响应的字段。BaseController
是通用基础设施类。- 服务可返回生成的 PNG S3 文件路径,也可返回包含多个 PNG 文件的 zip 文件。
- 可渲染除
ImageType.RGB
外的其他图像类型,如ImageType.GRAY
。
结论:利用 Apache PDFBox 包创建的 Spring Boot 微服务可将 PDF 转换为 PNG 缩略图,用于各种用户界面,可通过自定义 DPI 控制图像质量。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。