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....
·
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
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献2条内容
所有评论(0)