JavaでのPDFファイル圧縮方法 | IronPDF

JavaでPDFファイルを圧縮する方法

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

IronPDFはJava開発者が画質を下げ、解像度を拡大縮小することでPDFファイルを圧縮し、ファイルサイズを小さくして共有や保存を容易にします。

クイックスタート:JavaでPDFファイルを圧縮する

```java {title="JavaでPDFを圧縮する"} //:path=/static-assets/pdf/content-code-examples/java/how-to/compress-pdf-java-tutorial/quickstart-compress.java インポート com.ironsoftware.ironPdf.*; インポート java.nio.file.Paths;

// PDFドキュメントを読み込む PdfDocument pdf = PdfDocument.fromFile(Paths.get("source.pdf"));

// 画像を60%の画質に圧縮 pdf.compressImages(60);

// 圧縮PDFを保存 pdf.saveAs(Paths.get("compressed.pdf"));


<div class="hsg-featured-snippet">
<h3>最小限のワークフロー(5ステップ)</h3>

1. Mavenの`pom.xml`にIronPDFを依存関係として追加してください
2. `PdfDocument.fromFile()` を使用して PDF を読み込みます
3. `pdf.compressImages(60)` を使用して画像を圧縮する
4. 必要に応じて、`pdf.compressImages(90, true)` を使用して画像の解像度を調整してください。
5. 圧縮されたPDFを`pdf.saveAs()`を使用して保存します
</div>

PDF文書は情報の共有と保存のために広く使用されていますが、画像が多いファイルは非常にすぐに数十メガバイトに達することがあります。 大きなファイルサイズはメール配信を複雑にし、アップロードを遅くし、保存コストを増加させます。 IronPDF for Java圧縮APIは、埋め込まれた画像の品質を削減し、数行のコードで解像度をスケールすることによりこれに対応します。

この記事はIronPDFを使用してJavaでPDFファイルを圧縮する方法をカバーしています。 例示では、簡単な品質ベースの圧縮と解像度スケーリングの両方を示し、特定のサイズと品質の要件にアプローチを適合させることができます。 また、[画像が多いPDF](https://ironpdf.com/java/how-to/java-pdf-to-image-tutorial/)を扱っている場合や[統合された文書](https://ironpdf.com/java/how-to/java-merge-pdf-tutorial/)を処理する必要がある場合、配布前の圧縮は不可欠なステップです。

## IronPDF Java PDFライブラリとは何ですか?

IronPDFは[Java PDFライブラリ](/java/)で、プログラム的にPDF文書を作成、読み取り、操作します。 このライブラリは、[HTMLからPDFへの変換](https://ironpdf.com/java/tutorials/html-to-pdf/)、フォームの記入、画像の埋め込み、ファイルの圧縮を、PDFビューアーや外部レンダリングエンジンを必要とせずに行います。[AWS Lambda](https://ironpdf.com/java/get-started/aws/)、[Azure Functions](https://ironpdf.com/java/get-started/azure/)、および[Google Cloud](https://ironpdf.com/java/get-started/google-cloud/)など、さまざまな展開環境をサポートしています。

IronPDFの圧縮は、埋め込まれた画像を低品質のJPEGレベルにリサンプリングし、オプションでPDFの表示サイズに合わせて解像度を削減することで機能します。 テキスト、ベクトルグラフィックス、文書構造には影響を与えません。 これにより、電子メールで迅速に転送する必要があるか、クラウドベースのシステムに保存する必要がある大きな文書に対してIronPDFが実用的な選択となります。

ライブラリは他の文書操作とも非常に良く連携します:すでに[ウォーターマーク](https://ironpdf.com/java/how-to/custom-watermark/)、[背景レイヤー](https://ironpdf.com/java/how-to/background-foreground/)、および[ブックマーク](https://ironpdf.com/java/how-to/bookmarks/)を持っているPDFを圧縮でき、圧縮後もすべての機能が保持されます。

ご注意圧縮は、埋め込まれたJPEGまたはPNG画像を含むPDFに最も効果的です。 主にテキストとベクトルグラフィックで構成されたドキュメントは、サイズ削減が最小限になります。)}]
## Java MavenプロジェクトでIronPDFを設定する方法 PDFを圧縮する前に、プロジェクトのMaven構成にIronPDFを追加します。 フルセットアップ手順については、[Get Started Overview](https://ironpdf.com/java/docs/)を参照してください。 - [Maven](/java/docs/)プロジェクトにIronPDFをインストールするには、`IronPDF` Mavenリポジトリと依存関係を`pom.xml`ファイルに追加してください。 - `<dependencies>` セクションに依存関係を追加してください: ```xml //:path=/static-assets/pdf/content-code-examples/java/how-to/compress-pdf-java-tutorial/maven-dependency.xml <dependency> <groupId>com.ironsoftware</groupId> <artifactId>ironpdf</artifactId> <version>your_version_here</version> </dependency>
  • pom.xml を保存し、mvn install を実行して IronPDF 依存関係をダウンロードしてください。

