从Java中的PDF提取图像
#编程 #api #java #pdf

PDF文件易于查看和读取,而内部内容可能很难修改。但是,您可能不可避免地会遇到一种情况,您需要为其他目的提取PDF文件中的图像。本文将分享如何使用java的free spire.pdf编程实现此任务。

导入依赖性(2种方法)

方法1: Download the free library并解开它。然后将spire.pdf.jar文件添加到您的项目中作为依赖项。

方法2:通过将以下配置添加到pom.xml。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
    </repository>
</repositories>
<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf.free</artifactId>
        <version>5.1.0</version>
    </dependency>
</dependencies>

示例代码

要从PDF文档中提取图像,您可以使用Spire.pdf为Java提供的 pdfpagebase.extractimages()方法。以下是完整的示例代码。

import com.spire.pdf.PdfDocument;
import com.spire.pdf.PdfPageBase;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;

public class ExtractImage {
    public static void main(String[] args) throws IOException {
        //create a PdfDocument instance
        PdfDocument doc = new PdfDocument();

        //load a PDF sample file
        doc.loadFromFile("template.pdf");

        //declare an int variable
        int index = 0;

        //loop through all pages
        for (PdfPageBase page : (Iterable<PdfPageBase>) doc.getPages()) {

            //extract images  from the given page
            for (BufferedImage image : page.extractImages()) {

                //specify the file path and name
                File output = new File("C:\\Users\\Administrator\\Desktop\\ExtractedImages\\" + String.format("Image_%d.png", index++));

                //save images as .png files
                ImageIO.write(image, "PNG", output);
            }
        }
    }
}

ExtractPDFImage