PDFを圧縮する方法

Chaknith related to PDFを圧縮する方法
チャクニット・ビン
2023年10月26日
更新済み 2024年12月10日
共有:
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");

画像の圧縮 - サイズ比較

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: 画像の解像度を縮小すると、ドキュメント内の画像のサイズと品質を大幅に削減できます。
Chaknith related to 利用可能なオプションを調べる
ソフトウェアエンジニア
チャクニットは開発者のシャーロック・ホームズです。彼がソフトウェアエンジニアリングの将来性に気付いたのは、楽しみでコーディングチャレンジをしていたときでした。彼のフォーカスはIronXLとIronBarcodeにありますが、すべての製品でお客様を助けることに誇りを持っています。チャクニットは顧客と直接話すことで得た知識を活用して、製品自体のさらなる改善に貢献しています。彼の逸話的なフィードバックは、単なるJiraチケットを超えて、製品開発、ドキュメントおよびマーケティングをサポートし、顧客の全体的な体験を向上させます。オフィスにいないときは、機械学習やコーディングについて学んだり、ハイキングを楽しんだりしています。