如何压缩 PDF
PDF 压缩是指减小 PDF 文件大小的过程 (便携式文档格式) 文件。采用这种压缩方式是为了使 PDF 文件在存储、共享和传输时更易于管理,尤其是在处理大型或图像丰富的文件时。
图像通常占据 PDF 文件大小的很大一部分,因为与文本和其他内容相比,它们的尺寸通常较大。IronPdf 提供的 PDF 压缩功能可压缩嵌入的图像,并减少 PDF 文件中通常伴随表格数据的树形结构。
如何压缩 PDF
- 下载用于 PDF 压缩的 C# 库
- 导入现有 PDF 文件或渲染新的 PDF 文件
- 使用
压缩图片
方法来缩小 PDF 中的图像尺寸 - 利用
压缩结构树
方法来最小化 PDF 的树形结构 - 导出压缩 PDF 文档
开始在您的项目中使用IronPDF,并立即获取免费试用。
查看 IronPDF 上 Nuget 用于快速安装和部署。它有超过800万次下载,正在使用C#改变PDF。
Install-Package IronPdf
考虑安装 IronPDF DLL 直接。下载并手动安装到您的项目或GAC表单中: IronPdf.zip
手动安装到你的项目中
下载DLL压缩图像示例
调整 JPEG 大小的工作方式是,100% 的质量几乎没有损失,而 1% 的输出图像质量非常低。
- 90% 及以上:视为高质量
80%-90%: 中等质量
- 70%-80%:被视为低质量
请自由探索各种数值,以了解质量和文件大小之间的权衡。值得注意的是,质量的降低会根据输入图像的类型而有所不同,某些图像的清晰度可能会比其他图像降低得更明显。
: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.CompressImages(40);
pdf.SaveAs("compressed.pdf");
Imports IronPdf
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")
' Compress images in the PDF
pdf.CompressImages(40)
pdf.SaveAs("compressed.pdf")
压缩图像 - 大小比较
减少39.24%!!
了解图像压缩选项
让我们深入了解图像压缩选项的细节:
收缩图像:该功能可根据 PDF 文档中的可见尺寸缩减图像分辨率。通过这种方式,它可以大大减小图像的尺寸和质量,优化图像的存储和传输效率。
HighQualitySubsampling:此设置可确定用于图像压缩的色度子采样方法。选择 "真 "则采用 4:4:4 色度子采样,确保图像质量更高,色彩细节更饱满。相反,选择 "False(假)"则采用 4:1:1 色度子采样,牺牲一些色彩细节以进一步缩小图像尺寸。
色度子采样是数字图像压缩中的一项重要技术,旨在减少表示图像所需的数据,同时保持图像的视觉质量。它通过有选择性地降低色彩信息的分辨率来实现这一目的。 (色度) 同时保持亮度信息的完整分辨率 (亮度).
在 "4:4:4 "色度子采样中,每个像素都保留了自己的色彩信息,因此不会丢失色彩细节。相反,在 "4:1:1 "色度子采样中,色彩信息以较低的分辨率进行子采样,从而减少了色彩细节,但也减小了文件大小。
压缩树结构示例
此功能通过最小化 Chrome 浏览器引擎创建的树形结构来缩小 PDF 的大小。对于 Chrome 浏览器引擎从包含大量表格数据的 HTML 生成的 PDF,该功能效果很好。某些 PDF 渲染引擎在输出 PDF 时可能不带树形结构,因此该功能无效。
移除所有这些树形结构的缺点是,对于某些 PDF,高亮文本或提取可能无法有效工作。
让我们使用 表格.pdf 文件来测试 CompressStructTree
方法。
: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.CompressStructTree();
pdf.SaveAs("compressedTable.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("table.pdf")
' Compress tree structure in PDF
pdf.CompressStructTree()
pdf.SaveAs("compressedTable.pdf")
压缩树结构 - 大小比较
减少67.90%!! 表格 PDF 越大,这一比例越高。
高级压缩方法
IronPdf 还有一个 Compress
方法,可以用来配置图像压缩和树形结构压缩,使压缩文档比以往任何时候都更容易。
:path=/static-assets/pdf/content-code-examples/how-to/pdf-compression-compress.cs
using IronPdf;
PdfDocument pdf = PdfDocument.FromFile("sample.pdf");
CompressionOptions compressionOptions = new CompressionOptions();
// Configure image compression
compressionOptions.CompressImages = true;
compressionOptions.JpegQuality = 80;
compressionOptions.HighQualityImageSubsampling = true;
compressionOptions.ShrinkImages = true;
// Configure tree structure compression
compressionOptions.RemoveStructureTree = true;
pdf.Compress(compressionOptions);
pdf.SaveAs("compressed.pdf");
Imports IronPdf
Private pdf As PdfDocument = PdfDocument.FromFile("sample.pdf")
Private compressionOptions As New CompressionOptions()
' Configure image compression
compressionOptions.CompressImages = True
compressionOptions.JpegQuality = 80
compressionOptions.HighQualityImageSubsampling = True
compressionOptions.ShrinkImages = True
' Configure tree structure compression
compressionOptions.RemoveStructureTree = True
pdf.Compress(compressionOptions)
pdf.SaveAs("compressed.pdf")
探索可供选择的方案
- CompressImages:控制是否使用 JPG 编码压缩文档中的现有图像。默认值为 false。
- RemoveStructureTree:删除结构树可以大大减少文档的磁盘空间。不过,它可能会对文本选择产生负面影响,尤其是在复杂的文档中。
- JpegQuality:指定 JPEG 质量 (从 1 到 100) 在压缩图像时使用。默认值为 42。
HighQualityImageSubsampling:此属性决定是否使用 444 色度子采样以获得更高的图像质量 (真) 或 411 色度子采样,进一步缩小图像尺寸 (错误).
- 缩小图像:缩减图像分辨率可大幅降低文档中图像的大小和质量。