Java 將PDF轉為透明背景的圖片

Mia張發表於2021-11-05

通過Java程式碼可將PDF檔案格式轉為png格式的圖片,但是轉換後的圖片預設的都是帶有白色背景的;如果不想圖片帶有背景,可在轉換前通過呼叫PdfDocument. getConvertOptions().setPdfToImageOptions(int bgTransparentValue)方法設定圖片背景透明度。下面是具體方法和步驟。

一、匯入jar包

實現轉換的方法需要在Java程式中匯入Spire.Pdf.jar 4.11.1。可手動下載jar包,然後解壓,找到lib資料夾下的jar檔案,然後執行如下步驟匯入:


如果是Maven程式,則在pom.xml進行如下配置,然後匯入:

<repositories>
        <repository>
            <id>com.e-iceblue</id>
            <url>
        </repository>
    </repositories>
<dependencies>
    <dependency>
        <groupId> e-iceblue </groupId>
        <artifactId>spire.pdf</artifactId>
        <version>4.11.1</version>
    </dependency>
</dependencies>

二、程式碼方法

程式碼步驟解析:

1. 例項化 PdfDocument 類的物件。

2. 呼叫 PdfDocument. loadFromFile( String filename)方法。

3. 呼叫 PdfDocument. getConvertOptions().setPdfToImageOptions( int bgTransparentValue)方法設定轉換後的圖片背景透明度。

4. for迴圈PDF每一頁,使用PdfDocument.saveAsImage( int pageIndex)方法將PDF頁面儲存為圖片。

 

Java程式碼完整示例

import com.spire.pdf.*;
 
 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類的物件,並載入PDF文件
         PdfDocument pdf = new PdfDocument();
         pdf.loadFromFile("input.pdf");
 
         //設定轉換後的圖片背景透明度為0
         pdf.getConvertOptions().setPdfToImageOptions(0);
 
         //遍歷PDF每一頁,儲存為圖片
         for (int i = 0; i < pdf.getPages().getCount(); i++)
         {
             BufferedImage image = pdf.saveAsImage(i);
             File file = new File( String.format("ToImage%d.png", i));
             ImageIO.write(image, "PNG", file);
         }
         pdf.close();
     }
 }

轉換後的圖片效果圖:

其他注意事項

程式碼中的PDF檔案路徑和儲存的圖片路徑為IDEA程式專案資料夾路徑,如本次路徑為F:\IDEAProject\Conversion_PDF\input.pdf 和F:\IDEAProject\Conversion_PDF\ToImage0.png 。檔案路徑可自定義。


—End—


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31499788/viewspace-2840859/,如需轉載,請註明出處,否則將追究法律責任。

相關文章