构建一个 PDF 压缩器—在线压缩 PDF 文档

在这篇文章中,您将学习如何使用 C#、Java 和 Python 程序化地开发自己的 PDF 压缩工具,以减少 PDF 文件的大小,并全面控制质量、大小和性能。您还可以尝试一个使用相同 API 构建的工作演示,以免费在线压缩 PDF 文档。

压缩 PDF 文件在各种情况下都是必需的。无论您是在优化电子邮件的文件大小、提高加载速度,还是节省存储空间,有效的 PDF 压缩都能带来很大的差异。

在线压缩 PDF 文档

尝试这个在线 PDF compressor 工具,免费在线压缩 PDF 文档:

Image

您只需上传您的 PDF 文档。它会在几秒钟内缩小文件大小,并为您提供一个更小、优化的版本,准备下载。

这个免费的在线 PDF 压缩工具是由 Aspose.PDF 库提供支持的。它使用的 API 与您在本指南中将要使用的一样。因此,您在这里看到的正是您可以通过编程构建的内容。

如何在线压缩PDF文档

  1. 访问 Aspose PDF Compressor 网站。
  2. 通过点击`上传”按钮上传您的 PDF 文件。
  3. 整理文件,如果你有多个PDF。
  4. 点击`压缩”按钮以开始该过程。
  5. 下载压缩的PDF文件,一旦过程完成。

PDF压缩的工作原理以及Aspose.PDF如何实现它

PDF 文件可能包含高分辨率图像、嵌入字体、额外对象和元数据,这些都可能增加文件大小。压缩可以在不牺牲视觉质量或内容准确性的情况下减小文件大小。我们将使用 Aspose.PDF 来优化 PDF 文档。它是一个强大的库,用于在 C#、Java 和 Python 中创建、编辑和处理 PDF 文档。它允许开发人员处理文本、图像、表单、注释以及更复杂的任务,如数字签名、转换和压缩,而无需使用 Adobe Acrobat。

Aspose.PDF 通过其灵活的 OptimizationOptions 类处理压缩,以及用于图像特定调整引擎的 ImageCompressionOptions。

  1. 图像压缩

文档中的图像是导致文件大小增加的主要原因之一。Aspose.PDF 允许您使用以下 ImageCompressionOptions 类属性来压缩和调整它们的大小:

  • CompressImages = true
  • ImageQuality = 70 (0–100)
  • ResizeImages = true
  • MaxResolution = 150
  1. 对象和流清理

冗余元素和未使用的数据流被移除,以简化文件。在 Aspose.PDF 中,OptimizationOptions 类提供以下优化设置:

  • CompressObjects = true
  • RemoveUnusedObjects = true
  • RemoveUnusedStreams = true
  1. 重复流链接

一个 PDF 文档可能有重复的流(例如,重复的字体或图像)。Aspose.PDF 可以通过以下设置在内部链接它们以节省空间,而不影响内容:

  • LinkDuplicateStreams = true
  1. 字体优化

在PDF文档中即使只使用了少量字符,也有嵌入完整字体集的可能性。Aspose.PDF允许您使用以下选项来删除未使用的字体:

  • UnembedFonts = true
  • SubsetFonts = true
  1. 元数据和私人信息删除

去除隐藏的元数据和私人信息,以减小文件大小并保护隐私。

  • RemovePrivateInfo = true

Aspose.PDF 让您完全控制压缩,使您能够构建快速、高效并准备好投入生产的工具。

如何使用 C# 构建 PDF 压缩器

要在 C# 中构建一个 PDF 压缩器,您将使用 Aspose.Pdf.Optimization 命名空间以及 OptimizationOptions 类。以下示例展示了如何通过压缩图像、清理结构和移除不必要的数据来减小 PDF 文件大小。

第 1 步:安装 Aspose.PDF for .NET

通过 NuGet 安装该包:

Install-Package Aspose.PDF

步骤 2:加载并优化 PDF

使用以下代码加载 PDF,应用多个压缩层,并保存优化版本。

using Aspose.Pdf;
using Aspose.Pdf.Optimization;

var document = new Document("MultiplePages.pdf");

// 设置优化选项
var options = new OptimizationOptions
{
    CompressObjects = true,
    RemoveUnusedObjects = true,
    RemoveUnusedStreams = true,

    MaxResoultion = 150,
    LinkDuplicateStreams = true,

    RemovePrivateInfo = true,
    UnembedFonts = true,
    SubsetFonts = true
};

// 配置图像压缩
options.ImageCompressionOptions.CompressImages = true;
options.ImageCompressionOptions.ImageQuality = 50;
options.ImageCompressionOptions.ResizeImages = true;
options.ImageCompressionOptions.MaxResolution = 100;

