如何壓縮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 文件中的可見大小縮小圖像解析度。通過這樣做,它大大減少了圖像的大小和質量,優化了它們的存儲和傳輸效率。
HighQualitySubsampling:此設置決定用於圖像壓縮的色度子採樣方法。選擇 "True" 將使用 4:4:4 色度子採樣,確保全彩細節的高質量圖像。相反,選擇 "False" 將使用 4:1:1 色度子採樣,以犧牲一些色彩細節來進一步減少圖像大小。
色度子採樣是數位圖像壓縮中的一項關鍵技術,旨在減少表示圖像所需的數據,同時保留其視覺質量。它通過選擇性減少色彩信息的解析度來實現這一目標。 (色度) 同時保持亮度資訊的全部解析度 (亮度)在「4:4:4」色度子採樣中,每個像素保留其自身的顏色信息,從而不會損失顏色細節。相反,在「4:1:1」色度子採樣中,顏色信息以較低分辨率子採樣,減少顏色細節但也減少文件大小。
壓縮樹狀結構範例
此功能用於通過最小化 Chrome 引擎創建的樹狀結構來減少 PDF 的大小。它適用於從包含大量表數據的 HTML 生成的 PDF。某些 PDF 渲染引擎可能會輸出不包含此樹狀結構的 PDF,使得此功能無法生效。
移除所有此樹狀結構的缺點是對於某些PDF,高亮文本或提取功能可能不會那麼有效。
讓我們使用 table.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 色度抽样以進一步減少圖像大小 (錯誤)- ShrinkImages:縮小影像解析度可以大幅減小文件中影像的大小和質量。