欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java開發(fā)之將PDF轉(zhuǎn)換為多種圖片格式的方法指南

 更新時間:2025年09月19日 08:22:16   作者:用戶372157426135  
本文將詳細介紹如何使用 Java 將 PDF 轉(zhuǎn)換為 PNG、JPG、TIFF 以及 SVG 格式,同時給出完整示例代碼和解析,有需要的小伙伴可以參考一下

引言

在實際開發(fā)中,PDF 文件廣泛用于存儲合同、報告、發(fā)票以及技術(shù)文檔。然而,有時我們需要將 PDF 轉(zhuǎn)換為圖片格式,以便在網(wǎng)頁上顯示、生成縮略圖、進行圖像處理或打印。例如:

  • 在網(wǎng)頁或系統(tǒng)中展示 PDF 頁面預(yù)覽;
  • 將發(fā)票或報表轉(zhuǎn)換為 PNG/JPG 方便打印或嵌入其他文檔;
  • 對 PDF 頁面進行 OCR 或圖像處理。

借助編程方式批量處理 PDF 轉(zhuǎn)圖片,能夠大幅提高效率,保證輸出一致性。本文將詳細介紹如何使用 Java 將 PDF 轉(zhuǎn)換為 PNG、JPG、TIFF 以及 SVG 格式,同時給出完整示例代碼和解析。

環(huán)境準備

引入 Spire.PDF for Java

Spire.PDF for Java 是一個功能強大的 PDF 操作庫,支持 PDF 的讀取、編輯、轉(zhuǎn)換等多種功能。

如果項目使用 Maven,可以在 pom.xml 中添加:

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.cn/repository/maven-public/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>e-iceblue</groupId>
        <artifactId>spire.pdf</artifactId>
        <version>11.8.3</version>
    </dependency>
</dependencies>

非 Maven 項目可直接下載 JAR 包并導(dǎo)入項目。引入完成后即可使用 import com.spire.pdf.* 操作 PDF 文檔。

PDF 轉(zhuǎn) PNG / JPG

使用場景及說明:

當我們需要在網(wǎng)頁或系統(tǒng)中展示 PDF 頁面預(yù)覽,或者生成報表、發(fā)票等文檔的縮略圖、便于打印或嵌入到其他文檔中時,通常會選擇將 PDF 轉(zhuǎn)為位圖格式(如 PNG 或 JPG)。PNG 支持透明背景,適合網(wǎng)頁顯示;JPG 壓縮率高,適合打印或存儲大量圖像。以下示例展示如何將 PDF 的每一頁轉(zhuǎn)換為高分辨率圖片,并保存為單獨文件。

import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfImageType;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class PDFtoImage {
    public static void main(String[] args)throws IOException {
        // 實例化 PdfDocument
        PdfDocument pdf = new PdfDocument();

        // 加載 PDF 文檔
        pdf.loadFromFile("示例文檔.pdf");

        // 遍歷 PDF 每一頁
        for (int i = 0; i < pdf.getPages().getCount(); i++) {
            // 將頁面保存為 Bitmap 圖片,并設(shè)置水平和垂直分辨率
            BufferedImage image = pdf.saveAsImage(i, PdfImageType.Bitmap, 500, 500);

            // 保存為 PNG 文件
            File file = new File(String.format("轉(zhuǎn)換圖片-%d.png", i));
            ImageIO.write(image, "PNG", file);
        }

        // 關(guān)閉文檔
        pdf.close();
    }
}

說明:

  • PdfDocument pdf = new PdfDocument();:創(chuàng)建 PDF 文檔對象。
  • pdf.loadFromFile("示例文檔.pdf");:加載待處理 PDF。
  • pdf.saveAsImage(i, PdfImageType.Bitmap, 500, 500);:將第 i 頁轉(zhuǎn)換為 Bitmap 圖像,并設(shè)置 500×500 DPI。
  • ImageIO.write(image, "PNG", file);:將 BufferedImage 保存為 PNG 文件。將 "PNG" 改為 "JPEG" 即可生成 JPG 圖片。

