如何在C#中压缩PDF

如何使用 IronPDF 在 C# 中压缩 PDF

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF 在 C# 中提供强大的 PDF 压缩功能,通过压缩嵌入式图像和优化 PDF 树结构来减小文件大小,使文档在保持质量的同时更易于管理存储和共享。

PDF 压缩可以减小 PDF 文档的文件大小,使其在存储、共享和传输时更易于管理。 无论您是在处理 从 HTML 生成的 PDF 还是 现有的 PDF 文件,压缩对于优化文档处理都至关重要。

图片通常占 PDF 文件大小的大部分。 IronPDF 提供压缩功能,可减小嵌入图片的大小,并优化表格较多的 PDF 中经常出现的树形结构。 这些技术可与通过各种方法创建的 PDF 无缝协作,包括 URL 到 PDF 的转换HTML 文件转换

快速入门:使用IronPDF压缩 PDF 文件

使用 IronPDF 的压缩工具减小 PDF 文件大小。 使用 PdfDocument.FromFile 加载 PDF,使用 Compress 方法应用压缩(使用默认选项),然后保存优化后的 PDF。 这一过程可确保在保证质量的同时大幅缩小文件尺寸。

  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/IronPdf

    PM > Install-Package IronPdf
  2. 复制并运行这段代码。

    PdfDocument.FromFile("input.pdf").CompressImages(40).SaveAs("compressed.pdf");
  3. 部署到您的生产环境中进行测试

    通过免费试用立即在您的项目中开始使用IronPDF

    arrow pointer


如何压缩 PDF 中的图像?

JPEG 压缩质量从 1% (质量极低)到 100% (损失极小)不等。 在处理包含嵌入式图像的 PDF 或需要管理字体和图形时,了解这些级别会有所帮助。

  • 90% 及以上:高质量
  • 80%-90%:中等质量
  • 70%-80%:低质量

尝试使用各种值来平衡质量和文件大小。质量降低因输入图像类型而异--有些图像比其他图像显示出更明显的清晰度损失。 在使用 Azure Blob Storage 中的图像或使用 自定义水印创建 PDF 时,这一点尤为重要。

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-image.cs
using IronPdf;

ChromePdfRenderer renderer = new ChromePdfRenderer();

PdfDocument pdf = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

// Compress images in the PDF
pdf.CompressAndSaveAs("compressed.pdf", 40);
$vbLabelText   $csharpLabel

图像压缩会带来哪些结果?

减少了 39.24%

显示压缩.pdf (449 KB) 与非压缩.pdf (739 KB) 的文件对比,展示图像压缩结果

图像压缩选项如何工作?

两个关键的图像压缩选项:

ShrinkImage: 根据 PDF 中的可见尺寸缩小图像分辨率。 通过优化高分辨率图像,这极大地减少了文件大小,而这些图像在其预期用途中并不需要完整的质量。

HighQualitySubsampling: 确定色度子采样方法。 "True "采用 4:4:4 分采样技术,以获得完整的色彩细节。 "False "使用 4:1:1 的子采样,减少了色彩细节以减小文件大小。

色度子采样通过在保持亮度分辨率的同时降低色彩信息分辨率,从而在保持视觉质量的同时降低数据要求。 人眼对亮度的敏感度高于对色彩变化的敏感度,因此这种技术对摄影图像非常有效。

在 4:4:4 子采样中,每个像素都保留了完整的色彩信息。 在 4:1:1 的子采样中,色彩信息会减少,从而减小文件大小,但也会减少色彩细节。 请根据您对质量和文件大小的要求进行选择。


如何压缩 PDF 树结构?

该功能通过最小化 Chrome 浏览器引擎创建的树形结构来减小 PDF 的大小。对于 Chrome 引擎生成的包含大量表格数据的 PDF,该功能最为有效。 有些渲染引擎输出的 PDF 没有这种结构,因此在这种情况下该功能无效。 在处理复杂布局或合并具有冗余结构元素的多个 PDF 文件时,这种技术非常有价值。

删除树形结构可能会影响文本高亮和提取效果。 在应用压缩时,尤其是当用户需要从压缩 PDF 中提取文本和图像时,要考虑到这种权衡。

Test the CompressStructTree method using this PDF with table data.

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-tree-structure.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("table.pdf");

// Compress tree structure in PDF
pdf.CompressAndSaveAs("compressedTable.pdf", null, true);
$vbLabelText   $csharpLabel

