将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();
目录
相关文章
|
1月前
|
人工智能 文字识别 数据挖掘
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
MarkItDown 是微软开源的多功能文档转换工具,支持将 PDF、PPT、Word、Excel、图像、音频等多种格式的文件转换为 Markdown 格式,具备 OCR 文字识别、语音转文字和元数据提取等功能。
211 9
MarkItDown:微软开源的多格式转Markdown工具,支持将PDF、Word、图像和音频等文件转换为Markdown格式
|
1月前
|
JavaScript
jquery图片和pdf文件预览插件
EZView.js是一款jquery图片和pdf文件预览插件。EZView.js可以为图片和pdf格式文件生成在线预览效果。支持的文件格式有pdf、jpg、 png、jpeg、gif。
54 16
|
1月前
|
编解码 人工智能 文字识别
用PDF转换图片的方式弥补通义千问在扫描版PDF支持方面的缺失
当前通义千问Web版和本地版qwen-VL在处理扫描版PDF时均无法直接识别,导致实际应用中处理大量扫描PDF的需求难以满足。为此,通过使用Python的pdf2image库,可将PDF文件转换为图片,再进行OCR处理,实现解决方案。文中提供了具体的代码示例,展示了如何将PDF文件的每一页转换成图片,并保存至指定文件夹,为后续的OCR处理做好准备。
|
3月前
|
Java Apache Maven
将word文档转换成pdf文件方法
在Java中,将Word文档转换为PDF文件可采用多种方法:1) 使用Apache POI和iText库,适合处理基本转换需求;2) Aspose.Words for Java,提供更高级的功能和性能;3) 利用LibreOffice命令行工具,适用于需要开源解决方案的场景。每种方法都有其适用范围,可根据具体需求选择。
|
3月前
|
Java Apache Maven
Java将word文档转换成pdf文件的方法?
【10月更文挑战第13天】Java将word文档转换成pdf文件的方法?
993 1
|
3月前
|
索引 Python
PDF文件页面提取操作小指南
PDF文件页面提取操作小指南
121 4
|
3月前
|
计算机视觉 Python
Python操作PDF文件
Python操作PDF文件
53 1
|
3月前
|
JavaScript 前端开发 容器
Vue生成PDF文件攻略:html2canvas与jspdf联手,中文乱码与自动换行难题攻克
Vue生成PDF文件攻略:html2canvas与jspdf联手,中文乱码与自动换行难题攻克
338 0
|
5月前
|
XML 缓存 JSON
为什么浏览器中有些图片、PDF等文件点击后有些是预览,有些是下载
为什么浏览器中有些图片、PDF等文件点击后有些是预览,有些是下载
325 0
|
3月前
|
Python
Python对PDF文件页面的旋转和切割
Python对PDF文件页面的旋转和切割
61 3

热门文章

最新文章