不同的组织使用 PDF 文件进行安全和有组织的信息交换。但是,有时 PDF 文件会因为图像、视频、绘图等嵌入内容而变得巨大。您可以轻松优化或压缩这样的 PDF 文件大小,而不会影响质量。让我们探索以下可以合并到 Java 应用程序中的 PDF 大小压缩和优化方案:
PDF 大小优化和压缩 API – 安装
您可以利用 Aspose.PDF for Java API 的高效可靠的例程来优化或压缩大尺寸 PDF 文件,同时保持相同的质量。您可以从 Downloads 或项目中的 Maven 配置 下载 JAR 文件。
使用 Java 优化 Web 的 PDF 文档
当您需要在网页中使用 PDF 文档时,可以对其进行优化。此优化有助于尽快显示 PDF 文档的第一页。您可以按照以下步骤获得优化的 PDF 文件:
- 开源 PDF 文件
- 调用优化方法进行PDF优化
- 保存输出 PDF 文件
下面的代码片段是如何在 Java 环境中优化 Web 的 PDF 文档的示例:
// 打开文档
Document pdfDocument = new Document("Original.pdf");
// 网络优化
pdfDocument.optimize();
// 保存输出文档
pdfDocument.save("Optimized_output.pdf");
使用 Java 压缩或优化包含图像的 PDF 的大小
在这里,我们将主要讨论 PDF 文件包含大量图像且体积巨大的场景。例如,一个 PDF 文件,其中包含不同型号飞机的图纸以及每个部件(次要或主要部件)的信息,包括所有部件的图像或图片。此外,许多专业文档可能包含图像作为文件的主要工件。在这种情况下,我们可以通过以下方法压缩 PDF 文件:
使用 Java 缩小、压缩和调整所有图像的大小
您可以通过缩小、压缩和调整图像大小来最小化包含许多图像的 PDF 文件的大小。大小的改进可能很明显,因为大部分文件大小都被我们现在打算缩小的图片所覆盖。您需要按照以下步骤来缩小、压缩和调整 PDF 文件中的图片或图像的大小:
- 加载输入 PDF 文件
- 初始化 OptimizationOptions 对象
- 设置图像质量和分辨率
- 调用 optimizeResources 方法
- 保存输出的 PDF 文档
下面的代码片段显示了如何使用 Java 缩小或压缩图像以减小和最小化 PDF 文件大小:
// 加载输入文档
Document doc = new Document(dataDir + "Test.pdf");
// 初始化 OptimizationOptions 对象
OptimizationOptions opt = new OptimizationOptions();
// 启用图像压缩
// 设置 PDF 文件中图像的质量和分辨率
opt.getImageCompressionOptions().setCompressImages(true);
opt.getImageCompressionOptions().setImageQuality(10);
opt.getImageCompressionOptions().setMaxResolution(150);
opt.getImageCompressionOptions().setResizeImages(true);
doc.optimizeResources(opt);
// 保存更新的文件
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();
// 任何一个
// 取消嵌入 PDF 中的所有字体
opt.setUnembedFonts(true);
//或者
// 仅保留已使用字符的嵌入字体
opt.setSubsetFonts(true);
// 链接重复的流
opt.setLinkDuplcateStreams(false);
// 删除未使用的流
opt.setRemoveUnusedStreams(false);
// 删除未使用的对象
opt.setRemoveUnusedObjects(false);
doc.optimizeResources(opt);
// 保存更新的文件
doc.save(dataDir + "compressingPDF.pdf");
到目前为止,我们主要讨论了带有图像的 PDF 文件的优化方法。现在让我们继续进行一些 PDF 优化的方法。
使用 Java 压缩或减小 PDF 文档大小
PDF 文件通常包含共同占用空间的注释、可编辑的表单域和颜色伪影。让我们探索以下压缩 PDF 文件大小的过程。
使用 Java 删除或展平注释以减小大小
PDF 文件可以包含很多注释。例如,水印、评论、形状等。如果不再需要注释,您可以删除它们,如果不需要进一步更改,可以加肥注释。请按照以下步骤删除或展平注释以优化 PDF 文件大小:
- 开源 PDF 文档
- 遍历每一页
- 展平或删除 注解
- 保存输出的 PDF 文档
下面的代码片段是如何使用 Java 删除或展平 PDF 文档中的注释的示例:
// 打开文档
Document pdfDocument = new Document(dataDir + "OptimizeDocument.pdf");
// 遍历每个页面和注释
for (Page page : pdfDocument.getPages())
{
for (Annotation annotation : page.getAnnotations())
{
// 要么展平注释
annotation.flatten();
// 或删除注释
// page.getAnnotations().delete(注释);
}
}
// 保存优化的 PDF 文档
pdfDocument.save(dataDir + "OptimizeDocument_out.pdf");
使用 Java 删除表单域以最小化 PDF 文件大小
可填写的 PDF 表单在您需要大规模提交数据的情况下很常见。提交数据后,可以删除可填写的表单字段以优化和最小化 PDF 文件大小。您需要按照以下步骤删除表单字段:
- 加载输入的 PDF 文档
- 检查 PDF 文档中的表单域
- 遍历每个字段并将其展平
- 保存更新的压缩 PDF 文件
// 加载源 PDF 表单
Document doc = new Document(dataDir + "input.pdf");
// 展平表单字段
if (doc.getForm().getFields().length > 0)
{
for (Field item : doc.getForm().getFields())
{
item.flatten();
}
}
dataDir = dataDir + "FlattenForms_out.pdf";
// 保存更新的文档
doc.save(dataDir);
使用 Java 将 RGB 颜色空间转换为灰度以进行 PDF 压缩和优化
大多数 PDF 文件都包含文本内容,这些内容也可以在灰度色彩空间中很好地表示。此外,当目的和优先级是保存每个字节时,即使图像也可以转换为灰度,因为重点是存档数据。您可以按照以下步骤通过将 RGB 颜色空间转换为灰度来压缩和优化 PDF 文件大小:
- 访问源 PDF 文档
- 初始化 RgbToDeviceGrayConversionStrategy 实例
- 将每种颜色的颜色空间转换为灰度
- 保存输出优化的 PDF 文件
以下代码片段显示了如何通过更改 Java 环境中的颜色空间来压缩和优化 PDF 大小:
// 加载输入的 PDF 文档
Document document = new Document("input.pdf");
// 初始化 RgbToDeviceGrayConversionStrategy 实例
RgbToDeviceGrayConversionStrategy strategy = new RgbToDeviceGrayConversionStrategy();
for (int idxPage = 1; idxPage <= document.getPages().size(); idxPage++) {
Page page = document.getPages().get_Item(idxPage);
// 将每页的色彩空间转换为灰度
strategy.convert(page);
}
// 保存输出 PDF 文档
document.save("output.pdf");
结论
在本文中,我们介绍了优化和压缩 PDF 文件以减小大小的不同方法和方法。首先,我们使用 Java 优化了 Web 的 PDF 文件大小。然后我们学习了对包含多个图像的 PDF 文件中的图像进行缩小、压缩和调整大小。此外,我们还探索了使用字体、流、注释、表单域以及将 PDF 文档的颜色空间转换为灰度,以便可以使用 Java 创建尺寸更小但质量相同的 PDF 文件。此外,如有任何与此主题相关的疑问,您可以通过免费支持论坛与我们联系。
也可以看看
信息:使用 Aspose 的新在线网络应用程序,您可以将一组图像转换为视频。您可能还想查看另一项服务,该服务从视频中提取声音。