不同的組織使用 PDF 文件進行安全且有組織的信息交換。但是,有時 PDF 文件會由於嵌入的內容(如圖像、視頻、繪圖等)而變得非常大。您可以輕鬆地優化或壓縮此類 PDF 文件的大小,而不會影響質量。讓我們探索以下 PDF 大小壓縮和優化場景,您可以將它們合併到您的 Java 應用程序中:
PDF 大小優化和壓縮 API – 安裝
您可以利用 Aspose.PDF for Java API 的高效可靠例程來優化或壓縮大尺寸 PDF 文件,同時保持相同的質量。您可以從 下載 或使用項目中的 Maven 配置 下載 JAR 文件。
使用 Java 為 Web 優化 PDF 文檔
當您需要在網頁中使用 PDF 文檔時,可以對其進行優化。此優化有助於盡快顯示 PDF 文檔的第一頁。您可以按照以下步驟獲得優化後的 PDF 文件:
- 開源 PDF 文件
- 調用【優化方法】5進行PDF優化
- 保存輸出的 PDF 文件
下面的代碼片段是如何在您的 Java 環境中為 Web 優化 PDF 文檔的示例:
// 打開文檔
Document pdfDocument = new Document("Original.pdf");
// 針對網絡進行優化
pdfDocument.optimize();
// 保存輸出文檔
pdfDocument.save("Optimized_output.pdf");
使用 Java 壓縮或優化包含圖像的 PDF 的大小
這裡主要討論PDF文件包含大量圖片,體積龐大的場景。例如,一個 PDF 文件包含不同型號飛機的圖紙和每個部件(次要或主要)的信息,包括所有組件的圖像或圖片。此外,許多專業文檔可能包含圖像作為文件的主要人工製品。在這種情況下,我們可以使用以下方法壓縮 PDF 文件:
使用 Java 縮小、壓縮和調整所有圖像的大小
您可以通過縮小、壓縮和調整圖像大小來最小化包含許多圖像的 PDF 文件的大小。大小的改進可能很明顯,因為大部分文件大小都被我們現在打算縮小的圖片覆蓋了。您需要按照以下步驟縮小、壓縮和調整 PDF 文件中的圖片或圖像的大小:
- 加載輸入 PDF 文件
- 初始化 OptimizationOptions 對象
- 設置圖像質量和分辨率
- 調用 optimizeResources 方法
- 保存輸出的 PDF 文檔
下面的代碼片段顯示瞭如何使用 Java 縮小或壓縮圖像以減小和最小化 PDF 文件的大小:
// 加載輸入文檔
Document doc = new Document(dataDir + "Test.pdf");
// 初始化優化選項對象
OptimizationOptions opt = new OptimizationOptions();
// 啟用圖像壓縮
// 設置 PDF 文件中圖像的質量和分辨率
opt.getImageCompressionOptions().setCompressImages(true);
opt.getImageCompressionOptions().setImageQuality(10);
opt.getImageCompressionOptions().setMaxResolution(150);
opt.getImageCompressionOptions().setResizeImages(true);
doc.optimizeResources(opt);
// 保存更新的文件
doc.save(dataDir + "compressingPDFWithImages_out.pdf");
使用 Java 刪除嵌入的字體、未使用的流和鏈接重複的流
當您需要減小 PDF 文件大小時,每個字節都很重要。嵌入式字體可以通過不同的方法幫助減小文件大小。例如,您可以取消嵌入所有字體,也可以只保留 PDF 文件中使用的字體字符子集。這將是部分取消嵌入的字體,但仍有助於最小化文件大小。此外,您可以刪除未使用的流或鏈接重複的流以節省更多空間。這些 PDF 優化將大大減小文件大小。您需要按照以下步驟優化和減小 PDF 文件大小:
- 加載輸入 PDF 文檔
- 初始化 OptimizationOptions 類對象
- 取消嵌入所有字體或字體子集
- 鏈接重複的流
- 刪除未使用的流
以下代碼詳細說明瞭如何壓縮 PDF 文件以優化、減少和最小化 PDF 文檔的大小:
Document doc = new Document(dataDir + "Test.pdf");
OptimizationOptions opt = new OptimizationOptions();
// 任何一個
// 取消嵌入 PDF 中的所有字體
opt.setUnembedFonts(true);
//或者
// 只保留使用過的字符的嵌入字體
opt.setSubsetFonts(true);
// 鏈接重複的流
opt.setLinkDuplcateStreams(false);
// 刪除未使用的流
opt.setRemoveUnusedStreams(false);
// 刪除未使用的對象
opt.setRemoveUnusedObjects(false);
doc.optimizeResources(opt);
// 保存更新的文件
doc.save(dataDir + "compressingPDF.pdf");
到目前為止,我們主要討論了針對帶有圖像的 PDF 文件的優化方法。現在讓我們繼續進行 PDF 優化的更多方法。
使用 Java 壓縮或減小 PDF 文檔大小
PDF 文件通常包含註釋、可編輯的表單字段和顏色工件,它們共同佔據了空間。讓我們探索以下壓縮 PDF 文件大小的過程。
使用 Java 刪除或展平註釋以減小大小
PDF 文件可以包含很多註釋。例如,水印、評論、形狀等。如果不再需要註釋,您可以刪除註釋;如果不需要進一步更改,則可以加厚註釋。請按照以下步驟刪除或展平註釋以優化 PDF 文件大小:
- 開源 PDF 文檔
- 遍歷每個頁面
- 壓平或刪除註釋
- 保存輸出的 PDF 文檔
下面的代碼片段是一個示例,說明如何使用 Java 刪除或展平 PDF 文檔中的註釋:
// 打開文檔
Document pdfDocument = new Document(dataDir + "OptimizeDocument.pdf");
// 遍歷每個頁面和註釋
for (Page page : pdfDocument.getPages())
{
for (Annotation annotation : page.getAnnotations())
{
// 要么展平註釋
annotation.flatten();
// 或者刪除註釋
// page.getAnnotations().delete(註解);
}
}
// 保存優化的 PDF 文檔
pdfDocument.save(dataDir + "OptimizeDocument_out.pdf");
使用 Java 刪除表單域以最小化 PDF 文件大小
可填寫的 PDF 表單在需要大規模提交數據的地方很常見。提交數據後,可以刪除可填寫的表單字段以優化和最小化 PDF 文件大小。您需要按照以下步驟刪除表單字段:
- 加載輸入 PDF 文檔
- 檢查 PDF 文檔中的表單域
- 遍歷每個字段並將其展平
- 保存更新後的壓縮 PDF 文件
// 加載源 PDF 表單
Document doc = new Document(dataDir + "input.pdf");
// 展平表單域
if (doc.getForm().getFields().length > 0)
{
for (Field item : doc.getForm().getFields())
{
item.flatten();
}
}
dataDir = dataDir + "FlattenForms_out.pdf";
// 保存更新的文檔
doc.save(dataDir);
使用 Java 將 RGB 顏色空間轉換為灰度以進行 PDF 壓縮和優化
大多數 PDF 文件包含的文本內容也可以在灰度色彩空間中很好地表示。此外,當目的和優先級是保存每個字節時,甚至圖像也可以轉換為灰度,因為重點是歸檔數據。您可以按照以下步驟通過將 RGB 顏色空間轉換為灰度來壓縮和優化 PDF 文件大小:
- 訪問源 PDF 文檔
- 初始化 RgbToDeviceGrayConversionStrategy 實例
- 將每種顏色的顏色空間轉換為灰度
- 保存輸出優化的 PDF 文件
以下代碼片段顯示瞭如何在 Java 環境中通過更改顏色空間來壓縮和優化 PDF 大小:
// 加載輸入 PDF 文檔
Document document = new Document("input.pdf");
// 初始化 RgbToDeviceGrayConversionStrategy 實例
RgbToDeviceGrayConversionStrategy strategy = new RgbToDeviceGrayConversionStrategy();
for (int idxPage = 1; idxPage <= document.getPages().size(); idxPage++) {
Page page = document.getPages().get_Item(idxPage);
// 將每個頁面的顏色空間轉換為灰度
strategy.convert(page);
}
// 保存輸出 PDF 文檔
document.save("output.pdf");
結論
在本文中,我們介紹了優化和壓縮 PDF 文件以減小尺寸的不同方式和方法。首先,我們使用 Java 為 Web 優化了 PDF 文件大小。然後我們學習了在包含多個圖像的 PDF 文件中對圖像進行縮小、壓縮和調整大小。此外,我們還探索了使用字體、流、註釋、表單字段以及將 PDF 文檔的顏色空間轉換為灰度,以便使用 Java 創建尺寸更小但質量相同的 PDF 文件。此外,如有與此主題相關的任何疑問,您可以通過免費支持論壇與我們聯繫。
也可以看看
信息:使用 Aspose 的新在線網絡應用程序,您可以將一組圖像轉換為視頻。您可能還想查看另一項服務,一項從視頻中提取聲音。