PDF 轉(zhuǎn) SVG

使用場景及說明:

如果希望在網(wǎng)頁或應(yīng)用程序中展示矢量預(yù)覽,而不失真,SVG 是最佳選擇。與位圖不同,矢量圖可以任意縮放,保證清晰度。使用 PDF 轉(zhuǎn) SVG 可以直接將 PDF 頁面轉(zhuǎn)換為可嵌入 HTML 的矢量圖,適合需要動態(tài)縮放或進行前端渲染的場景。

import com.spire.pdf.*;

public class PDFToSVG {
    public static void main(String[] args) {
        // 創(chuàng)建 PdfDocument 對象
        PdfDocument pdf = new PdfDocument();

        // 加載 PDF 文檔
        pdf.loadFromFile("示例文檔.pdf");

        // 將 PDF 保存為 SVG
        pdf.saveToFile("轉(zhuǎn)換結(jié)果.svg", FileFormat.SVG);
    }
}

說明:

  • FileFormat.SVG 指定輸出為 SVG 格式。
  • 該方法將 PDF 文檔頁面保存為多個 SVG 文件,適合矢量圖預(yù)覽或網(wǎng)頁嵌入。

PDF 轉(zhuǎn) TIFF

使用場景及說明:

TIFF 格式常用于打印、檔案保存和多頁圖像處理。與 PNG/JPG 不同,TIFF 支持多頁文檔,可以一次性保存整個 PDF 或指定頁碼。此方法適合需要生成多頁打印文檔、檔案存儲或在圖像處理軟件中進一步處理 PDF 內(nèi)容的場景。

import com.spire.pdf.*;

public class PDFtoTiff {
    public static void main(String[] args) {
        // 加載 PDF 文檔
        PdfDocument pdf = new PdfDocument();
        pdf.loadFromFile("示例文檔.pdf");

        // 保存整篇文檔為 TIFF
        pdf.saveToTiff("轉(zhuǎn)換結(jié)果.tiff");

        // 保存指定頁面范圍為 TIFF(第 2 頁到第 3 頁,設(shè)置 DPI)
        pdf.saveToTiff("轉(zhuǎn)換結(jié)果部分.tiff", 1, 2, 400, 600);
    }
}

說明:

  • saveToTiff(String fileName):將整個 PDF 轉(zhuǎn)為 TIFF 文件。
  • saveToTiff(String fileName, int startPage, int endPage, int xDpi, int yDpi):只轉(zhuǎn)換指定頁,并設(shè)置水平和垂直分辨率。

批量 PDF 轉(zhuǎn)圖片

使用場景及說明:

在實際項目中,經(jīng)常會遇到需要處理大量 PDF 文件的需求,例如批量生成報表預(yù)覽圖、發(fā)票圖片或圖像備份。手動處理效率低且容易出錯,使用程序批量處理可大幅提高效率,并保持輸出一致性。

import com.spire.pdf.*;
import com.spire.pdf.graphics.PdfImageType;
import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class BatchPDFtoImage {
    public static void main(String[] args) throws IOException {
        // 指定 PDF 文件夾
        File folder = new File("pdf文件夾");
        File[] files = folder.listFiles((dir, name) -> name.endsWith(".pdf"));

        for (File file : files) {
            // 加載 PDF
            PdfDocument pdf = new PdfDocument();
            pdf.loadFromFile(file.getAbsolutePath());

            // 遍歷每頁并保存為 PNG
            for (int i = 0; i < pdf.getPages().getCount(); i++) {
                BufferedImage image = pdf.saveAsImage(i, PdfImageType.Bitmap, 300, 300);
                String outputFile = "圖片輸出/" + file.getName().replace(".pdf", "_頁_" + (i + 1) + ".png");
                ImageIO.write(image, "PNG", new File(outputFile));
            }

            System.out.println(file.getName() + " 已成功轉(zhuǎn)換為圖片");
            pdf.close();
        }
    }
}

