圖片可能會使 PDF 變得沉重、雜亂或難以分享。有時候你只需要一個沒有照片、圖示或圖形的乾淨版本。在本指南中,你將學習如何使用 Java 從 PDF 檔案中移除圖片。你將看到如何刪除所有圖片、從選定的頁面上擦除圖片、僅移除特定的圖片,甚至過濾掉灰階圖片。讓我們開始吧!
使用 Aspose.PDF for Java 從 PDF 中移除圖片
Aspose.PDF for Java 是一個強大的庫,專為 PDF 編輯、創建和自動化而設計。開發人員使用它來處理圖像提取、文本編輯、註解、數位簽名等各種任務。
從 官方發佈頁面 下載 JAR 包,或通過 Maven 將 Aspose.PDF for Java 添加到您的項目中:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-pdf</artifactId>
<version>25.10</version>
</dependency>
一旦添加,您就可以使用該庫來修改和刪除 PDF 中的圖像,包括有針對性地刪除照片、圖標、印章和內聯圖形。
如何使用 Java 從 PDF 文件中刪除所有圖像
您可能需要一個乾淨的純文字 PDF。Aspose.PDF 讓您輕鬆去除所有圖片。以下是您如何從整個文件中刪除所有圖片。
按照以下步驟刪除 PDF 文件中的所有圖像:
- 使用
Document類別加載您的 PDF。 - Loop through all pages.
- 訪問每個頁面資源中的圖片集合。
- 清除或移除圖片。
- 保存更新的 PDF。
以下的 Java 代碼範例展示了如何從 PDF 文件中移除所有圖像。
import com.aspose.pdf.*;
public class RemoveAllImages {
public static void main(String[] args) {
// 載入 PDF 文件
Document doc = new Document("DocumentWithImages.pdf");
// 逐頁迭代
for (Page page : doc.getPages()) {
// 從頁面中移除所有圖片
page.getResources().getImages().delete();
}
// Save the modified document
doc.save("DocumentWithoutImages.pdf");
}
}

