PDFを圧縮する方法
PDF圧縮とは、PDF(ポータブルドキュメントフォーマット)文書のファイルサイズを縮小するプロセスを指します。 この圧縮は、特に大きなドキュメントや画像が多いドキュメントを扱う場合に、PDFファイルの保存、共有、および送信をより管理しやすくするために適用されます。
画像は通常、テキストやその他のコンテンツに比べてサイズが大きいため、PDFファイルサイズの大部分を占めることが多いです。 IronPdfはPDF圧縮機能を提供しており、埋め込まれた画像を圧縮し、PDFの表データにありがちなツリー構造を減らします。
IronPDFを始めましょう
今日から無料トライアルでIronPDFをあなたのプロジェクトで使い始めましょう。
PDFを圧縮する方法
- NuGetからPDF圧縮用のC#ライブラリをダウンロード
- 既存のPDFをインポートするか、新しいPDFをレンダリングする
- PDF内の画像サイズを縮小するには
CompressImages
メソッドを使用します CompressStructTree
メソッドを使用してPDFのツリー構造を最小化する- 圧縮されたPDFドキュメントをエクスポートする
画像圧縮の例
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");
画像の圧縮 - サイズ比較
39.24%削減!!
画像圧縮オプションの理解
それでは、画像圧縮オプションの詳細について詳しく見ていきましょう。
ShrinkImage: この機能は、PDFドキュメント内での見えるサイズに基づいて画像の解像度を縮小します。 その結果、画像のサイズと品質が大幅に削減され、効率的なストレージと伝送のために最適化されます。
HighQualitySubsampling: この設定は、画像圧縮に使用されるクロマサブサンプリング法を決定します。 「True」を選択すると、4:4:4クロマサブサンプリングが利用され、フルカラーの詳細を伴う高品質な画像が確保されます。 逆に、「False」を選択すると、4:1:1クロマサブサンプリングが使用され、いくらかのカラー詳細が犠牲になりつつも画像サイズがさらに縮小されます。
クロマサブサンプリングは、デジタル画像圧縮において重要な技術であり、画像の視覚的な品質を維持しながら、それを表現するために必要なデータを削減することを目的としています。 これは、輝度情報(明るさ)の解像度を完全に維持しながら、色情報(色度)の解像度を選択的に低下させることでこれを達成します。
「4:4:4」クロマサブサンプリングでは、各ピクセルが独自の色情報を保持するため、色詳細の損失がありません。 逆に、「4:1:1」のクロマサブサンプリングでは、色情報が低解像度でサンプリングされるため、色の詳細が減りますが、ファイルサイズも同時に小さくなります。
ツリー構造の圧縮例
この機能は、Chromeエンジンによって生成されたツリー構造を最小化することによって、PDFのサイズを減らすために使用されます。これは、膨大なテーブルデータを含むHTMLからChromeエンジンによって生成された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");
ツリー構造の圧縮 - サイズ比較
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");
利用可能なオプションを調べる
- CompressImages: ドキュメント内の既存の画像がJPGエンコーディングを使用して圧縮されるかどうかを制御します。 デフォルトではfalse(偽)です。
- RemoveStructureTree: 構造ツリーを削除することで、ドキュメントに使用されるディスクスペースを大幅に削減できます。 しかし、特に複雑な文書においてテキスト選択に悪影響を与える可能性があります。
- JpegQuality: 画像圧縮時に使用されるJPEGの品質を指定します(1から100までの範囲)。 デフォルト値は42です。
- HighQualityImageSubsampling: このプロパティは、より高い画像品質を実現するための444クロマサブサンプリングを使用するか(true)、画像サイズをさらに削減するための411クロマサブサンプリングを使用するか(false)を決定します。
- ShrinkImages: 画像の解像度を縮小すると、ドキュメント内の画像のサイズと品質を大幅に削減できます。