将PDF文件转换成PNG图片

简介: 有这样一个业务场景:需要在 WEB 页面中浏览 PDF 文件,PDF 文件存储在 FTP 服务器上,即 PDF 文件对外提供的访问地址的协议是 ftp 的。有如下几个硬条件、软需求的要求:- WEB 页面本身的可视区域不是很大;- 不想弹出对话框展示 PDF 文件;- 谷歌浏览器不支持在 http 协议的页面里内嵌 ftp 协议的路径;- 在 WEB 页面中使用系统默认的 PDF 阅读器的体验不是很好,滚动条啦,边框啦。

将一个多页PDF文件转换成一个PNG图片文件

有这样一个业务场景:需要在 WEB 页面中浏览 PDF 文件,PDF 文件存储在 FTP 服务器上,即 PDF 文件对外提供的访问地址的协议是 ftp 的。有如下几个硬条件、软需求的要求:

  • WEB 页面本身的可视区域不是很大;
  • 不想弹出对话框展示 PDF 文件;
  • 谷歌浏览器不支持在 http 协议的页面里内嵌 ftp 协议的路径;
  • 在 WEB 页面中使用系统默认的 PDF 阅读器的体验不是很好,滚动条啦,边框啦。

总之,很复杂吧。

最后考虑到 WEB 页面展示图片比较方便,就想到了将 PDF 文件转换成 PNG 图片展示这种方案。

下面是将 PDF 文件转换成 PNG 图片的示例代码。

  1. Maven 依赖
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.24</version>
</dependency>
  1. Demo 示例
// 加载PDF文件
File file = new File("D:/deploy.pdf");
PDDocument document = PDDocument.load(file);
// Instantiating the PDFRenderer class
PDFRenderer renderer = new PDFRenderer(document);
int number = document.getNumberOfPages();
List<BufferedImage> images = Lists.newArrayList();
// PDF文件总高度
int sumHeight = 0;
int width = 0;
for (int i = 0; i < number; i++) {
    // 渲染图片
    BufferedImage image = renderer.renderImageWithDPI(i, 300, ImageType.RGB);
    sumHeight += image.getHeight();
    int imageWidth = image.getWidth();
    if (imageWidth > width) {
        width = imageWidth;
    }
    images.add(image);
}
// 需要生成的图片
BufferedImage newImage = new BufferedImage(width, sumHeight, BufferedImage.TYPE_INT_ARGB);
Graphics2D g2 = newImage.createGraphics();
g2.setBackground(Color.WHITE);
g2.setColor(Color.BLACK);
g2.fillRect(0, 0, width, sumHeight);
int y = 0;
for (int i = 0; i < images.size(); i++) {
    g2.drawImage(images.get(i), null, 0, y);
    y += images.get(i).getHeight();
}
g2.dispose();
// 将图片保存到文件
ImageIO.write(newImage, "PNG", new File("D:/deploy-multiple.jpg"));
// 关闭文档
document.close();
目录
相关文章
|
3月前
|
机器学习/深度学习 文字识别 Java
Python实现PDF图片OCR识别:从原理到实战的全流程解析
本文详解2025年Python实现扫描PDF文本提取的四大OCR方案(Tesseract、EasyOCR、PaddleOCR、OCRmyPDF),涵盖环境配置、图像预处理、核心识别与性能优化,结合财务票据、古籍数字化等实战场景,助力高效构建自动化文档处理系统。
959 0
|
8月前
|
存储 JSON API
如何将 Swagger 文档导出为 PDF 文件
你会发现自己可能需要将 Swagger 文档导出为 PDF 或文件,以便于共享和存档。在这篇博文中,我们将指导你完成将 Swagger 文档导出为 PDF 格式的过程。
|
5月前
|
C#
【PDF提取内容改名】批量提取PDF指定区域内容重命名PDF文件,PDF自动提取内容命名的方案和详细步骤
本工具可批量提取PDF中的合同编号、日期、发票号等关键信息,支持PDF自定义区域提取并自动重命名文件,适用于合同管理、发票处理、文档归档和数据录入场景。基于iTextSharp库实现,提供完整代码示例与百度、腾讯网盘下载链接,助力高效处理PDF文档。
762 40
|
5月前
|
编译器 Python
如何利用Python批量重命名PDF文件
本文介绍了如何使用Python提取PDF内容并用于文件重命名。通过安装Python环境、PyCharm编译器及Jupyter Notebook,结合tabula库实现PDF数据读取与处理,并提供代码示例与参考文献。
|
7月前
|
人工智能 搜索推荐 算法
PDF 转 JPG 图片小工具:CodeBuddy 助力解决转换痛点
在 PDF 转 JPG 的实际应用中,用户普遍面临转换质量差、批量处理效率低、格式兼容性不足以及编程实现困难等痛点。而 CodeBuddy 凭借智能代码生成与优化、实时错误诊断修复、助力代码学习拓展,以及支持多场景适配与个性化定制等强大的 AI 编程能力,精准直击这些难题。使用 CodeBuddy 开发 Python PDF 转 JPG 小工具,能够有效提升转换效率与质量,降低开发门槛和成本,为用户带来高效、优质的文件格式转换体验。
274 16
|
7月前
|
人工智能 算法 安全
使用CodeBuddy实现批量转换PPT、Excel、Word为PDF文件工具
通过 CodeBuddy 实现本地批量转换工具,让复杂的文档处理需求转化为 “需求描述→代码生成→一键运行” 的极简流程,真正实现 “技术为效率服务” 的目标。感兴趣的快来体验下把
392 10
|
6月前
|
人工智能 开发工具 开发者
【HarmonyOS 5】鸿蒙应用实现发票扫描、文档扫描输出PDF图片或者表格的功能
HarmonyOS 系统提供的核心场景化视觉服务,旨在帮助开发者快速实现移动端文档数字化功能。
336 0
|
6月前
|
数据采集 存储 API
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件
|
9月前
|
人工智能 文字识别 自然语言处理
1.6K star!这个开源文本提取神器,5分钟搞定PDF/图片/Office文档!
Kreuzberg 是一个基于 Python 的文本提取库,支持从 PDF、图像、Office 文档等 20+ 格式中提取文本内容。采用 MIT 开源协议,具备本地处理、异步架构、智能 OCR 等特性,特别适合需要隐私保护的文档处理场景。
1118 1
|
10月前
|
人工智能 编解码 文字识别
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具
OCRmyPDF 是一款开源命令行工具,专为将扫描的 PDF 文件转换为可搜索、可复制的文档。支持多语言、图像优化和多核处理。
1169 17
OCRmyPDF:16.5K Star!快速将 PDF 文件转换为可搜索、可复制的文档的命令行工具