树形结构压缩可以减少多少文件大小?

减少了 67.90%! 此百分比在更大的表格PDF中增加。

显示压缩结果的文件比较 compressedTable.pdf (52 KB) vs table.pdf (162 KB)

如何同时应用两种压缩方法?

IronPDF 的 Compress 方法可以同时配置图像和树结构压缩。 这种组合方法对于包含图像和结构化数据的复杂 PDF 尤为有效,例如包含图表的报告或内嵌表格和图形的文档。

:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-compress.cs
using IronPdf;

PdfDocument pdf = PdfDocument.FromFile("sample.pdf");

// Configure compression with automatic optimization
pdf.CompressAndSaveAs("compressed.pdf", 80, true);
$vbLabelText   $csharpLabel

有哪些压缩选项?

  • CompressImages: 使用 JPG 编码压缩现有图像。 默认为 false。 使用指定的压缩设置处理所有嵌入图片。

  • RemoveStructureTree: 通过移除结构树显著减小文档大小。 可能会影响复杂文档中的文本选择。 对于 HTML 生成的带表格的 PDF 文件最为有效。

  • JpegQuality: 设置图像压缩的 JPEG 质量(1-100)。 默认值为 42。

  • HighQualityImageSubsampling: 选择 4:4:4 子采样以获得更高的质量(真)或 4:1:1 子采样以获得更小的文件(假)。 取决于色彩准确度要求。

  • ShrinkImages: 降低图像分辨率以大幅减小文件大小。对于超出显示要求的高分辨率图像非常有效。

在申请压缩时,请考虑您的使用案例。 存档目的可能会优先考虑质量而不是文件大小。网络分发可能需要较小的文件。 根据您处理的是 PDF/A 兼容文档还是标准 PDF,对设置进行微调。

准备好看看您还能做些什么吗? 点击此处查看我们的教程页面:附加功能

常见问题解答

压缩后 PDF 文件的大小能减少多少?

IronPDF 可通过图像压缩和结构优化将 PDF 文件尺寸缩小 75%。在所示示例中,利用图像压缩技术将文件缩小了 39.24%。

IronPDF 如何在 C# 中压缩 PDF 文件?

IronPDF 通过一个方法——CompressAndSaveAs——来处理压缩。它使用可配置的 JPEG 质量(1–100)来减小嵌入图像的大小,并可通过设置 removeStructureTree: true 来选择性地剥离 PDF 的内部结构树,这对表格较多的文档特别有效。

PDF 中的 JPEG 压缩应使用什么质量级别?

IronPDF 支持 1% 到 100% 的 JPEG 压缩质量。推荐级别为90%及以上为高质量,80%-90%为中等质量,70%-80%为低质量。最佳设置取决于文件大小和视觉质量要求之间的平衡。

只用一行代码就能压缩 PDF 吗?

是的,IronPDF 支持通过单行代码实现 PDF 压缩:PdfDocument.FromFile("input.pdf").CompressAndSaveAs("compressed.pdf", 40); 该代码会加载 PDF 文件,以 40% 的质量压缩图片,并保存结果。

压缩是否适用于从 HTML 创建的 PDF?

是的,IronPDF 的压缩功能可与通过各种方法(包括 HTML 字符串到 PDF 的转换、URL 到 PDF 的转换、HTML 文件转换)创建的 PDF 以及现有 PDF 文件无缝兼容。

哪些类型的内容最受益于 PDF 压缩?

图像通常占 PDF 文件大小的绝大部分,因此图像较多的文档是压缩的理想对象。此外,具有复杂表格结构的 PDF 也能从 IronPDF 的结构树压缩功能中受益。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

审核者
Jeff Fritz
Jeffrey T. Fritz
首席项目经理 - .NET 社区团队
Jeff 也是 .NET 和 Visual Studio 团队的首席项目经理。他是 .NET Conf 虚拟会议系列的执行制片人,并主持“Fritz and Friends”直播节目,每周两次与观众一起谈论技术并编写代码。Jeff 撰写研讨会、演示文稿并计划包括 Microsoft Build、Microsoft Ignite、.NET Conf 和 Microsoft MVP 峰会在内的最大型微软开发者活动的内容。
准备开始了吗?
Nuget 下载 17,803,474 | 版本: 2026.3 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronPdf
运行示例看着你的HTML代码变成PDF文件。