說明:

  • 遍歷指定文件夾中所有 PDF 文件,逐一處理。
  • 每頁 PDF 保存為 PNG,并自動生成文件名。
  • 設(shè)置 300×300 DPI,適合一般顯示和打印。

總結(jié)

本文詳細介紹了如何使用 Java 將 PDF 文檔轉(zhuǎn)換為多種圖片格式,包括 PNG、JPG、TIFF 和 SVG。通過設(shè)置分辨率、指定頁碼和批量處理,可以滿足不同應(yīng)用場景的需求,如網(wǎng)頁預(yù)覽、打印、圖像處理等。

掌握 PDF 轉(zhuǎn)圖片的編程方法,能夠提高開發(fā)效率,確保輸出效果一致,是開發(fā)者在 PDF 自動化處理中的常用技能。

到此這篇關(guān)于Java開發(fā)之將PDF轉(zhuǎn)換為多種圖片格式的方法指南的文章就介紹到這了,更多相關(guān)Java PDF轉(zhuǎn)圖片內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java之SpringBoot-Thymeleaf詳情

    Java之SpringBoot-Thymeleaf詳情

    聊Thymeleaf,需要知道為什么到了SpringBoot中就不用JSP了?這跟SpringBoot打包方式有點關(guān)系,SpringBoot項目打包是jar包,下面文章小編就對此做一個詳細介紹,需要的朋友可以參考一下
    2021-09-09
  • java8 LocalDate LocalDateTime等時間類用法實例分析

    java8 LocalDate LocalDateTime等時間類用法實例分析

    這篇文章主要介紹了java8 LocalDate LocalDateTime等時間類用法,結(jié)合具體實例形式分析了LocalDate、LocalTime、LocalDateTime等日期時間相關(guān)類的功能與具體使用技巧,需要的朋友可以參考下
    2017-04-04
  • Springboot集成定時器和多線程異步處理操作

    Springboot集成定時器和多線程異步處理操作

    這篇文章主要介紹了Springboot集成定時器和多線程異步處理操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • mybatis輸出SQL格式化方式

    mybatis輸出SQL格式化方式

    這篇文章主要介紹了mybatis輸出SQL格式化方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java編程基礎(chǔ)測試題分享

    Java編程基礎(chǔ)測試題分享

    這篇文章主要介紹了Java編程基礎(chǔ)測試題分享,具有一定參考價值,需要的朋友可以了解下。
    2017-10-10
  • SpringBoot項目的漏洞修復(fù)經(jīng)驗分享

    SpringBoot項目的漏洞修復(fù)經(jīng)驗分享

    在局域網(wǎng)環(huán)境下,由于無法連接外網(wǎng)下載Maven包,常見解決方案是在外網(wǎng)環(huán)境搭建相同的開發(fā)環(huán)境以便更新Maven包,本次漏洞掃描包括Tomcat、jackson-databind、fastjson、logback等組件,通常解決方法是升級到更高版本
    2024-10-10
  • Mybatis模糊查詢和動態(tài)sql語句的用法

    Mybatis模糊查詢和動態(tài)sql語句的用法

    今天小編就為大家分享一篇關(guān)于Mybatis模糊查詢和動態(tài)sql語句的用法,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • 解決SpringBoot下Redis序列化亂碼的問題

    解決SpringBoot下Redis序列化亂碼的問題

    這篇文章主要介紹了解決SpringBoot下Redis序列化亂碼的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Java Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解

    Java Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解

    這篇文章主要介紹了Mybatis中的 ${ } 和 #{ }的區(qū)別使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • MyBatis Plus實現(xiàn)一對多的查詢場景的三種方法

    MyBatis Plus實現(xiàn)一對多的查詢場景的三種方法

    MyBatis Plus提供了多種簡便的方式來進行一對多子查詢,本文主要介紹了MyBatis Plus實現(xiàn)一對多的查詢場景的三種方法,具有一定的參考價值,感興趣的可以了解一下
    2024-07-07

最新評論