使用Java压缩或优化相同质量的PDF文件

您所在的位置:网站首页 怎么压缩代码最小的文件 使用Java压缩或优化相同质量的PDF文件

使用Java压缩或优化相同质量的PDF文件

2024-07-12 23:13| 来源: 网络整理| 查看: 265

不同的组织使用PDF文件进行安全且有组织的信息交换。但是,有时由于嵌入的内容(例如图像,视频,绘图等),PDF文件的大小会变得很大。

在这种情况下,可以轻松优化或压缩此类PDF文件大小,而不会影响质量。让我们探索以下PDF大小压缩和优化方案,您可以将其合并到Java应用程序中:

使用Java优化Web的PDF文档使用Java优化或压缩包含图像的PDF的大小 使用Java缩小,压缩和调整所有图像的大小删除嵌入式字体,未使用的流并链接重复的流使用Java缩小或压缩PDF文档大小 使用Java删除或展平注释以减小大小删除表单字段以使用Java最小化PDF文件大小使用Java将RGB颜色空间转换为灰度以进行PDF压缩和优化

目前,Java版Aspose.PDF升级到新版版,优化转换为JPG的时间过长问题,增强PDF到DOCX转换功能,修复PDF到HTML的转换等诸多bug问题,感兴趣的朋友可点击下方按钮下载最新版。

使用Java优化Web的PDF文档

需要在网页中使用PDF文档时,可以对其进行优化。此优化有助于尽快显示PDF文档的首页。您可以按照以下步骤获得优化的PDF文件:

开源PDF文件调用PDF优化的 optimize method保存输出的PDF文件

下面的代码段是如何在Java环境中为Web优化PDF文档的示例:

// Open document Document pdfDocument = new Document("Original.pdf"); // Optimize for web pdfDocument.optimize(); // Save output document pdfDocument.save("Optimized_output.pdf"); 使用Java压缩或优化包含图像的PDF的大小

在这里,我们将主要讨论PDF文件包含大量图像因而尺寸巨大的情况。例如,一个PDF文件,其中包含不同型号飞机的图纸以及有关每个零件(次要或主要)的信息,这些信息作为所有组件的图像或图片包含在内。此外,许多专业文档可能包含图像作为文件的主要工件。

在这种情况下,我们可以使用以下方法压缩PDF文件:

①使用Java缩小,压缩和调整所有图像的大小

您可以通过缩小,压缩和调整图像大小来最小化包含许多图像的PDF文件的大小。由于我们现在打算缩小图片中的大多数文件大小,因此文件大小的改进可能会很明显。您需要按照以下步骤来缩小,压缩和调整PDF文件中的图片或图像的大小:

加载输入PDF文件初始化OptimizationOptions对象设置图像质量和分辨率调用optimizeResources方法保存输出的PDF文档

下面的代码段显示了如何使用Java缩小或压缩图像以减小和最小化PDF文件大小:

// Load input document Document doc = new Document(dataDir + "Test.pdf"); // Initialize OptimizationOptions object OptimizationOptions opt = new OptimizationOptions(); // Enable image compression // Set the quality and resolution of images in PDF file opt.getImageCompressionOptions().setCompressImages(true); opt.getImageCompressionOptions().setImageQuality(10); opt.getImageCompressionOptions().setMaxResolution(150); opt.getImageCompressionOptions().setResizeImages(true); doc.optimizeResources(opt); // Save the updated file doc.save(dataDir + "compressingPDFWithImages_out.pdf"); ②使用Java删除嵌入式字体,未使用的流并链接重复的流

当您需要减小PDF文件大小时,每个字节都很重要。嵌入式字体可以使用不同的方法来帮助减小文件大小。例如,您可以取消嵌入所有字体,也可以仅保留PDF文件中使用的字体字符的子集。这将部分取消嵌入字体,这仍将有助于最大程度地减小文件大小。此外,您可以删除未使用的流或链接重复的流以节省更多空间。这些PDF优化将大大减少文件大小。您需要按照以下步骤优化和减小PDF文件的大小:

加载输入的PDF文档初始化OptimizationOptions类对象取消嵌入所有字体或字体的子集链接重复流删除未使用的流

以下代码详细说明了如何压缩PDF文件以优化,减小和最小化PDF文档的大小:

Document doc = new Document(dataDir + "Test.pdf"); OptimizationOptions opt = new OptimizationOptions(); // Either // Unembed all fonts in PDF opt.setUnembedFonts(true); //OR // only keep embedded fonts for used characters opt.setSubsetFonts(true); // link duplicate streams opt.setLinkDuplcateStreams(false); // Remove unused streams opt.setRemoveUnusedStreams(false); // Remove unused objects opt.setRemoveUnusedObjects(false); doc.optimizeResources(opt); // Save the updated file doc.save(dataDir + "compressingPDF.pdf"); 使用Java压缩或缩小PDF文档大小

PDF文件通常包含注释,可编辑的表单字段和颜色伪影,这些伪影共同占用空间。让我们探索以下过程来压缩PDF文件大小。

①使用Java删除或展平注释以减小大小

PDF文件可以包含很多注释。例如,水印,注释,形状等。如果不再需要注释,则可以将其删除;如果不需要进一步的更改,则可以对其进行注释。请按照以下步骤删除或展平注释以优化PDF文件大小:

开源PDF文档遍历每个页面展平或删除注释保存输出的PDF文档

以下代码段是如何使用Java删除或展平PDF文档中注释的示例:

// Open document Document pdfDocument = new Document(dataDir + "OptimizeDocument.pdf"); // Iterate through each page and annotation for (Page page : pdfDocument.getPages()) { for (Annotation annotation : page.getAnnotations()) { // Either flatten the annotation annotation.flatten(); // OR delete the annotation // page.getAnnotations().delete(annotation); } } // Save optimized PDF document pdfDocument.save(dataDir + "OptimizeDocument_out.pdf"); ②删除表单字段以使用Java最小化PDF文件大小

需要大量提交数据的可填写PDF表单很常见。提交数据后,可以删除可填写的表单字段,以优化和最小化PDF文件的大小。您需要按照以下步骤删除表单字段:

加载输入的PDF文档检查PDF文档中的表单字段遍历每个字段并将其展平保存更新的压缩PDF文件 / Load source PDF form Document doc = new Document(dataDir + "input.pdf"); // Flatten Form fields if (doc.getForm().getFields().length > 0) { for (Field item : doc.getForm().getFields()) { item.flatten(); } } dataDir = dataDir + "FlattenForms_out.pdf"; // Save the updated document doc.save(dataDir); ③使用Java将RGB颜色空间转换为灰度以进行PDF压缩和优化

大多数PDF文件都包含文本内容,这些文本内容也可以在灰度颜色空间中很好地表示。而且,当目的和优先级是保存每个字节时,甚至图像也可以转换为灰度,这是因为重点在于归档数据。您可以按照以下步骤通过将RGB颜色空间转换为灰度来压缩和优化PDF文件大小:

访问源PDF文档初始化RgbToDeviceGrayConversionStrategy实例将每种颜色的色彩空间转换为灰度保存输出优化的PDF文件

以下代码片段显示了如何通过在Java环境中更改颜色空间来压缩和优化PDF大小:

// Load input PDF document Document document = new Document("input.pdf"); // Initialize RgbToDeviceGrayConversionStrategy instance RgbToDeviceGrayConversionStrategy strategy = new RgbToDeviceGrayConversionStrategy(); for (int idxPage = 1; idxPage


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3