怎么使用Java压缩PDF文档

这篇文章主要讲解了“怎么使用Java压缩PDF文档”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Java压缩PDF文档”吧!

安装Spire.PDF.Jar

方法一:

如果您使用的是 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>

方法二:

如果您没有使用 maven,则可以从此链接下载Free Spire.PDF for Java,找到lib文件夹下的Spire.PDF.jar并进行解压;然后在IDEA中创建一个新项目,依次点击“文件”(File),“项目结构”(Project Structure),“组件”(Modules),“依赖项”(Dependencies),再点击右方绿色“+”下的第一个选项“JAR文件或路径”(JARs or Directories),找到解压后的Spire.PDF.jar 文件,点击确认,将其导入到项目中。

注意:Free Spire.PDF for Java支持10页内的PDF文档,如果PDF页数过多,可以选择使用Spire.PDF for Java。

压缩PDF文档

下面是详细操作步骤和相关代码

  • 创建PdfDocument类的对象。

  • 使用PdfDocument.loadFromFile()方法加载PDF文档。

  • 使用PdfDocument.getFileInfo().setIncrementalUpdate() 方法禁用增量更新。

  • 使用PdfDocument.setCompressionLevel()方法将压缩级别设置为最佳,用于压缩文档中的内容。您可以从PdfCompressionLevel列举中选择其他级别。

  • 遍历文档页面,并使用pdfpageBase.getimagesInfo()方法获取每个页面的图像信息集合。

  • 遍历集合中的所有项目,并使用PdfBitmap.setQuality() 方法压缩特定图像的质量。

  • 使用pdfpageBase.replaceImage()方法将原始图像替换为压缩图像

  • 使用PdfDocument.savetoFile()方法将文档保存到另一个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) {

        //创建PdfDocument类的对象
        PdfDocument doc = new PdfDocument();

        //加载PDF文档
        doc.loadFromFile("sample.pdf");

        //禁用增量更新
        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);
                }

            //将结果文档保存至另一个PDF文档中
            doc.savetoFile("Compressed.pdf");
            doc.close();
        }
    }
}

怎么使用Java压缩PDF文档

感谢各位的阅读,以上就是“怎么使用Java压缩PDF文档”的内容了,经过本文的学习后,相信大家对怎么使用Java压缩PDF文档这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程之家,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...