java – PDFBox:将pdf页面转换为图像的问题
发布时间:2020-12-14 05:29:16 所属栏目:Java 来源:网络整理
导读:我的使命很简单:将每一页pdf文件转换为图像.我尝试使用icepdf开源版本来生成图像,但是它们不会使用正确的字体生成图像.所以我开始使用PDFBox.代码如下: PDDocument document = PDDocument.load(new File("testing.pdf")); ListPDPage pages = document.get
我的使命很简单:将每一页pdf文件转换为图像.我尝试使用icepdf开源版本来生成图像,但是它们不会使用正确的字体生成图像.所以我开始使用PDFBox.代码如下:
PDDocument document = PDDocument.load(new File("testing.pdf")); List<PDPage> pages = document.getDocumentCatalog().getAllPages(); for (int i = 0; i < pages.size(); i++) { PDPage singlePage = pages.get(i); BufferedImage buffImage = convertToImage(singlePage,8,12); ImageIO.write(buffImage,"png",new File(PdfUtil.DATA_OUTPUT_DIR+(count++)+".png")); } 字体看起来不错,但pdf文件中的图片看起来很晕(见附件).我查看源代码,但我仍然没有线索如何解决它.你们有什么想法吗?请帮忙.谢谢!! 解决方法
使用pdfbox将PDF文件转换为图像.
下载此文件并将其粘贴到Documents文件夹中. 例: package com.pdf.pdfbox.test; import java.awt.HeadlessException; import java.awt.Toolkit; import java.awt.image.BufferedImage; import java.io.File; import java.util.List; import org.apache.pdfbox.pdmodel.PDDocument; import org.apache.pdfbox.pdmodel.PDPage; import org.apache.pdfbox.util.PDFImageWriter; public class ConvertPDFPageToImageWithoutText { public static void main(String[] args) { try { String oldPath = "C:/Documents/04-Request-Headers.pdf"; File oldFile = new File(oldPath); if (oldFile.exists()) { PDDocument document = PDDocument.load(oldPath); @SuppressWarnings("unchecked") List<PDPage> list = document.getDocumentCatalog().getAllPages(); String fileName = oldFile.getName().replace(".pdf",""); String imageFormat = "png"; String password = ""; int startPage = 1; int endPage = list.size(); String outputPrefix = "C:/Documents/PDFCopy/";//converted images saved here File file = new File(outputPrefix); if (!file.exists()) { file.mkdirs(); } int imageType = 24; String color = "rgb"; int resolution; try { resolution = Toolkit.getDefaultToolkit().getScreenResolution(); } catch (HeadlessException e) { resolution = 96; } if ("bilevel".equalsIgnoreCase(color)) { imageType = BufferedImage.TYPE_BYTE_BINARY; } else if ("indexed".equalsIgnoreCase(color)) { imageType = BufferedImage.TYPE_BYTE_INDEXED; } else if ("gray".equalsIgnoreCase(color)) { imageType = BufferedImage.TYPE_BYTE_GRAY; } else if ("rgb".equalsIgnoreCase(color)) { imageType = BufferedImage.TYPE_INT_RGB; } else if ("rgba".equalsIgnoreCase(color)) { imageType = BufferedImage.TYPE_INT_ARGB; } else { System.err.println("Error: the number of bits per pixel must be 1,8 or 24."); } PDFImageWriter pdfImageWriter = new PDFImageWriter(); boolean imageWriter = pdfImageWriter.writeImage(document,imageFormat,password,startPage,endPage,outputPrefix + fileName,imageType,resolution); if (!imageWriter) { throw new Exception("No writer found for format '" + imageFormat + "'"); } document.close(); } else { System.err.println(oldPath +" File Can't be found"); } } catch (Exception e) { e.printStackTrace(); } } } 要么 尝试以下解决方案将pdf文件转换为图像格式. How to Convert PDF to image with resolution in java Using PDF Renderer (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |