如何压缩 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%!!
了解图像压缩选项
让我们深入了解我们的图像压缩选项的细节:
ShrinkImage:此功能根据图像在PDF文档中的可见大小缩小图像分辨率。 通过这样做,它显著减小了图像的大小和质量,优化它们以便于高效存储和传输。
高质量子采样:此设置决定了用于图像压缩的色度子采样方法。 选择“True”会使用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。
- 高质量图像二次采样:此属性决定是否使用444色度二次采样来提高图像质量。(真)或 411 色度子采样,进一步缩小图像尺寸(错误).
- ShrinkImages:缩小图像分辨率可以大幅降低文档中图像的大小和质量。