// 应用优化
document.OptimizeResources(options);

// 保存压缩输出
document.Save("compressed.pdf");

此代码通过以下方式压缩PDF:

  • 调整大小和优化图像
  • 移除未使用的对象和流
  • 清理元数据
  • 子集化和去嵌入字体
  • 链接重复流

您可以调整像 ImageQuality 和 MaxResolution 这样的值,以平衡大小和视觉质量。

如何使用Java构建PDF压缩器

Aspose.PDF for Java 允许您使用与 .NET 中相似的优化选项来压缩 PDF 文件。您可以通过优化图像、删除未使用的对象和清理元数据来减小文件大小。

第 1 步:将 Aspose.PDF for Java 添加到您的项目中

如果您使用 Maven,请添加此依赖项:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>23.4</version> <!-- Use the latest version -->
    <classifier>jdk17</classifier> <!-- or jdk16, jdk18, etc. -->
</dependency>

或从 releases 下载 JAR。

第 2 步:在 Java 中压缩 PDF 文件

import com.aspose.pdf.Document;
import com.aspose.pdf.OptimizationOptions;
import com.aspose.pdf.ImageCompressionOptions;

public class PdfCompressor {
    public static void main(String[] args) {
        // Load PDF
        Document pdf = new Document("MultiplePages.pdf");

        // 设置优化选项
        OptimizationOptions options = new OptimizationOptions();
        options.setCompressObjects(true);
        options.setRemoveUnusedObjects(true);
        options.setRemoveUnusedStreams(true);
        options.setMaxResoultion(150);
        options.setLinkDuplicateStreams(true);
        options.setRemovePrivateInfo(true);
        options.setUnembedFonts(true);
        options.setSubsetFonts(true);

        // 设置图像压缩选项
        ImageCompressionOptions imageOptions = new ImageCompressionOptions();
        imageOptions.setCompressImages(true);
        imageOptions.setImageQuality(50);
        imageOptions.setResizeImages(true);
        imageOptions.setMaxResolution(100);
        options.setImageCompressionOptions(imageOptions);

        // 优化并保存
        pdf.optimizeResources(options);
        pdf.save("compressed.pdf");
    }
}

如何在 Python 中压缩 PDF 文件

Aspose.PDF for Python via .NET 使您可以访问在 C# 和 Java 中可用的相同强大优化功能。您可以通过控制图像质量、删除未使用的数据和清理内部结构来压缩 PDF 文件。

第 1 步:安装 Aspose.PDF for Python

首先,使用 pip 安装该软件包:

pip install aspose-pdf

确保你安装了 .NET 6.0+,因为此包在底层使用了 .NET。

步骤 2:在 Python 中压缩 PDF 文件

import aspose.pdf as ap

# 加载 PDF 文档
document = ap.Document("MultiplePages.pdf")

# 设置优化选项
options = ap.OptimizationOptions()
options.compress_objects = True
options.remove_unused_objects = True
options.remove_unused_streams = True
options.max_resoultion = 150
options.link_duplicate_streams = True
options.remove_private_info = True
options.unembed_fonts = True
options.subset_fonts = True

# 设置图像压缩选项
image_options = options.image_compression_options
image_options.compress_images = True
image_options.image_quality = 50
image_options.resize_images = True
image_options.max_resolution = 100

# 应用优化并保存
document.optimize_resources(options)
document.save("compressed.pdf")

该脚本通过优化图像、字体和结构来压缩 PDF——使其非常适合自动化任务、云工作流或按需处理。

像其他语言一样,您可以调整参数以更好地控制输出大小和质量。

获取免费许可证

您是一名对测试 Aspose 产品没有限制的开发者吗?

您可以获得一个 免费临时许可证 来评估 Aspose.PDF 和其他 Aspose API 的全部功能。 它快捷、简单,并且让您可以访问所有高级功能——非常适合原型设计、测试或集成到您的开发工作流程中。

减小 PDF 文件大小:免费资源

想要更进一步吗?这里有一些免费的资源可以帮助你扩展对 PDF 压缩的知识,并充分利用 Aspose.PDF。

结论

总之,PDF 压缩器允许您在线压缩 PDF 文档。压缩 PDF 文档对于构建高效、高性能的应用程序至关重要。使用 Aspose.PDF,您可以完全控制优化。无论您使用的是 C#、Java 还是 Python。

在本指南中,您探讨了:

  • 一个在线实时PDF压缩器作为工作演示
  • 如何使用Aspose API构建自己的PDF压缩工具
  • 平台特定代码示例,让您快速入门

如果您有任何问题或需要进一步的帮助,请随时通过我们的 free support forum 联系我们。

查看也可