前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java 环境下用 PDFBox 实现 PDF 文档转换 JPG 图片的功能

Java 环境下用 PDFBox 实现 PDF 文档转换 JPG 图片的功能

作者头像
魏杰
发布2023-03-27 09:50:37
2.3K0
发布2023-03-27 09:50:37
举报

PDFBox 是一个用于处理 PDF 文档的开源 Java 工具库。该项目允许创建新的 PDF 文档、操作现有文档以及从文档中提取内容。

我们下面要通过 PDFBox 来演示如何将一个 PDF 文件转换成一个 JPG 文件。代码如下:

代码语言:javascript
复制
package com.sunbloger.pdf2jpg.controller;

import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;

import javax.imageio.ImageIO;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
@RequestMapping(value = "/japi")
public class render {

    @RequestMapping(value = "/convert", method = RequestMethod.GET)
    public @ResponseBody Map<String, Object> convert () throws Exception
    {
        Map<String, Object> responseMap = new HashMap<String, Object>();
        
        PDDocument doc = null;
        InputStream stream = null;
        FileOutputStream fos = null;
        ByteArrayOutputStream baos = null;
        
        try {

            // 读入 PDF 文件
            stream = new FileInputStream("D:\\workspace-springboot\\1.pdf");
            doc = PDDocument.load(stream);

            // 渲染
            PDFRenderer pdfRenderer = new PDFRenderer(doc);
            BufferedImage bufferedImage = pdfRenderer.renderImageWithDPI(0, 300);
            pdfRenderer = null;

            // 写入 JPG 文件
            baos = new ByteArrayOutputStream();
            ImageIO.write(bufferedImage, "jpg", baos);
            byte[] dataList = baos.toByteArray();
            baos = null;
            File file = new File("D:\\workspace-springboot\\1.jpg");
            fos = new FileOutputStream(file);
            fos.write(dataList);
            fos.close();
            fos = null;
            file = null;
            responseMap.put("suc", 1);
            responseMap.put("info", "convert sucess.");
        } catch (Exception e) {
            throw e;
        }
        
        return responseMap;
    }
}

上述代码用 SpringBoot 构建了一个 PDF 转 JPG 的接口,为了方便演示,PDF 和 JPG 文件地址均采用了本地路径,开发者可以自行调整代码,例如改为通过 POST 请求传入 PDF 文件。

pom.xml文件中添加 PDFBox 信息(推荐使用目前 2.0 最新的 2.0.27 版本):

代码语言:javascript
复制
<dependency>
    <groupId>org.apache.pdfbox</groupId>
    <artifactId>pdfbox</artifactId>
    <version>2.0.27</version>
</dependency>

相关内容:

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-03-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 相关内容:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档