如何通过Java提取PDF中的图片
PDF文档格式具有固定的文档布局,可以避免他人对其进行随意更改。但这也在一定程度上影响了我们对PDF的操作,例如,当我们需要将PDF文档中的图片用于其他地方时。Free Spire.PDF for Java可以帮助我们通过Java语言提取PDF文档中的图片。下面是详细操作步骤和代码。
安装Spire.XLS.Jar
方法一:
如果您使用的是maven,可以通过添加以下代码到项目的pom.xml文件中,将 JAR文件导入到应用程序中。
<repositories> <repository> <id>com.e-iceblue</id> <url>https://repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.xls.free</artifactId> <version>5.1.0</version> </dependency> </dependencies>
方法二:
如果您没有使用maven,则可以从此链接下载Free Spire.XLS for Java,下载完成后,将下载包进行解压;然后在IDEA中创建一个新项目,依次点击“文件”(File),“项目结构”(Project Structure),“组件”(Modules),“依赖项”(Dependencies),再点击右方绿色“+”下的第一个选项“JAR文件或路径”(JARs or Directories),找到之前解压好的文件,并将其中的lib文件夹下的Spire.XLS.jar文件导入到项目中。
从 PDF 文档中提取图像
- 创建一个 PdfDocument 实例并使用 PdfDocument.loadFromFile() 方法加载 PDF 示例文档。
- 遍历文档的所有页面,并使用 PdfPageBase.extractImages()方法从给定页面中提取图像。
- 指定输出文档的路径和名称。
- 将图像另存为.png文件。
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 { //创建一个 PdfDocument 实例 PdfDocument doc = new PdfDocument(); //加载 PDF 示例文档 doc.loadFromFile("sample.pdf"); //定义一个变量 int index = 0; //遍历所有页面 for (PdfPageBase page : (Iterable<PdfPageBase>) doc.getPages()) { //从所给页面提取图片 for (BufferedImage image : page.extractImages()) { //指定输出文档的路径和名称 File output = new File("C:\\Users\\Administrator\\Desktop\\output\\" + String.format("Image_%d.png", index++)); //将图像另存为.png文件 ImageIO.write(image, "PNG", output); } } } }