Java实现PDF转图片

最近工作中涉及PDF转图片的操作,经过测试,pdfbox转换后清晰度相对来说是比较高的

引入依赖

		<dependency>
			<groupId>org.apache.pdfboxgroupId>
			<artifactId>pdfboxartifactId>
			<version>2.0.20version>
		dependency>

工具类

public class PdfToImageUtil {
    /**
     * dpi越大转换后越清晰,相对转换速度越慢
     */
    private static final Integer DPI = 100;

    /**
     * 转换后的图片类型
     */
    private static final String IMG_TYPE = "png";

    /**
     * PDF转图片
     *
     * @param fileContent PDF文件的二进制流
     * @return 图片文件的二进制流
     */
    public static List<byte[]> pdfToImage(byte[] fileContent) throws IOException {
        List<byte[]> result = new ArrayList<>();
        try (PDDocument document = PDDocument.load(fileContent)) {
            PDFRenderer renderer = new PDFRenderer(document);
            for (int i = 0; i < document.getNumberOfPages(); ++i) {
                BufferedImage bufferedImage = renderer.renderImageWithDPI(i, DPI);
                ByteArrayOutputStream out = new ByteArrayOutputStream();
                ImageIO.write(bufferedImage, IMG_TYPE, out);
                result.add(out.toByteArray());
            }
        }
        return result;
    }
}

转换后的效果

Java实现PDF转图片_第1张图片

你可能感兴趣的:(常见问题解决)