最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

引言

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

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

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

環(huán)境準(zhǔn)備

引入 Spire.PDF for Java

Spire.PDF for Java 是一個功能強(qiáng)大的 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

使用場景及說明:

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

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 {
        // 實(shí)例化 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)縮放或進(jìn)行前端渲染的場景。

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 或指定頁碼。此方法適合需要生成多頁打印文檔、檔案存儲或在圖像處理軟件中進(jìn)一步處理 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)圖片

使用場景及說明:

在實(shí)際項目中,經(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é)

本文詳細(xì)介紹了如何使用 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注解示例詳解(含底層原理)

    Java注解示例詳解(含底層原理)

    注解在現(xiàn)代Java開發(fā)中扮演著重要角色,廣泛應(yīng)用于框架開發(fā)、代碼生成和運(yùn)行時功能擴(kuò)展,下面這篇文章主要介紹了Java注解底層原理的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-10-10
  • java 中InputStream,String,File之間的相互轉(zhuǎn)化對比

    java 中InputStream,String,File之間的相互轉(zhuǎn)化對比

    這篇文章主要介紹了java 中InputStream,String,File之間的相互轉(zhuǎn)化對比的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 深入了解Spring中的依賴注入DI

    深入了解Spring中的依賴注入DI

    這篇文章主要介紹了Spring?中的依賴注入,包括注入的方式,寫法,該選擇哪個注入方式以及可能出現(xiàn)的循環(huán)依賴問題等內(nèi)容,需要的可以參考一下
    2023-06-06
  • 淺談Java工程讀取resources中資源文件路徑的問題

    淺談Java工程讀取resources中資源文件路徑的問題

    下面小編就為大家?guī)硪黄獪\談Java工程讀取resources中資源文件路徑的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • java數(shù)據(jù)庫批量插入數(shù)據(jù)的實(shí)現(xiàn)

    java數(shù)據(jù)庫批量插入數(shù)據(jù)的實(shí)現(xiàn)

    本文主要介紹了java數(shù)據(jù)庫批量插入數(shù)據(jù)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • Springboot使用redisson?+?自定義注解實(shí)現(xiàn)消息的發(fā)布訂閱(解決方案)

    Springboot使用redisson?+?自定義注解實(shí)現(xiàn)消息的發(fā)布訂閱(解決方案)

    Redisson是一個基于Redis的Java駐留內(nèi)存數(shù)據(jù)網(wǎng)格(In-Memory?Data?Grid)和分布式鎖框架,它提供了一系列的分布式Java對象和服務(wù),可以幫助開發(fā)者更方便地使用Redis作為數(shù)據(jù)存儲和分布式鎖的解決方案,感興趣的朋友跟隨小編一起看看吧
    2024-05-05
  • Spring?Boot和Vue前后端分離項目架構(gòu)的全過程

    Spring?Boot和Vue前后端分離項目架構(gòu)的全過程

    前后端分離是目前互聯(lián)網(wǎng)開發(fā)中比較廣泛使用的開發(fā)模式,主要是將前端和后端的項目業(yè)務(wù)進(jìn)行分離,下面這篇文章主要給大家介紹了關(guān)于Spring?Boot和Vue前后端分離項目架構(gòu)的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Java List 集合如何去除null元素

    Java List 集合如何去除null元素

    這篇文章主要介紹了Java List 集合如何去除null元素,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • 如何把char數(shù)組轉(zhuǎn)換成String

    如何把char數(shù)組轉(zhuǎn)換成String

    這篇文章主要介紹了如何把char數(shù)組轉(zhuǎn)換成String問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java設(shè)計模式之單例模式實(shí)例詳解【懶漢式與餓漢式】

    Java設(shè)計模式之單例模式實(shí)例詳解【懶漢式與餓漢式】

    這篇文章主要介紹了Java設(shè)計模式之單例模式,簡單說明了單例模式的原理并結(jié)合具體實(shí)例形式分析了單例模式中懶漢式與餓漢式的具體實(shí)現(xiàn)與使用技巧,需要的朋友可以參考下
    2017-09-09

最新評論

榆中县| 友谊县| 阿克苏市| 阳原县| 塔河县| 广南县| 黄浦区| 迁安市| 海阳市| 开封市| 塔河县| 庆云县| 大渡口区| 上饶市| 昌黎县| 阿克苏市| 荣昌县| 叙永县| 德钦县| 东至县| 吉木萨尔县| 靖州| 仁布县| 泰宁县| 西畴县| 扶风县| 日土县| 山丹县| 漳州市| 辛集市| 东至县| 五莲县| 宝山区| 庆阳市| 体育| 巴林右旗| 平阴县| 西乡县| 车致| 积石山| 嘉峪关市|