如何壓縮PDF文件

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

查克尼思·賓

PDF 壓縮指的是減少 PDF 文件大小的過程(可攜式文件格式)文件。 此壓縮用於使PDF文件更易於存儲、分享和傳輸,特別是在處理大型或圖像豐富的文件時。

圖像通常佔PDF文件大小的重要部分,因為它們的尺寸通常比文本和其他內容大。 IronPdf 提供 PDF 壓縮功能,壓縮嵌入的圖像並減少經常伴隨 PDF 表格數據的樹狀結構。

開始使用 IronPDF

立即在您的專案中使用IronPDF,並享受免費試用。

第一步:
green arrow pointer



壓縮圖像範例

調整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")
VB   C#

壓縮圖像 - 尺寸比較

減少了 39.24%!!

壓縮圖像 - 大小比較

了解圖像壓縮選項

讓我們深入了解我們的圖像壓縮選項的細節:

ShrinkImage:此功能根據圖像在PDF文件中的可見大小縮小圖像分辨率。 這樣做可以顯著減少圖像的大小和質量,優化它們以便於高效存儲和傳輸。

HighQualitySubsampling:此設定確定用於圖像壓縮的色度二次抽樣方法。 選擇「真」將使用 4:4:4 色度子採樣,確保具有全色彩細節的高品質圖像。 相反地,選擇「False」會採用 4:1:1 的色度二次抽樣,這會犧牲一些顏色細節以進一步減少圖像大小。

色度二次抽樣是數位影像壓縮中一項關鍵技術,目的在於減少表示影像所需的數據量,同時保持其視覺品質。 它通過有選擇地降低顏色信息的解析度來實現此功能。(色度)同時保持亮度資訊的全部解析度(亮度).

在 "4:4:4" 色度取樣中,每個像素保留其自己的顏色資訊,因此不會損失顏色細節。 相反,在 "4:1:1" 的色度二次取樣中,顏色信息以較低的解析度進行取樣,減少了顏色細節,但也減少了文件大小。


壓縮樹狀結構示例

此功能用於通過最小化由 Chrome 引擎創建的樹狀結構來減小 PDF 的大小。它與由 Chrome 引擎從包含大量表格數據的 HTML 生成的 PDFs 配合得很好。 某些 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")
VB   C#

壓縮樹狀結構 - 尺寸比較

減少 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")
VB   C#

探索可用選項

  • CompressImages:控制文件中現有圖像是否使用JPG編碼進行壓縮。 它的默認值為假。
  • RemoveStructureTree:移除結構樹可以顯著減少文件所使用的磁碟空間。 然而,這可能會對選擇文字產生負面影響,尤其是在複雜的文件中。
  • JpegQuality:指定JPEG質量(從1到100)用於圖像壓縮期間。 它的默認值為42。
  • HighQualityImageSubsampling:此屬性確定是否使用444色度取樣來獲得更高的圖像質量。(真)或 411 色度抽样以進一步減少圖像大小(錯誤).
  • ShrinkImages:縮小圖片解析度可以顯著降低文件中圖片的大小和品質。
Chaknith related to 探索可用選項

查克尼思·賓

軟體工程師

Chaknith 是開發者界的夏洛克福爾摩斯。他第一次意識到自己可能有個軟體工程的未來,是在他為了娛樂而參加程式挑戰的時候。他的重點是 IronXL 和 IronBarcode,但他也引以為豪的是,他幫助客戶解決所有產品的問題。Chaknith 利用他與客戶直接對話中獲得的知識,以進一步改進產品。他的實際反饋超越了 Jira 工單,並支持產品開發、文件撰寫和行銷,以提升客戶的整體體驗。不在公司時,他通常在學習機器學習、寫程式和徒步旅行。