如何通过Java压缩PDF文档

秋桐
• 阅读 481

PDF文档在日常工作中应用广泛,经常用于保存公司文件,电子图书或网络资料等大篇幅内容。然而,内容过多往往也会导致PDF文件过大,不便于其保存和发送。在这种情况下,我们可以选择使用Free Spire.PDF for Java压缩PDF文件。这一方法主要通过压缩文件内的图片、不需要的注释行和空格等来压缩文件大小,以此节约储存空间,减少文件传送时间。以下是具体的操作步骤。

安装Spire.PDF.Jar

方法一: 如果您使用的是 maven,可以通过添加以下代码到项目的 pom.xml 文件中,将 JAR 文件导入到应用程序中。

<repositories>
    <repository>
        <id>com.e-iceblue</id>
        <name>e-iceblue</name>
        <url>https://repo.e-iceblue.com/nexus/content/groups/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,Module,Dependencies。再点击右方绿色“+”下的第一个选项JARs or Directories,找到解压后的Spire.PDF.jar 文件,点击确认,将其导入到项目中。

!!!注意:Free Spire.PDF for Java支持10页内的PDF文档,如果PDF页数过多,可以选择使用Spire.PDF for Java。(可以免费申请使用一个月,不用白不用)

示例代码:

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();
        }
    }
}

其他功能可以通过以下链接查看 Spire.PDF for Java Program Guide Content

点赞
收藏
评论区
推荐文章
秋桐 秋桐
1年前
通过Java将PPT转换为PDF
PPT和PDF都是非常实用的文档格式。由于PDF文件更为稳定安全且易于传输或储存,所以当需要共享或打印演示文稿时,可以先将PPT转换成PDF格式再进行操作。下面我将介绍如何通过编程的方法实现该转换,所用到的产品是Java组件FreeSpire.PresentationforJava。该方法只需简单几步操作即可实现,同时也能够维持文档内容格式不变。下面是具体方法和示例代码。
Wesley13 Wesley13
3年前
PDF文件在电脑上如何进行编辑
PDF文件是比较常见的文件保存格式,因为PDF文件的保存格式受到很多人的欢迎。它的文件真实性很高,但是电脑上很少有软件来打开PDF文件,更何况是打开PDF文件来进行对文件的编辑。PDF编辑软件下载http://bianji.xjpdf.com/(https://www.oschina.net/action/GoToLink?urlhttp%3A%2
秋桐 秋桐
1年前
通过Java程序将Excel转换为PDF文档格式
Excel广泛应用于商业、教育等众多领域,具有丰富的数据处理和分析功能,包括计算、图表、排序、筛选、数据透视表等。在处理大型数据内容时,Excel绝对是最佳工具。但如果要将处理好的数据内容进行保存和传输的话,转换为PDF文档格式或许更加可靠。PDF文档的稳定布局可以避免数据内容被随意更改,即使是在多次传输后也能保证数据的准确性。将Excel转换为PDF的工具有很多。这里我将介绍如何通过编程的方法来实现该功能。以Java代码为例,使用到的产品是FreeSpire.XLSforJava(免费版)。下面是程序环境和示例代码。
铁扇公主 铁扇公主
1年前
简单pdf文档大小压缩软件:PDF Squeezer 中文 for mac
PDFSqueezer是一款易于使用的PDF压缩工具。它通过压缩图像和删除无关信息来减小大型PDF文档的大小。这将有助于您节省带宽成本,数字存储成本和网络传输时间。只需将文件拖放到应用程序窗口即可从预定义的压缩过滤器中进行选择或创建自己批量压缩多个文件压缩
秋桐 秋桐
1年前
如何通过Python代码旋转PDF页面
日常处理PDF文档时,我们时常会遇到页面颠倒、很难正常阅读或打印的情况。在这种情况下,我们可以通过旋转页面来调整文档的方向。旋转时,也可以根据具体情况,选择顺时针或逆时针旋转特定的角度,以使页面内容更加清晰可读或适应特定的显示需求。这一功能可以通过PDF处理工具或者库来实现。这篇文章将介绍如何使用PDF库在Python平台上旋转文档页面。
京东云开发者 京东云开发者
11个月前
移动端提高pdf预览清晰度
背景:移动端预览PDF文件,通用的解决方案是使用vuepdf插件,其内置pdf.js,原理是基于HTML5的标签,通过将PDF文件转换为图片或来实现对PDF文件的预览,插件好使没毛病😆,但是如果我们的需求是要在移动端预览内容很密集的文件时,预览效果就不理
下载就永久免费的日常软件,PDF,图片编辑,手机清理软件
日常学习,办公经常会使用pdf,图片编辑,手机清理软件,这些软件在需要时候很难找到合适,PDF有各种需求,格式转换,编辑,样式调整,解密等等,为了更高效地处理PDF文件和图片编辑,推荐使用一款全能的PDF和图片编辑软件。这种软件功能强大,支持各种格式的文件
美凌格栋栋酱 美凌格栋栋酱
1个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
董承 董承
2天前
Acrobat Pro DC 2024 中文(PDF编辑) DC 2024 win10/11详细安装教程(下载)
AcrobatDC2024是一款专业PDF文档编辑和管理软件。它提供了强大的功能,使用户可以轻松创建、编辑、共享和签署PDF文件。允许用户将纸质文档、电子表单Excel、电子邮件、网站、照片、Flash等各种内容扫描或转换为PDF文档,让你可以非常顺手的处
秋桐 秋桐
1年前
Java 向PDF中添加图像水印
水印一般用于标注文档的版权信息、作者、所属机构或者文档属性等。不同于文本批注等,文字水印是绘制到页面中的元素,所以不会被轻易删除。因此,水印也是一种很好的防伪手段。水印又分为文本水印和图片水印两种。之前已经介绍过向PDF中添加文本水印的方法。这次,我将分享通过Java代码给PDF文档添加图像水印的具体方法和示例代码。使用到的工具是FreeSpire.PDFforJava(免费版)。