依存関係が解決され次第、プロジェクト内で IronPDF クラスをインポートして使用できるようになります。 IronPDF Java アーティファクトの最新公開バージョンは、Maven Central で入手可能です。 本番展開のために、実行前にライセンスキーを設定してください。

JavaでPDFファイルを圧縮する方法

IronPDF は、ドキュメント内に埋め込まれた画像を対象として PDF ファイルを圧縮します。 compressImages() メソッドは 0 から 100 までの品質整数を受け付けます。値が低いほどファイルサイズは小さくなりますが、その代償として画像の鮮明さが低下します。 オプションの2番目のパラメータは、PDFページの表示サイズに基づいて画像解像度を縮小するようライブラリに指示します。

//:path=/static-assets/pdf/content-code-examples/java/how-to/compress-pdf-java-tutorial/compress-pdf-images.java
インポート com.ironsoftware.ironPdf.*;
import java.io.IOException;
インポート java.nio.file.Paths;

public class App {
    public static void main(String[] args) throws IOException {
        // Load the source PDF from disk
        String src = "C:\\Image based PDF.pdf";
        PdfDocument pdf = PdfDocument.fromFile(Paths.get(src));

        // First pass: compress images to 60% quality
        // Lower values produce smaller files with more visible quality loss
        pdf.compressImages(60);
        pdf.saveAs(Paths.get("assets/document_compressed.pdf"));

        // Second pass (optional): compress to 90% quality with resolution scaling
        // The second parameter scales image resolution down to match display size,
        // which can reduce file size further but may cause distortion in some PDFs
        pdf.compressImages(90, true);
        pdf.saveAs(Paths.get("C:\\Compressed.pdf"));
    }
}
//:path=/static-assets/pdf/content-code-examples/java/how-to/compress-pdf-java-tutorial/compress-pdf-images.java
インポート com.ironsoftware.ironPdf.*;
import java.io.IOException;
インポート java.nio.file.Paths;

public class App {
    public static void main(String[] args) throws IOException {
        // Load the source PDF from disk
        String src = "C:\\Image based PDF.pdf";
        PdfDocument pdf = PdfDocument.fromFile(Paths.get(src));

        // First pass: compress images to 60% quality
        // Lower values produce smaller files with more visible quality loss
        pdf.compressImages(60);
        pdf.saveAs(Paths.get("assets/document_compressed.pdf"));

        // Second pass (optional): compress to 90% quality with resolution scaling
        // The second parameter scales image resolution down to match display size,
        // which can reduce file size further but may cause distortion in some PDFs
        pdf.compressImages(90, true);
        pdf.saveAs(Paths.get("C:\\Compressed.pdf"));
    }
}
JAVA

ディスクからPDFを読み込み、異なる戦略を示すために2回に分けて圧縮を適用します。 最初の compressImages(60) 呼び出しは、画像品質を 60% に低下させ、その結果を節約します。 2回目の呼び出しでは90%の品質を使用しますが、解像度スケーリングを有効にし、ページ上の可視エリアに一致するように各画像のピクセル寸法を調整します。

compressImages() メソッドには 2 つのシグネチャがあります:

  • compressImages(int quality) — 埋め込まれたすべての画像を、指定されたJPEG画質レベルで再サンプリングします。 強いサイズ削減と認識可能な画像保持のために、40から80の値を使用します。
  • compressImages(int quality, boolean scaleImageResolutionToVisibleSize) — 解像度スケーリングを追加します。 trueの場合、ライブラリは本来の解像度よりもはるかに低い解像度でレンダリングされた画像を検出し、それに応じて縮小します。 このオプションは最も積極的なサイズ削減を提供しますが、処理時間が多少増加します。

ヒントサイズと品質のバランスを微調整するために複数回適用します。 70%のような適度な設定で開始し、出力ファイルサイズを確認し、次に低品質での2回目の通過が必要かどうかを判断します。)}

画像が多いPDFで通常60%圧縮を実行すると、ソース画像によってファイルサイズが50-70%減少します。 主にテキストコンテンツを含むドキュメントでは、改善ははるかに小さくなります。 特定のドキュメントについて結果を評価するために、出力ディレクトリの前後のファイルサイズを比較します。

圧縮に加えてその他の処理が必要なドキュメントについては、IronPDFテキストの抽出画像の抽出、およびPDFの分割をサポートしています。

元のPDFはどのようなものですか?

IronPDFを使用して圧縮する前の、458 KBの元のPDFファイルを表示しているファイルエクスプローラー

圧縮後の結果はどうなりますか?

IronPDFのcompressImages機能(画質60%)を使用し、ファイルサイズが大幅に縮小された圧縮PDF出力ファイルを表示するファイルエクスプローラー

適切な圧縮品質設定を選択する方法は?

適切な品質レベルを選ぶには、ファイルサイズと視覚的忠実性をバランスさせる必要があります。 適切な設定は、ドキュメントの目的と埋め込まれた画像の感度によります。

以下の表は、一般的なユースケースに対する実用的なガイドラインを示しています:

IronPDF画像圧縮品質レベルガイド
品質レベル おおよそのサイズ削減 最適な用途
80~100% 10~30% 印刷品質のドキュメント、医療記録、法的提出物
60–79% 40–60% 社内報告書、ウェブダウンロードPDF、メール添付ファイル
40–59% 60~75% サムネイルのプレビュー、ドラフトドキュメント、アーカイブコピー
40%以下 75%以上 著しく劣化した出力で、一般的に配布には推奨されません

解像度スケーリングは、ソースPDFが高解像度の写真やスキャンされたページから組み立てられたものの、ドキュメントが画面表示専用である場合に最適に機能します。 その場合、通常のズームレベルでの品質変化を感じることなく、ファイルサイズを減少させることができます。 PDF画像エンコード標準のさらなる文脈については、アメリカ議会図書館のJPEG 2000フォーマットドキュメントStack OverflowのPDF画像圧縮ディスカッションを参照してください。

重要デジタル署名を含むPDFの圧縮は避けてください。 埋め込まれた画像を変更することでドキュメントのバイナリコンテンツが変わり、既存の署名が無効になります。)}

画像圧縮以外にPDFファイルサイズをさらに減らす方法は?

画像圧縮は多くのPDFでファイルサイズに最も寄与する要素を扱いますが、追加のテクニックを組み合わせるとサイズをさらに減少できます。 IronPDF は、compressImages() を補完するいくつかのアプローチをサポートしています:

不要なページを削除する。 圧縮前にページを削除すると、画像データとページ構造のオーバーヘッドの両方が削減されます。 ページ削除例を使用して、空白や冗長なページを削除します。

注釈を削除する。 注釈オブジェクトはファイルにバイナリデータを追加します。保存前に注釈管理APIでそれらを削除すると、大量のマークアップがあるドキュメントではファイルサイズを顕著に減少させることができます。

ドキュメントを一括処理します。多数のPDFを圧縮するワークフローでは、ファイルパスのリストを反復処理し、ループ内で compressImages() を適用します。IronPDF は各ドキュメントを個別に処理するため、バッチ処理に特別な設定は必要ありません。開始点として、pdf-compression を参照してください。

PDF最適化戦略の広範なディスカッションについては、アメリカ議会図書館のPDFファイルフォーマット仕様が、ファイルサイズに寄与する構造要素とそれらを削減する方法を文書化しています。

JavaでPDFを圧縮する次のステップは?

compressImages()メソッドは、JavaアプリケーションにおいてPDFファイルのサイズを縮小するための実用的な方法を提供します。 品質整数を使った1回のメソッド呼び出しでほとんどのユースケースをカバーし、オプションの解像度スケーリングパラメータが最も積極的な削減が必要な画像ヘビーなソースファイルを処理します。

無料トライアルを開始して、ご自身のドキュメントで圧縮をテストしてください:

IronPDFのその他の機能もご覧になりませんか? ここでJava PDFチュートリアルライブラリ全体をチェックしてください:IronPDF Java How-To Guides

よくある質問

PDF圧縮とは何ですか?

PDF圧縮は、埋め込み画像をリサンプリングし、表示解像度を調整することで、ファイルサイズを縮小します。ファイルが小さくなると、メール送信、アップロード、保管が容易です — IronPDF の compressImages() メソッドは、Java アプリケーションでこれを単一のメソッドコールで処理します。

JavaでPDFファイルをすばやく圧縮するには?

PDFをPdfDocument.fromFile()でロードし、compressImages(60)を呼び出して画像品質を60%に減少させ、saveAs()で結果を保存します。これらの3行がコア圧縮ワークフローを処理します。

PDFに使用する圧縮品質レベルは?

60-70%の値は、ほとんどのドキュメントに対してファイルサイズと視覚的な質のバランスを提供します。印刷品質または法的記録用には80-100%を使用し、下書きやサムネイルプレビュー用には40-59%のみ使用します。

複数のマージドキュメントを含むPDFを圧縮できますか?

はい。IronPDFは、どのように組み立てられたかに関わらず、すべてのPDFを圧縮します。compressImages()メソッドは、単一のソースまたは複数のマージファイルから来るかにかかわらず、ドキュメント内のすべての埋め込み画像を対象とします。

圧縮は、透かしやフォームのような他のPDF機能に影響しますか?

いいえ — IronPDFの圧縮は、埋め込まれたラスタ画像だけを対象にします。テキスト、ベクターグラフィックス、ウォーターマーク、背景、ブックマーク、フォームフィールドは、出力ドキュメントで保持されます。

IronPDFでのPDF圧縮をサポートする展開環境は何ですか?

IronPDFは、AWS Lambda、Azure Functions、Google Cloud、標準サーバー展開でPDF圧縮をサポートしています。これらの環境では外部のレンダリングエンジンやPDFビューアは必要ありません。

scaleImageResolutionToVisibleSizeパラメータは何をしますか?

trueに設定すると、IronPDFはネイティブ解像度の一部でレンダリングされた画像を検出し、ピクセル寸法を表示サイズに一致するように縮小します。これにより、単なる品質削減だけではなく、ファイルサイズがさらに減少しますが、処理時間が僅かに増加します。

圧縮されたPDFはそのデジタル署名を無効にしますか?

はい。埋め込まれた画像を変更すると、ドキュメントのバイナリ内容が変更され、既存のデジタル署名が破損します。署名を適用する前にPDFファイルを圧縮します。

Darrius Serrant
フルスタックソフトウェアエンジニア(WebOps)

Darrius Serrantは、マイアミ大学でコンピュータサイエンスの学士号を取得し、Iron SoftwareでフルスタックWebOpsマーケティングエンジニアとして働いています。若い頃からコーディングに惹かれ、コンピューティングを神秘的かつアクセス可能なものとし、創造性と問題解決のための完璧な媒体と考えていました。

Iron Softwareでは、新しいものを創造することと、複雑なコンセプトをより理解しやすくすることを楽しんでいます。Resident Developerの一人として、次世代に専門知識を共有するために、学生を教えることにも志願しました。

Darriusにとって、その仕事は価値があり、実際の影響があるため、満足感があります。

準備はできましたか?
バージョン: 2026.5 just released
Still Scrolling Icon

まだスクロールしていますか?

すぐに証拠が欲しいですか?
サンプルを実行するHTML が PDF に変換されるのを確認します。