Apache PDFBox 提取 pdf 某一页另存为一个 png 图片

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

Apache PDFBox 提取原 pdf 内容存入新的 pdf 文件

获取 Apache PDFBox 地址 https://pdfbox.apache.org/,目前版本 2.0.13,核心 jar 是 pdfbox-2.0.13.jar,其他还有几个 jar 可以根据需要进行导入。

这里 https://pdfbox.apache.org/download.cgi 可以下载全部的 jar 和一些命令行工具,下载 pdfbox-2.0.13-src.zip 源码可以看到文件夹 examples 里面有不少例子进行了示范。

以下代码演示了从现有的 PDF 提取某个页面,另存为 png 的操作:

/*
 * 读取 pdf,将其中的某一页另存为 png 图片
 */

package pdf;

import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.encryption.InvalidPasswordException;
import org.apache.pdfbox.rendering.ImageType;
import org.apache.pdfbox.rendering.PDFRenderer;
import org.apache.pdfbox.tools.imageio.ImageIOUtil;

public class PDFSavePNG
{

  public static void main(String[] args)
  {
    try
    {
      // 打开来源 pdf
      PDDocument pdfDocument = PDDocument.load(new File("c:/temp/组合.pdf"));
      PDFRenderer pdfRenderer = new PDFRenderer(pdfDocument);

      // 提取的页码
      int pageNumber = 0;
      // 以300 dpi 读取存入 BufferedImage 对象
      int dpi = 300;
      BufferedImage buffImage = pdfRenderer.renderImageWithDPI(pageNumber, dpi, ImageType.RGB);
      // 将 BufferedImage 写入到 png
      ImageIOUtil.writeImage(buffImage, "c:/temp/xx.png", dpi);

      // 关闭文档
      pdfDocument.close();
    }
    catch (InvalidPasswordException e)
    {
      e.printStackTrace();
    }
    catch (IOException e)
    {
      e.printStackTrace();
    }

  }

}

Q群讨论:236201801

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值