PDF處理控件Aspose.PDF功能演示:使用Java壓縮或優(yōu)化相同質(zhì)量的PDF文件
不同的組織使用PDF文件進(jìn)行安全且有組織的信息交換。但是,有時(shí)由于嵌入的內(nèi)容(例如圖像,視頻,繪圖等),PDF文件的大小會(huì)變得很大。
在這種情況下,可以輕松優(yōu)化或壓縮此類PDF文件大小,而不會(huì)影響質(zhì)量。讓我們探索以下PDF大小壓縮和優(yōu)化方案,您可以將其合并到Java應(yīng)用程序中:
- 使用Java優(yōu)化Web的PDF文檔
-
使用Java優(yōu)化或壓縮包含圖像的PDF的大小
- 使用Java縮小,壓縮和調(diào)整所有圖像的大小
- 刪除嵌入式字體,未使用的流并鏈接重復(fù)的流
-
使用Java縮小或壓縮PDF文檔大小
- 使用Java刪除或展平注釋以減小大小
- 刪除表單字段以使用Java最小化PDF文件大小
- 使用Java將RGB顏色空間轉(zhuǎn)換為灰度以進(jìn)行PDF壓縮和優(yōu)化
目前,Java版Aspose.PDF升級(jí)到v20.9版,優(yōu)化轉(zhuǎn)換為JPG的時(shí)間過(guò)長(zhǎng)問(wèn)題,增強(qiáng)PDF到DOCX轉(zhuǎn)換功能,修復(fù)PDF到HTML的轉(zhuǎn)換等諸多bug問(wèn)題,感興趣的朋友可點(diǎn)擊下方按鈕下載最新版。
點(diǎn)擊下載最新版Aspose.PDF for Java
使用Java優(yōu)化Web的PDF文檔
需要在網(wǎng)頁(yè)中使用PDF文檔時(shí),可以對(duì)其進(jìn)行優(yōu)化。此優(yōu)化有助于盡快顯示PDF文檔的首頁(yè)。您可以按照以下步驟獲得優(yōu)化的PDF文件:
- 開(kāi)源PDF文件
- 調(diào)用PDF優(yōu)化的 optimize method
- 保存輸出的PDF文件
下面的代碼段是如何在Java環(huán)境中為Web優(yōu)化PDF文檔的示例:
// Open document Document pdfDocument = new Document("Original.pdf"); // Optimize for web pdfDocument.optimize(); // Save output document pdfDocument.save("Optimized_output.pdf");
使用Java壓縮或優(yōu)化包含圖像的PDF的大小
在這里,我們將主要討論P(yáng)DF文件包含大量圖像因而尺寸巨大的情況。例如,一個(gè)PDF文件,其中包含不同型號(hào)飛機(jī)的圖紙以及有關(guān)每個(gè)零件(次要或主要)的信息,這些信息作為所有組件的圖像或圖片包含在內(nèi)。此外,許多專業(yè)文檔可能包含圖像作為文件的主要工件。
在這種情況下,我們可以使用以下方法壓縮PDF文件:
①使用Java縮小,壓縮和調(diào)整所有圖像的大小
您可以通過(guò)縮小,壓縮和調(diào)整圖像大小來(lái)最小化包含許多圖像的PDF文件的大小。由于我們現(xiàn)在打算縮小圖片中的大多數(shù)文件大小,因此文件大小的改進(jìn)可能會(huì)很明顯。您需要按照以下步驟來(lái)縮小,壓縮和調(diào)整PDF文件中的圖片或圖像的大?。?/span>
- 加載輸入PDF文件
- 初始化OptimizationOptions對(duì)象
- 設(shè)置圖像質(zhì)量和分辨率
- 調(diào)用optimizeResources方法
- 保存輸出的PDF文檔
下面的代碼段顯示了如何使用Java縮小或壓縮圖像以減小和最小化PDF文件大?。?/span>
// Load input document Document doc = new Document(dataDir + "Test.pdf"); // Initialize OptimizationOptions object OptimizationOptions opt = new OptimizationOptions(); // Enable image compression // Set the quality and resolution of images in PDF file opt.getImageCompressionOptions().setCompressImages(true); opt.getImageCompressionOptions().setImageQuality(10); opt.getImageCompressionOptions().setMaxResolution(150); opt.getImageCompressionOptions().setResizeImages(true); doc.optimizeResources(opt); // Save the updated file doc.save(dataDir + "compressingPDFWithImages_out.pdf");
②使用Java刪除嵌入式字體,未使用的流并鏈接重復(fù)的流
當(dāng)您需要減小PDF文件大小時(shí),每個(gè)字節(jié)都很重要。嵌入式字體可以使用不同的方法來(lái)幫助減小文件大小。例如,您可以取消嵌入所有字體,也可以僅保留PDF文件中使用的字體字符的子集。這將部分取消嵌入字體,這仍將有助于最大程度地減小文件大小。此外,您可以刪除未使用的流或鏈接重復(fù)的流以節(jié)省更多空間。這些PDF優(yōu)化將大大減少文件大小。您需要按照以下步驟優(yōu)化和減小PDF文件的大?。?/span>
- 加載輸入的PDF文檔
- 初始化OptimizationOptions類對(duì)象
- 取消嵌入所有字體或字體的子集
- 鏈接重復(fù)流
- 刪除未使用的流
以下代碼詳細(xì)說(shuō)明了如何壓縮PDF文件以優(yōu)化,減小和最小化PDF文檔的大?。?/span>
Document doc = new Document(dataDir + "Test.pdf"); OptimizationOptions opt = new OptimizationOptions(); // Either // Unembed all fonts in PDF opt.setUnembedFonts(true); //OR // only keep embedded fonts for used characters opt.setSubsetFonts(true); // link duplicate streams opt.setLinkDuplcateStreams(false); // Remove unused streams opt.setRemoveUnusedStreams(false); // Remove unused objects opt.setRemoveUnusedObjects(false); doc.optimizeResources(opt); // Save the updated file doc.save(dataDir + "compressingPDF.pdf");
使用Java壓縮或縮小PDF文檔大小
PDF文件通常包含注釋,可編輯的表單字段和顏色偽影,這些偽影共同占用空間。讓我們探索以下過(guò)程來(lái)壓縮PDF文件大小。
①使用Java刪除或展平注釋以減小大小
PDF文件可以包含很多注釋。例如,水印,注釋,形狀等。如果不再需要注釋,則可以將其刪除;如果不需要進(jìn)一步的更改,則可以對(duì)其進(jìn)行注釋。請(qǐng)按照以下步驟刪除或展平注釋以優(yōu)化PDF文件大?。?/span>
- 開(kāi)源PDF文檔
- 遍歷每個(gè)頁(yè)面
- 展平或刪除注釋
- 保存輸出的PDF文檔
以下代碼段是如何使用Java刪除或展平PDF文檔中注釋的示例:
// Open document Document pdfDocument = new Document(dataDir + "OptimizeDocument.pdf"); // Iterate through each page and annotation for (Page page : pdfDocument.getPages()) { for (Annotation annotation : page.getAnnotations()) { // Either flatten the annotation annotation.flatten(); // OR delete the annotation // page.getAnnotations().delete(annotation); } } // Save optimized PDF document pdfDocument.save(dataDir + "OptimizeDocument_out.pdf");
②刪除表單字段以使用Java最小化PDF文件大小
需要大量提交數(shù)據(jù)的可填寫PDF表單很常見(jiàn)。提交數(shù)據(jù)后,可以刪除可填寫的表單字段,以優(yōu)化和最小化PDF文件的大小。您需要按照以下步驟刪除表單字段:
- 加載輸入的PDF文檔
- 檢查PDF文檔中的表單字段
- 遍歷每個(gè)字段并將其展平
- 保存更新的壓縮PDF文件
/ Load source PDF form Document doc = new Document(dataDir + "input.pdf"); // Flatten Form fields if (doc.getForm().getFields().length > 0) { for (Field item : doc.getForm().getFields()) { item.flatten(); } } dataDir = dataDir + "FlattenForms_out.pdf"; // Save the updated document doc.save(dataDir);
③使用Java將RGB顏色空間轉(zhuǎn)換為灰度以進(jìn)行PDF壓縮和優(yōu)化
大多數(shù)PDF文件都包含文本內(nèi)容,這些文本內(nèi)容也可以在灰度顏色空間中很好地表示。而且,當(dāng)目的和優(yōu)先級(jí)是保存每個(gè)字節(jié)時(shí),甚至圖像也可以轉(zhuǎn)換為灰度,這是因?yàn)橹攸c(diǎn)在于歸檔數(shù)據(jù)。您可以按照以下步驟通過(guò)將RGB顏色空間轉(zhuǎn)換為灰度來(lái)壓縮和優(yōu)化PDF文件大小:
- 訪問(wèn)源PDF文檔
- 初始化RgbToDeviceGrayConversionStrategy實(shí)例
- 將每種顏色的色彩空間轉(zhuǎn)換為灰度
- 保存輸出優(yōu)化的PDF文件
以下代碼片段顯示了如何通過(guò)在Java環(huán)境中更改顏色空間來(lái)壓縮和優(yōu)化PDF大?。?/span>
// Load input PDF document Document document = new Document("input.pdf"); // Initialize RgbToDeviceGrayConversionStrategy instance RgbToDeviceGrayConversionStrategy strategy = new RgbToDeviceGrayConversionStrategy(); for (int idxPage = 1; idxPage <= document.getPages().size(); idxPage++) { Page page = document.getPages().get_Item(idxPage); // Convert color space of each page to Greyscale strategy.convert(page); } // Save output PDF document document.save("output.pdf");
還想要更多嗎?您可以點(diǎn)擊閱讀【2020 · Aspose最新資源整合】,查找需要的教程資源。如果您有任何疑問(wèn)或需求,請(qǐng)隨時(shí)加入Aspose技術(shù)交流群(642018183),我們很高興為您提供查詢和咨詢。