<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
PDF檔案是我們日常辦公中使用最頻繁的檔案格式。但因為大多數PDF檔案都包含很多頁面影象或大量圖片,這就導致PDF檔案過大,處理起來較為麻煩。PDF檔案過大,就會導致傳輸或者下載的速度變慢,也會增加傳輸失敗的風險,影響辦公效率。因此我們需要對PDF檔案進行壓縮。本文將從以下兩方面介紹如何通過Java應用程式壓縮PDF檔案。
在使用PDF檔案過程中,經常會出現由於體積過大導致檔案傳輸失敗的情況。遇到這種情況,我們可以先將PDF檔案壓縮一下再進行傳輸。而除了壓縮檔案內容以外,壓縮圖片是縮小PDF檔案的主要方法之一。本文將分為2部分分別介紹如何通過Java程式碼壓縮PDF檔案。希望這篇文章能對大家有所幫助。
匯入方法1:
手動引入。將Free Spire.PDF for Java下載到本地,解壓,找到lib資料夾下的Spire.PDF.jar檔案。在IDEA中開啟如下介面,將本地路徑中的jar檔案引入Java程式:
匯入方法2:如果您想通過Maven安裝,則可以在 pom.xml 檔案中新增以下程式碼匯入 JAR 檔案。
<repositories> <repository> <id>com.e-iceblue</id> <url>https://repo.e-iceblue.cn/repository/maven-public/</url> </repository> </repositories> <dependencies> <dependency> <groupId>e-iceblue</groupId> <artifactId>spire.pdf.free</artifactId> <version>5.1.0</version> </dependency> </dependencies>
壓縮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 CompressPDFImage { public static void main(String[] args) { //建立 PdfDocument 類的物件。 PdfDocument doc = new PdfDocument(); //載入 PDF 檔案 doc.loadFromFile("測試檔案.pdf"); //將增量更新設定為false doc.getFileInfo().setIncrementalUpdate(false); //將壓縮級別設定為最佳 doc.setCompressionLevel(PdfCompressionLevel.Best); //迴圈遍歷檔案中的頁面 for (int i = 0; i < doc.getPages().getCount(); i++) { //獲取特定頁面 PdfPageBase page = doc.getPages().get(i); //獲取每個頁面的影象資訊集合 PdfImageInfo[] images = page.getImagesInfo(); //遍歷集合中的專案 if (images != null && images.length > 0) for (int j = 0; j < images.length; j++) { //獲取指定影象 PdfImageInfo image = images[j]; PdfBitmap bp = new PdfBitmap(image.getImage()); //設定壓縮質量 bp.setQuality(20); //用壓縮後的圖片替換原始圖片 page.replaceImage(j, bp); } //儲存檔案 doc.saveToFile("壓縮PDF檔案.pdf"); doc.close(); } } }
本方法僅對檔案中的高解析度影象進行無失真壓縮,而低解析度的影象將不再被壓縮。
import com.spire.pdf.PdfDocument; import com.spire.pdf.PdfPageBase; import com.spire.pdf.exporting.PdfImageInfo; public class CompressPDFImage { public static void main(String[] args) { //建立 PdfDocument 類的物件 PdfDocument doc = new PdfDocument //載入 PDF 檔案 doc.loadFromFile("範例檔案.pdf"); //將IncrementalUpdate設定為false doc.getFileInfo().setIncrementalUpdate(false); //宣告一個 PdfPageBase 變數 PdfPageBase page; //迴圈遍歷頁面 for (int i = 0; i < doc.getPages().getCount(); i++) { //獲取指定頁面 page = doc.getPages().get(i); if (page != null) { if(page.getImagesInfo() != null){ //迴圈遍歷頁面中的影象 for (PdfImageInfo info: page.getImagesInfo()) { //使用tryCompressImage方法壓縮高解析度影象 page.tryCompressImage(info.getIndex()); } } } } //儲存檔案 doc.saveToFile("輸出結果.pdf"); } }
到此這篇關於詳解如何通過Java實現壓縮PDF檔案的文章就介紹到這了,更多相關Java壓縮PDF內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45