PDF文档在日常工作中应用广泛,经常用于保存公司文件,电子图书或网络资料等大篇幅内容。然而,内容过多往往也会导致PDF文件过大,不便于其保存和发送。在这种情况下,我们可以选择使用Free Spire.PDF for Java压缩PDF文件。这一方法主要通过压缩文件内的图片、不需要的注释行和空格等来压缩文件大小,以此节约储存空间,减少文件传送时间。以下是具体的操作步骤。
安装Spire.PDF.Jar
方法一: 如果您使用的是 maven,可以通过添加以下代码到项目的 pom.xml 文件中,将 JAR 文件导入到应用程序中。
1<repositories> 2 <repository> 3 <id>com.e-iceblue</id> 4 <name>e-iceblue</name> 5 <url>https://repo.e-iceblue.com/nexus/content/groups/public/</url> 6 </repository> 7</repositories> 8<dependencies> 9 <dependency> 10 <groupId>e-iceblue</groupId> 11 <artifactId>spire.pdf.free</artifactId> 12 <version>5.1.0</version> 13 </dependency> 14</dependencies>
方法二: 如果您没有使用 maven,则可以从此链接下载Free Spire.PDF for Java,找到lib文件夹下的Spire.PDF.jar并进行解压;然后在IDEA中创建一个新项目,依次点击File,Project Structure,Module,Dependencies。再点击右方绿色“+”下的第一个选项JARs or Directories,找到解压后的Spire.PDF.jar 文件,点击确认,将其导入到项目中。
!!!注意:Free Spire.PDF for Java支持10页内的PDF文档,如果PDF页数过多,可以选择使用Spire.PDF for Java。(可以免费申请使用一个月,不用白不用)
示例代码:
1import com.spire.pdf.PdfCompressionLevel; 2import com.spire.pdf.PdfDocument; 3import com.spire.pdf.PdfPageBase; 4import com.spire.pdf.exporting.PdfImageInfo; 5import com.spire.pdf.graphics.PdfBitmap; 6 7public class CompressPdfDocument { 8 9 public static void main(String[] args) { 10 11 //创建PdfDocument类的对象 12 PdfDocument doc = new PdfDocument(); 13 14 //加载PDF文档 15 doc.loadFromFile("sample.pdf"); 16 17 //禁用增量更新 18 doc.getFileInfo().setIncrementalUpdate(false); 19 20 //将压缩级别设置为最佳 21 doc.setCompressionLevel(PdfCompressionLevel.Best); 22 23 //遍历文档页面 24 for (int i = 0; i < doc.getPages().getCount(); i++) { 25 26 //获取指定页面 27 PdfPageBase page = doc.getPages().get(i); 28 29 //获取每个页面的图像信息集合 30 PdfImageInfo[] images = page.getImagesInfo(); 31 32 //遍历集合中的所有项目 33 if (images != null && images.length > 0) 34 for (int j = 0; j < images.length; j++) { 35 36 //获取指定图片 37 PdfImageInfo image = images[j]; 38 PdfBitmap bp = new PdfBitmap(image.getImage()); 39 40 //设置压缩质量 41 bp.setQuality(20); 42 43 //将原始图像替换为压缩图像 44 page.replaceImage(j, bp); 45 } 46 47 //将结果文档保存至另一个PDF文档中 48 doc.saveToFile("Compressed.pdf"); 49 doc.close(); 50 } 51 } 52} 53
其他功能可以通过以下链接查看 Spire.PDF for Java Program Guide Content