使用 Java 從 PDF 中刪除所有圖片
這個範例系統性地使用 Aspose.PDF 函式庫從 PDF 文件中移除所有圖像。它使用 Document 類別加載源文件,遍歷每一頁,並對於每一頁,訪問其資源集合以刪除所有嵌入圖像。在處理完文檔中的每一頁後,它保存修改後的版本,生成一個新的 PDF,保留原始文本和佈局,但不包含任何視覺圖像內容。
使用 Java 從 PDF 的特定頁面移除圖片
有時候你不想從整個 PDF 中移除圖像。你可能想在大多數頁面上保留圖形,但只刪除特定頁面上的圖片。
請按照以下步驟刪除 PDF 文件特定頁面上的圖像:
- 載入 PDF。
- 識別您想要清理的頁碼。
- 僅從那些頁面刪除圖像。
- Save the result.
以下Java程式碼範例顯示如何從PDF文件的指定頁面刪除圖片。
import com.aspose.pdf.*;
public class RemoveSpecificPageImages {
public static void main(String[] args) {
// 載入 PDF 文件
Document doc = new Document("DocumentWithImages.pdf");
// 訪問特定頁面(例如,頁面 1)
Page page = doc.getPages().get_Item(1);
Resources resources = page.getResources();
XImageCollection images = resources.getImages();
images.delete();
// 保存已修改的文件
doc.save("RemoveSpecificPageImages.pdf");
}
}
此範例顯示如何使用 Aspose.PDF for Java 從 PDF 文檔的特定頁面移除所有圖像。它簡單地將現有的 PDF 文件加載到 Document 對象中,針對文檔的第 1 頁,並訪問其圖像資源。一旦檢索到圖像集合,就調用了 delete() 方法以移除該頁面上找到的每個圖像。在清理頁面後,更新的 PDF 被保存到一個新文件中,為您提供一個版本,其中只有選定的頁面已經移除圖像。此方法保持其他頁面的圖像內容完整,而僅清理您選擇的頁面。
使用 Java 從 PDF 中移除特定圖像
如果您的文檔在單頁上有多個圖像,而您想要在不影響其他圖像的情況下從 PDF 中移除特定圖像,Aspose.PDF 讓您有精細的控制權。
按照以下步驟:
- 載入 PDF。
- 選擇包含圖像的頁面。
- Identify the image index.
- 刪除那張單一的圖片。
- 保存更新後的文件。
以下代碼示例顯示如何從 PDF 中移除單個圖像:
import com.aspose.pdf.*;
public class RemoveSpecificImage {
public static void main(String[] args) {
// 載入 PDF 文件
Document doc = new Document("DocumentWithImages.pdf");
// 訪問特定頁面(例如,頁面 1)
// 刪除特定的圖片
doc.getPages().get_Item(4).getResources().getImages().delete(1);
// 保存修改過的文件
doc.save("RemoveSpecificImages.pdf");
}
}
這讓你只刪除不需要的圖像,例如標誌、標題或小照片,其餘部分保持不變。
如何使用 Java 從 PDF 中移除灰階圖像
一些 PDF 包含灰階照片,這會增加檔案大小或增加視覺雜亂。您可以通過檢查它們的色彩空間來編程過濾和移除灰階圖像。
遵循的步驟:
- 載入 PDF。
- 逐頁遍歷。
- 檢查每個圖像的色彩空間。
- 僅刪除灰度圖像。
- 保存最終的 PDF。
以下的 Java 範例顯示如何僅從 PDF 文件中移除灰階圖像。
import com.aspose.pdf.*;
public class RemoveGraysclaeImages {
public static void main(String[] args) {
// 加載 PDF 文件
Document doc = new Document("DocumentWithImages.pdf");
// 遍歷 PDF 文件的所有頁面
for (Page page : (Iterable<Page>) doc.getPages()) {
// 創建圖像放置吸收器實例
ImagePlacementAbsorber abs = new ImagePlacementAbsorber();
page.accept(abs);
for (ImagePlacement ia : (Iterable<ImagePlacement>) abs.getImagePlacements()) {
// ColorType
ColorType colorType = ia.getImage().getColorType();
if(colorType == ColorType.Grayscale)
{
ia.getImage().delete();
}
}
}
// 保存修改過的文件
doc.save("RemoveGraysclaeImages.pdf");
}
}
這段代碼範例選擇性地從 PDF 文件中刪除只有灰階圖像。它加載一個現有的 PDF,並遍歷每一頁,使用 ImagePlacementAbsorber 來檢測圖像位置並檢查它們的 ColorType 屬性。被確定為 ColorType.Grayscale 的圖像會從頁面資源中刪除,而 RGB 和其他顏色格式的圖像則故意保留。在過濾所有頁面後,修改過的文件會被另存為新文件,生成一個保留其原始佈局但刪除了灰階視覺內容的 PDF。
獲取免費許可證
Aspose.PDF 在試用模式下完全運作,但有一些限制,不過你可以申請一個 免費臨時許可證 來解鎖所有功能。訪問 Aspose 的網站並獲取一個免費臨時許可證。這讓你可以在沒有限制的情況下測試所有高級功能。
免費附加資源
除了從 PDF 文件中刪除圖像之外,這裡還有一些有助於加深您理解的有用鏈接。這些資源可以幫助您探索文本編輯、註釋、轉換、表單處理等更多內容。
結論
在這篇文章中,我們已經看到使用 Java 和 Aspose.PDF 庫從 PDF 中移除圖像是多麼簡單。您可以刪除所有圖像、從選定的頁面中移除照片、擦除單張圖片,或基於灰階模式進行過濾。該庫讓您能夠控制文檔中的每一張圖片,這使得它非常適合自動化、內容清理和文檔準備。
如果您有任何問題?在我們的 support forum 上獲得免費專家幫助,只需發佈您的問題,我們的團隊將指導您前進。
