這篇文章主要講解了“怎么使用Java壓縮PDF文檔”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“怎么使用Java壓縮PDF文檔”吧!
創(chuàng)新互聯(lián)建站是一家專注于成都做網(wǎng)站、成都網(wǎng)站制作和大邑服務(wù)器托管的網(wǎng)絡(luò)公司,有著豐富的建站經(jīng)驗(yàn)和案例。
方法一:
如果您使用的是 maven,可以通過(guò)添加以下代碼到項(xiàng)目的 pom.xml 文件中,將 JAR 文件導(dǎo)入到應(yīng)用程序中。
com.e-iceblue https://repo.e-iceblue.cn/repository/maven-public/ e-iceblue spire.pdf.free 5.1.0
方法二:
如果您沒(méi)有使用 maven,則可以從此鏈接下載Free Spire.PDF for Java,找到lib文件夾下的Spire.PDF.jar并進(jìn)行解壓;然后在IDEA中創(chuàng)建一個(gè)新項(xiàng)目,依次點(diǎn)擊“文件”(File),“項(xiàng)目結(jié)構(gòu)”(Project Structure),“組件”(Modules),“依賴項(xiàng)”(Dependencies),再點(diǎn)擊右方綠色“+”下的第一個(gè)選項(xiàng)“JAR文件或路徑”(JARs or Directories),找到解壓后的Spire.PDF.jar 文件,點(diǎn)擊確認(rèn),將其導(dǎo)入到項(xiàng)目中。
注意:Free Spire.PDF for Java支持10頁(yè)內(nèi)的PDF文檔,如果PDF頁(yè)數(shù)過(guò)多,可以選擇使用Spire.PDF for Java。
下面是詳細(xì)操作步驟和相關(guān)代碼:
創(chuàng)建PdfDocument類的對(duì)象。
使用PdfDocument.loadFromFile()方法加載PDF文檔。
使用PdfDocument.getFileInfo().setIncrementalUpdate() 方法禁用增量更新。
使用PdfDocument.setCompressionLevel()方法將壓縮級(jí)別設(shè)置為最佳,用于壓縮文檔中的內(nèi)容。您可以從PdfCompressionLevel列舉中選擇其他級(jí)別。
遍歷文檔頁(yè)面,并使用PdfPageBase.getImagesInfo()方法獲取每個(gè)頁(yè)面的圖像信息集合。
遍歷集合中的所有項(xiàng)目,并使用PdfBitmap.setQuality() 方法壓縮特定圖像的質(zhì)量。
使用PdfPageBase.replaceImage()方法將原始圖像替換為壓縮圖像。
使用PdfDocument.saveToFile()方法將文檔保存到另一個(gè)PDF文檔。
import com.spire.pdf.PdfCompressionLevel; import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; import com.spire.pdf.exporting.PdfImageInfo; import com.spire.pdf.graphics.PdfBitmap; public class CompressPdfDocument { public static void main(String[] args) { //創(chuàng)建PdfDocument類的對(duì)象 PdfDocument doc = new PdfDocument(); //加載PDF文檔 doc.loadFromFile("sample.pdf"); //禁用增量更新 doc.getFileInfo().setIncrementalUpdate(false); //將壓縮級(jí)別設(shè)置為最佳 doc.setCompressionLevel(PdfCompressionLevel.Best); //遍歷文檔頁(yè)面 for (int i = 0; i < doc.getPages().getCount(); i++) { //獲取指定頁(yè)面 PdfPageBase page = doc.getPages().get(i); //獲取每個(gè)頁(yè)面的圖像信息集合 PdfImageInfo[] images = page.getImagesInfo(); //遍歷集合中的所有項(xiàng)目 if (images != null && images.length > 0) for (int j = 0; j < images.length; j++) { //獲取指定圖片 PdfImageInfo image = images[j]; PdfBitmap bp = new PdfBitmap(image.getImage()); //設(shè)置壓縮質(zhì)量 bp.setQuality(20); //將原始圖像替換為壓縮圖像 page.replaceImage(j, bp); } //將結(jié)果文檔保存至另一個(gè)PDF文檔中 doc.saveToFile("Compressed.pdf"); doc.close(); } } }
感謝各位的閱讀,以上就是“怎么使用Java壓縮PDF文檔”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)怎么使用Java壓縮PDF文檔這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!