IRONSOFTWAREHOME

JavaでHTMLからPDFへ

Jacob Mellor、Ironチームの最高技術責任者(CTO)
Jacob Mellor
Updated: 2026年9月17日

IronPDF for Javaは、モダンなブラウザを駆動するのと同じChromiumレンダリングエンジンを使用して、HTMLコンテンツをPDFドキュメントに変換します。 すべてのCSSプロパティ、フォント、画像、およびJavaScript生成のレイアウトは、ブラウザウィンドウと同じように正確にレンダリングされ、ピクセル精度のPDFとしてページに収まります。

このチュートリアルでは、 3 つのコア変換メソッドを説明します: HTML文字列からPDF、ライブURLからPDF、ローカルHTMLファイルからPDF。 その方法は、インストール、ライセンスの設定、開発者が最も頻繁に使用するレンダリングオプションカバーします。

JavaライブラリはIronPDF for .NETのAPI形状を反映しているため、両方のランタイムで作業しているチームは移行が簡単です。 このチュートリアルのすべての例のソースコードはGitHubで入手可能です。

クイックスタート: JavaでHTMLからPDFに変換

あなたのMavenpom.xml にIronPDFを追加し、PDFを生成するために1つのメソッドを呼び出します:

import com.ironsoftware.ironpdf.*;

// Set your license key before any rendering calls
License.setLicenseKey("YOUR-LICENSE-KEY");

// Convert an HTML string to a PDF and save it
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF for Java!</h1>");
pdf.saveAs("output.pdf");
Java

Start using IronPDF in your project today with a free trial.

最初のステップ:
arrow pointer
目次

IronPDF for Javaのインストール

IronPDF for Javaは、Maven Central 及びスタンドアロンの JAR ファイルとして提供されます。 Maven を利用することで、ほとんどのプロジェクトで推奨されます。これは依存関係をまとめて解決し、開発者マシンやCIパイプライン全体でライブラリバージョンを一貫して保つからです。

オプション 1:Maven の依存関係として IronPDF を追加する

プロジェクトの<dependencies>ブロックに次のエントリを追加します:

//:path=/static-assets/pdf/content-code-examples/tutorials/html-to-pdf/maven-dependency.xml
<dependencies>
    <!-- IronPDF for Java -->
    <dependency>
        <groupId>com.ironsoftware</groupId>
        <artifactId>ironpdf</artifactId>
        <version>[LATEST_VERSION]</version>
    </dependency>

    <!-- SLF4J logging provider (recommended) -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>[LATEST_VERSION]</version>
    </dependency>
</dependencies>
XML

最初のアーティファクトは、最新のIronPDF for Javaリリースを引き込みます。 第二のアーティファクトはSLF4Jロギングを有効にし、IronPDFのレンダリングエンジンが実行中に診断メッセージを書くことができるようにします。 LogbackやLog4Jを好む開発者は、そのプロバイダーを代わりに使用できます。 ロギングの依存関係はオプションのため、ログが必要でなければ省略してください。

ファイルを保存した後、プロジェクトのルートディレクトリでmvn installを実行し、両方のライブラリをダウンロードします。 Maven は、IronPDF が必要とするすべてのトランジティブな依存関係を含む依存関係グラフを自動的に解決します。

Gradleプロジェクトの場合、build.gradleでの等価な依存宣言は:

// build.gradle (Groovy DSL)
// dependencies {
//     implementation 'com.ironsoftware:ironpdf:[LATEST_VERSION]'
//     implementation 'org.slf4j:slf4j-simple:[LATEST_VERSION]'
// }
Java

バージョン番号をironPDFチェンジログまたはアーティファクトのMaven中央ページから置き換えます:

オプション 2: JAR ファイルを手動で追加する

IronPDF JAR を直接 Maven Central からダウンロードし、プロジェクトのクラスパスに追加します。 このアプローチはビルドツールなしでも機能しますが、手動バージョン管理を必要とするため、MavenやGradleを使用しないレガシープロジェクト、あるいはアウトバウンドネットワークアクセスが制限されている環境に最も適しています。

ダウンロードした後、IDEのプロジェクト設定を通じてJARをプロジェクトのクラスパスに追加します。 IntelliJ IDEAでは、プロジェクトルートを右クリックし、"モジュール設定を開く" を選択し、"依存関係" に移動し、JARファイルを追加します。Eclipseでは、プロジェクトを右クリックし、"プロパティ > Java Build Path > Libraries" に進み、"外部JARの追加" をクリックします。

ご注意: IronPDF JAR にはバンドルされた Chromium エンジン バイナリが含まれています。 新しいマシンでの最初のレンダリングコールは、数秒間かかる一時ディレクトリへの抽出を行います。 その後の呼び出しはキャッシュされたバイナリを使用して即座に開始します。 コンテナ化された環境では、抽出パスに永続的なボリュームをマウントして、コンテナの起動ごとに再抽出を避けてください。)}

システム要求

IronPDF for Java は JDK 8 以降で動作します。 それは Windows、Linux、macOS の x86-64 および ARM64 アーキテクチャの両方をサポートします。 外部ブラウザのインストールは必要ありません - ChromiumバイナリはJARとバンドルされています。 Linuxでは、Chromiumによって期待される標準的な共有ライブラリが存在することを確認してください。 IronPDF for Java ドキュメント には、一般的なLinuxディストリビューションの最低必要パッケージのリストがあります。


どうすればIronPDFをインポートしてライセンスキーを構成できますか?

すべてのIronPDFクラスはcom.ironsoftware.ironpdfパッケージに存在します。 PDFドキュメントを作成または操作するソースファイルの先頭でそれをインポートします。

import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

// Apply your license key before any other IronPDF calls
License.setLicenseKey("YOUR-LICENSE-KEY");

// Optional: set a custom log file path
Settings.setLogPath(Paths.get("IronPdfEngine.log"));
Java

ライセンスキーがない場合、IronPDFは試用モードで動作し、タイル状の透かしで各PDFページにスタンプを押します。 キーを設定すると、透かしが削除され、すべての機能がアンロックされます。 無料トライアルを開始してキーを直ちに取得してください。

IronPDFトライアルモードの透かしがレンダリングされたPDFページ全体に刻印されている

ライセンスキーは、試用版または商用ライセンスがアクティブ化されたときにIron Softwareが発行する文字列です。 環境変数や設定ファイルに保存し、ソースコードにハードコーディングしないようにしてください。 一般的なパターンとして、起動時に環境変数から読み取ります:

import com.ironsoftware.ironpdf.*;

// Read the license key from an environment variable
String licenseKey = System.getenv("IRONPDF_LICENSE_KEY");
if (licenseKey != null && !licenseKey.isEmpty()) {
    License.setLicenseKey(licenseKey);
}
Java

この方法でキーをバージョン管理から外し、開発、ステージング、プロダクションの各環境で異なるキーを簡単に使用できます。

重要: Settings.setLogPathはレンダリングおよび操作方法の前に呼び出される必要があります。 アプリケーションの起動時に配置し、静的初期化ブロックまたはmainエントリポイントで設定します。)

どうすればHTML文字列をPDFに変換できますか?

PdfDocumentオブジェクトとして返します。 これは、プログラムで生成されたHTMLに対する主な方法です - 例えば、データベースの値をJava文字列として定義されたHTMLテンプレートと組み合わせて構築されたレポートなど。

import com.ironsoftware.ironpdf.*;

// Simple one-liner: convert an HTML string to a PDF
PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Hello from IronPDF!</h1>");
pdf.saveAs("htmlstring_to_pdf.pdf");
Java

レンダリングエンジンは、オプションの第2引数 - ベースパスに対して相対資産パス(画像、スタイルシート、スクリプト)を解決します。 ベースパスが提供された場合、エンジンはそれを相対URLを解決するルートとして扱います。 これにより、ローカルCSSおよび画像ファイルを参照するHTMLをソースマークアップでパス操作を行わずに正しくレンダリングできます。

import com.ironsoftware.ironpdf.*;

// HTML references assets in a local "assets" subfolder
String html = "<html>" +
    "<head><link rel='stylesheet' href='assets/style.css'></head>" +
    "<body><h1>Invoice</h1><img src='assets/logo.png' /></body>" +
    "</html>";

// Pass the base path so IronPDF resolves relative asset URLs
PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html, "C:/my-project/templates");
pdf.saveAs("invoice.pdf");
Java

saveAsメソッドは絶対または相対パスを受け入れます。 ライブラリはファイルが存在しない場合は作成し、存在する場合は上書きします。 アプリケーションによってまだ作成されていない可能性のあるディレクトリに書き込む場合、Files.createDirectories(Paths.get("output"))を使用してディレクトリを作成します。

IronPDFは、Chromiumで実装されたフルHTML5およびCSS3フィーチャーセットをサポートします。 @font-faceを通じて読み込まれたカスタムフォントは、フォントファイルが基準パスでアクセス可能な場合に正しくレンダリングされます。 SVG要素およびJavaScriptによってレンダリングされた<canvas>要素もPDF出力に現れます。

ヒント: HTMLテンプレートを専用のディレクトリに保持し、そのディレクトリをベースパスとして渡します。 このパターンにより、デザイナーはJavaコードに触れることなくテンプレートを更新できます。

どうすればJavaでURLをPDFに変換できますか?

PdfDocument.renderUrlAsPdfは指定されたURLのページをフェッチし、JavaScriptが実行されて動的コンテンツが読み込まれるのを待ち、完全にレンダリングされたDOMをPDFに変換します。

import com.ironsoftware.ironpdf.*;

// Convert a live web page to PDF
PdfDocument pdf = PdfDocument.renderUrlAsPdf("https://en.wikipedia.org/wiki/PDF");
pdf.saveAs("wikipedia_pdf_article.pdf");
Java

エンジンは認証ヘッダー、クッキー、JavaScriptを多用するシングルページアプリケーションを処理します。 ログインまたはカスタムリクエストヘッダーを必要とするページの場合、renderUrlAsPdfを呼び出します。

この変換方法は、ウェブページのアーカイブ、コンプライアンススナップショットの生成、および内部ダッシュボードからのクライアント向けレポートの生成に役立ちます。 ローカルネットワーク上でアクセスされるサーバー生成ページは完全にサポートされています - http://localhost:8080/report/123を公共URLと同じように渡します。 IronPDFは、ページが完全に読み込まれるのを待ってからレンダリングするため、非同期データ取得に依存するダッシュボードが空のグラフではなくデータで埋められた状態でレンダリングされます。

HTTP基本認証で保護されたページの場合、http://user:password@host/path形式を使用してURLに資格情報を渡します。 セッションクッキーで保護されたページには、ChromePdfRenderOptionsオブジェクトでクッキージャーを構成します。 IronPDF for Java documentationで認証済みURLのリクエストヘッダーの設定とクッキー管理の詳細を参照してください。


ローカルHTMLファイルをPDFに変換する方法は?

PdfDocument.renderHtmlFileAsPdfは、ローカルファイルシステムからHTMLファイルを読み取り、それをPDFにレンダリングします。 ファイル内の相対パスで参照されるすべてのリンクアセット(CSS、JavaScript、画像)は、HTMLファイル自体のディレクトリに対して解決されます。

import com.ironsoftware.ironpdf.*;

// Convert a local HTML file — assets resolve relative to its directory
PdfDocument pdf = PdfDocument.renderHtmlFileAsPdf("C:/invoices/TestInvoice1.html");
pdf.saveAs("htmlfile_to_pdf.pdf");
Java

このアプローチは、複雑なHTMLドキュメントを変換するための最も正確な方法です。 レンダリングエンジンがインメモリ文字列ではなくファイルシステムパスで動作するため、複数レベルのアセットディレクトリへの相対参照が追加の設定なしで解決されます。 同じフォルダ内のscript.jsに依存するテンプレートは、パスの調整なしで正しくレンダリングされます。

このメソッドは、請求書の生成や契約書の作成、デザイナーがHTMLテンプレートをJavaアプリケーションから独立して維持するワークフローに特に適しています。 開発チームはテンプレートをデータファイルとして扱い、それをアプリケーションの隣に保存し、パスを指定してrenderHtmlFileAsPdfを呼び出します。 デザイナーがテンプレートを更新してブランディングやレイアウトを変更すると、Javaコードの変更は不要です。

ご注意: IronPDFはChromiumがサポートするすべての最新HTMLおよびCSS機能をサポートします - Flexbox、CSS Grid、CSS変数、ウェブフォント、メディアクエリがすべて出力PDFで正しくレンダリングされます。

PDF生成オプションを設定する方法は?

ChromePdfRenderOptionsはレンダリング動作を制御します:用紙サイズ、余白、ズームレベル、印刷メディアタイプ、JavaScriptタイムアウト、その他。 インスタンスを作成し、希望するプロパティを設定し、任意のrender*AsPdfメソッドの第二引数として渡します。

import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;

ChromePdfRenderOptions options = new ChromePdfRenderOptions();

// Render the page using the print media type (uses @media print CSS rules)
options.setCssMediaType(CssMediaType.PRINT);

// Wait up to 5 seconds for JavaScript to finish executing
options.setJavascriptTimeout(5000);

// Apply a 1.5x zoom level to scale content to fit the page
options.setZoom(150);

// Render at 150 DPI for sharper images in print output
options.setDpi(150);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf(
    "<h1>Styled Report</h1>",
    options
);
pdf.saveAs("styled_report.pdf");
Java

@media print CSSルールを適用するよう指示します。多くのHTMLテンプレートはナビゲーションバーを隠し、印刷専用レイアウトを適用するために使用しています。 setJavaScriptTimeoutメソッドは、JavaScriptチャートライブラリ(D3.js、Chart.js)を使用するページや遅延読み込みコンテンツに重要です。タイムアウトが短すぎると、JavaScriptがレンダリングを終える前にページをキャプチャし、空のチャートや欠落したセクションを生成します。 レンダリングされたPDFに期待されるコンテンツが欠けている場合は、タイムアウトを増やしてください。

setDpiメソッドは、出力の画像解像度を制御します。 デフォルト(96 DPI)は画面上のドキュメントに適しています。 印刷されるか高DPIディスプレイに表示されるPDF用には、150または300 DPIを使用します。 より高いDPIの値はファイルサイズを比例的に増加させます。 PDF生成設定のコード例で設定可能なプロパティの完全なリストを参照してください。


ヘッダーとフッターを追加する方法は?

IronPDFは、テキストベースおよびHTMLベースの両方のヘッダーとフッターをサポートしています。 テキストヘッダーはレンダー時に自動で解決される形式トークン(TextHeaderFooterオブジェクトを使用します。

import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.headerfooter.*;

// Create a text-based header and footer
TextHeaderFooter header = new TextHeaderFooter();
header.setCenterText("Confidential — {date}");
header.setFontSize(10);

TextHeaderFooter footer = new TextHeaderFooter();
footer.setLeftText("My Company, Inc.");
footer.setRightText("Page {page} of {total-pages}");
footer.setFontSize(9);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Annual Report</h1>");
pdf.addTextHeaders(header);
pdf.addTextFooters(footer);
pdf.saveAs("report_with_headers.pdf");
Java

{total-pages}トークンは、フッターに"3 of 12"のような値を生成し、ページ数が変化すると自動で更新されるため、レンダリングする前に最終ページ数を知る必要はありません。 {date}トークンは、システムのロケールを使用して現在の日付を挿入します。 他に利用可能なトークンには{url}があります。

addTextFootersで追加されたヘッダーとフッターはデフォルトでドキュメント内のすべてのページに適用されます。 オプションのページ範囲パラメータを渡して特定のページに制限します - 例えば、表紙にヘッダーをスキップするために。

ロゴ、ブランドカラー、またはカスタムレイアウトを必要とするスタイル付きヘッダーには、代わりにHtmlHeaderFooterを使用してください - それは完全なHTML文字列を受け入れ、ページ本体と同じ方法でレンダリングします。 カスタムヘッダーとフッターの例で完全なHTMLヘッダーパターンを参照してください。


ページの余白と用紙サイズを設定する方法は?

任意のChromePdfRenderOptionsインスタンスを渡します。

import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.render.*;
import com.ironsoftware.ironpdf.page.*;

ChromePdfRenderOptions options = new ChromePdfRenderOptions();

// Set uniform margins in millimeters
options.setMarginTop(20);
options.setMarginBottom(20);
options.setMarginLeft(15);
options.setMarginRight(15);

// Use A4 paper (default is Letter)
options.setPaperSize(PaperSize.A4);

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<p>Page content here.</p>", options);
pdf.saveAs("a4_with_margins.pdf");
Java

余白値はミリメートル単位です。 PaperSize列挙型には標準サイズ(A4、レター、リーガル、A3、その他)が含まれています。 標準外の寸法が必要な開発者は、options.setCustomPaperHeightを使用してカスタム幅と高さを設定できます。 カスタム用紙サイズ例およびカスタム余白例で完全な構成パターンを確認してください。


PDFに透かしを適用する方法は?

IronPDFの透かしは、設定可能な不透明度で各ページにスタンプされるHTMLです。 このアプローチにより、開発者は透かしの外観を完全に制御できます - どんなHTML要素、画像、またはスタイル付きテキストでもスタンプとして機能します。

import com.ironsoftware.ironpdf.*;

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Confidential Report</h1><p>Internal use only.</p>");

// Define the watermark using an HTML string
String watermarkHtml = "<h1 style='color:rgba(200,0,0,0.3); transform:rotate(-45deg);'>DRAFT</h1>";

// Stamp the watermark on all pages at 50% opacity
pdf.applyStamp(watermarkHtml);

pdf.saveAs("draft_watermark.pdf");
Java

HtmlStampOptionsパラメータを受け入れます - 中央、左上、カスタムピクセルオフセット、zインデックス(前景または背景)。 スタンプを背景として設定すると、テキストの後ろに配置され、ドキュメントが読みやすいままになります。 前景として設定すると上に載り、印刷時に隠しにくくなります。

ヒント: 繰り返しタイルの透かしを生成するには、IronPDF自体がトライアルモードで適用する種類の、HTMLスタンプ文字列に回転したテキスト要素のグリッドをレンダリングし、要素をページ全体にフィットするようにサイズを設定します。

カスタム透かしの方法ガイドで背景透かし、タイルパターン、ライセンスをアップグレードして透かしを削除する方法の例を確認してください。


複数のPDFを1つにマージする方法は?

PdfDocumentオブジェクトを順序通りに結合し、新しい単一のドキュメントとして返します。 これは、コンポーネントセクションからレポートを組み立てる、表紙を追加する、バッチジョブのユーザーごとのセクションをステッチするための好ましいアプローチです。

import com.ironsoftware.ironpdf.*;
import java.util.Arrays;
import java.util.List;

// Render two separate HTML documents into PDFs
PdfDocument cover    = PdfDocument.renderHtmlAsPdf("<h1>Cover Page</h1>");
PdfDocument body     = PdfDocument.renderHtmlAsPdf("<h1>Report Body</h1><p>Section one...</p>");
PdfDocument appendix = PdfDocument.renderHtmlAsPdf("<h2>Appendix A</h2>");

// Merge all three into a single PDF in the specified order
List<PdfDocument> parts = Arrays.asList(cover, body, appendix);
PdfDocument merged = PdfDocument.merge(parts);
merged.saveAs("full_report.pdf");
Java

ソースドキュメントの各ページは、ソースリストが指定する順序でマージされた出力に表示されます。 結合されたドキュメントは、個々のソースからメタデータを受け継ぎません - ダウンストリームの消費者にとって重要である場合は、結合後にmeta.titleおよび他のドキュメントのプロパティを更新します。

また、PdfDocumentインスタンスを受け取る2つの引数のオーバーロードがあります。 多くのドキュメントの一括マージには、リストのオーバーロードを使用します - これは、複数の二つの引数の呼び出しをチェーン化するよりも効率的で、すべてのソースを一度に処理するためです。

ご注意: マージリスト内の各ソースPdfDocumentは、呼び出し後も有効で変更されません。 mergedインスタンスは、新しい独立したドキュメントです。 関連するネイティブリソースを解放するために、もう必要がなくなったら、それらのclose()メソッドでソースドキュメントをリリースします。)

PDFからページを追加または削除する方法は?

個々のページは、PdfDocument.removePagesメソッドを使用して、あるドキュメントから別のドキュメントにコピーすることも、完全に削除することもできます。

import com.ironsoftware.ironpdf.*;
import java.util.Arrays;

// Generate a multi-page document using CSS page breaks
PdfDocument report = PdfDocument.renderHtmlAsPdf(
    "<p>Page 1 content</p>" +
    "<div style='page-break-after:always;'></div>" +
    "<p>Page 2 content</p>" +
    "<div style='page-break-after:always;'></div>" +
    "<p>Page 3 content</p>"
);

// Remove page 2 (zero-indexed — page index 1)
report.removePages(Arrays.asList(1));

// Save the two-page result
report.saveAs("two_page_report.pdf");
Java

IronPDF内のページインデックスはゼロベースです。 複数のページを削除する際は、ループ内で複数回実行する代わりに、すべてのインデックスを1つのremovePages呼び出しで渡してください。なぜなら、各削除は後続のページインデックスをシフトするからです。 すべてのリストを一度に渡すことでインデックスのずれを防ぎます。 たとえば、5ページのドキュメントからページ2と4を削除するには、2つの別々の呼び出しではなくArrays.asList(1, 3)を渡します。

外部PDFからページを挿入するには - 例えば、静的テンプレートから法的開示を追加するには、特定の位置に外部ドキュメントをスプライスするためにPdfDocument.insertPdfを使用します。 受信ドキュメントのページ数は挿入直後に更新されます。

css page-break-after:always CSSプロパティは、PDFにレンダリングされるHTMLでページを強制的に分割する標準的な方法です。 IronPDFも新しいbreak-after: page CSSプロパティをサポートしています。 どちらの方法も、特別なJavaコードを必要とせずに予測可能なページ区切りを生成します。


JavaでPDFにパスワードをかける方法は?

IronPDFはPDFに2つの異なるパスワードをサポートしています:編集、印刷、およびコピーの権限を制御するオーナーパスワード、およびドキュメントの開封を制御するユーザーパスワード。 どちらもSecurityOptionsクラスを通じて設定されます。

import com.ironsoftware.ironpdf.*;
import com.ironsoftware.ironpdf.security.*;

PdfDocument pdf = PdfDocument.renderHtmlAsPdf("<h1>Secure Document</h1>");

SecurityOptions security = new SecurityOptions();

// Require a password to open the document
security.setUserPassword("user123");

// Require a separate password to edit, print, or copy content
security.setOwnerPassword("owner456");

// Restrict printing to prevent unauthorized reproduction
security.setAllowUserPrinting(PrintOptions.FullPrintQuality);

PdfSecurityManager securityManager = new PdfSecurityManager(pdf);
securityManager.setSecurityOptions(security);

pdf.saveAs("secure_document.pdf");
Java

AllowUserPrinting 設定は PrintOptions 列挙型を受け入れます: FullPrintQuality, LowQualityPrint, または NoPrint。 オーナーパスワードが設定されているがユーザーパスワードが空のままである場合、ドキュメントはパスワードなしで開きますが、編集その他の操作にはPDFエディタでオーナーパスワードが必要です。

警告: PDFパスワード保護はファイルを暗号化しますが、正規のアクセス制御システムの代替にはなりません。 特殊なツールを持つ決意のあるユーザーは、弱いパスワードに対してブルートフォースアタックを試みることができます。 本当にセキュリティが必要なドキュメントには強力でランダムに生成したパスワードを使用してください。)]}

動的データを含むHTMLテンプレートを変換する方法は?

データ駆動型のHTMLテンプレートからPDFを生成することは、IronPDFの最も一般的な生成使用ケースの1つです。 標準的なアプローチは、テンプレートライブラリや文字列操作を使用してJavaでHTML文字列を構築し、完成した文字列を renderHtmlAsPdf に渡すことです。

import com.ironsoftware.ironpdf.*;

// Simulate data from a database or service layer
String customerName  = "Acme Corp";
String invoiceNumber = "INV-20240501";
String totalAmount   = "$1,250.00";
String dueDate       = "2024-06-01";

// Build the HTML template with real data injected
String html = "<!DOCTYPE html><html><head>" +
    "<style>body{font-family:Arial,sans-serif;margin:40px;}" +
    "table{width:100%;border-collapse:collapse;}" +
    "th,td{border:1px solid #ccc;padding:8px;text-align:left;}" +
    "th{background:#f4f4f4;}</style></head><body>" +
    "<h1>Invoice</h1>" +
    "<p><strong>Customer:</strong> " + customerName + "</p>" +
    "<p><strong>Invoice #:</strong> " + invoiceNumber + "</p>" +
    "<table><tr><th>Description</th><th>Amount</th></tr>" +
    "<tr><td>Professional Services</td><td>" + totalAmount + "</td></tr>" +
    "</table>" +
    "<p><strong>Due Date:</strong> " + dueDate + "</p>" +
    "</body></html>";

PdfDocument pdf = PdfDocument.renderHtmlAsPdf(html);
pdf.saveAs(invoiceNumber + ".pdf");
Java

より大きなプロジェクトの場合、HTMLテンプレートを分離ファイルとして管理し、コンテキストオブジェクトを介してデータを挿入し、文字列結合よりもテンプレート構文をきれいに保つためにThymeleafまたはFreemarkerのようなJavaテンプレートライブラリを検討してください。 両方のライブラリは、renderHtmlAsPdf へ直接渡すプレーンHTML文字列を生成します。

ヒント: バッチジョブでPDFを生成する場合、たとえば顧客ごとに1枚の請求書を作成するときは、ループの前に ChromePdfRenderOptions を1回インスタンス化し、すべてのレンダー呼び出しに同じインスタンスを再利用します。 呼び出しごとに新しいオプションオブジェクトを作成すると、不要なオブジェクト割り当てのオーバーヘッドが加わります。)]}

どうすればJavaでPDFからテキストを抽出できますか?

PdfDocument.extractAllText はPDFのすべてのページからテキストコンテンツを読み込み、単一の文字列として返します。 これは、検索インデックス化、データ抽出、およびレンダリング後のコンテンツ検証に役立ちます。

import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

// Open an existing PDF (or use the result of a render call)
PdfDocument pdf = PdfDocument.fromFile(Paths.get("output.pdf"));

// Extract all text content as a plain string
String text = pdf.extractAllText();
System.out.println(text);
Java

返された文字列は各ページ上のテキストの読み順を保持しますが、フォーマットは含まれません。 カラムやテーブルセルの間の空白はスペースとして表されます。 複数の論理セクションを含むPDFの場合、extractTextFromPage(int pageIndex) は単一ページからテキストを分離し、1回に1ページずつ大きなドキュメントを処理する際により効率的です。

テキスト抽出は、テキストがPDF構造内の実際のテキストオブジェクトとして保存されているPDFでのみ機能します―renderHtmlAsPdf によって生成されたPDFは常に適格です。 スキャンされたドキュメントではページが画像であるため、テキスト抽出が可能になる前にOCRが必要です。 IronOCRは、Javaおよび.NETアプリケーションにOCR機能を追加する補完的なIron Softwareライブラリです。

画像抽出には、ドキュメント内で見つかった画像ごとに1つ BufferedImage オブジェクトのリストを返す pdf.extractAllImages() を使用します。 PDFからテキスト抽出の例とPDFから画像抽出の例で完全なコードパターンを参照してください。


どうすればPDFファイルを圧縮できますか?

PdfDocument.compressImages は、埋め込まれた画像を低品質で再エンコードすることによりファイルサイズを減らします。 これは、大きな写真やバナー画像を含むウェブページから生成されたPDFに特に効果的です。

import com.ironsoftware.ironpdf.*;
import java.nio.file.Paths;

PdfDocument pdf = PdfDocument.fromFile(Paths.get("large_report.pdf"));

// Compress embedded images to 60% quality (0–100 scale)
pdf.compressImages(60);

pdf.saveAs("compressed_report.pdf");
Java

50から75の品質値は通常、スクリーンリーディングに許容される視覚的忠実度で40〜70%のファイルサイズ削減を達成します。 40を下回る値は、写真に目に見えるアーティファクトを導入する可能性がありますが、大部分が単色のダイアグラムやスクリーンショットにとっては許容される可能性があります。

オーバーロードされた compressImages(int quality, boolean scaleExistingImages) メソッドは、PDFで表示されるサイズよりも大きい画像をスケーリングするかどうかを制御するブール値も受け入れます。 これを true に設定すると、高解像度画像が埋め込まれているがページ上で非常に小さく表示されるときに発生する過剰解像度を排除することにより、ファイルサイズがさらに減少します。 これは、ウェブからPDFへの変換で、2倍の解像度で画像がレティナディスプレイに提供される際に一般的です。

PDF圧縮の例は、複数ページのドキュメントにわたるバッチ圧縮を示し、圧縮後のサイズ削減を確認する方法を説明しています。


次のステップ

このチュートリアルでは、3つのHTMLからPDFへの変換方法、インストール、ライセンス設定、レンダリングオプション、ヘッダーとフッター、ページレイアウト設定、テキスト抽出、ファイル圧縮をカバーしました。

IronPDF for Java documentationで次のリソースを探索してさらに進みましょう:

  1. PDF生成設定 - 精密なレンダリング制御のためにDPI、ズーム、タイムアウト、CSSメディアタイプを設定します。
  2. ヘッダーとフッター - ブランドロゴやカスタムレイアウト付きでHTMLヘッダーとフッターを追加します。
  3. ページレイアウト - 印刷用の出力のためにカスタム余白および用紙寸法を設定します。
  4. 透かし - ドキュメントのセキュリティのために背景および前景透かしを適用します。
  5. コンテンツ抽出 - PDFからテキストを抽出し、画像を抽出して、下流の処理に対応します。
  6. ファイル圧縮 - 保管およびメール配信のためにPDFファイルサイズを削減します。
  7. APIリファレンス - すべてのクラスとメソッドのためのフルIronPDF Java APIリファレンスを閲覧します。

無料トライアルを開始することで、今日からJavaアプリケーションでHTMLをPDFに変換できます。 デプロイの準備ができたら、ライセンスオプションを確認するして、プロジェクトに合ったプランを見つけてください。

よくある質問

JavaでHTML文字列をPDFに変換するにはどうすればよいですか?

HTML文字列でPdfDocument.renderHtmlAsPdfを呼び出します。相対CSS、画像、スクリプトの参照が正しく解決するように、オプションの基本パスを第2引数として渡します。返されたPdfDocumentにsaveAsを呼び出してファイルを書き込みます。

JavaでURLをPDFに変換するにはどうすればよいですか?

完全なURLでPdfDocument.renderUrlAsPdfを呼び出します。IronPDFはJavaScriptの実行を待ち、完全に読み込まれたDOMをPDFにレンダリングします。

JavaでローカルHTMLファイルをPDFに変換するにはどうすればよいですか?

絶対ファイルパスでPdfDocument.renderHtmlFileAsPdfを呼び出します。HTMLファイル内のすべての相対アセット参照は、そのファイルのディレクトリに対して自動的に解決されます。

Mavenを使用してJavaプロジェクトにIronPDFをインストールするにはどうすればよいですか?

IronPDF依存関係をpom.xmlに追加し、groupId com.ironsoftwareおよびartifactId ironpdfとし、プロジェクトルートからmvn installを実行します。

IronPDFで生成されたPDFから透かしを削除するにはどうすればよいですか?

有効なライセンスキーでLicense.setLicenseKeyをレンダリングの呼び出し前に呼び出します。ライセンスキーがない場合、IronPDFはすべてのページにタイル状の透かしを刻印します。

JavaでPDFにヘッダーとフッターを追加するにはどうすればよいですか?

TextHeaderFooterインスタンスを作成し、{page}や{total-pages}のようなフォーマットトークンを使用してそのテキストプロパティを設定し、pdf.addTextHeadersとpdf.addTextFootersを呼び出します。ロゴ付きのスタイルヘッダーにはHtmlHeaderFooterを使用します。

JavaでPDFのページマージンと紙のサイズを設定するにはどうすればよいですか?

ChromePdfRenderOptionsインスタンスを作成し、setMarginTop、setMarginBottom、setMarginLeft、setMarginRight(ミリ単位)、およびsetPaperSizeでPaperSize列挙値を呼び出します。オプションを任意のレンダーメソッドに渡します。

Javaで複数のPDFを1つにマージするにはどうすればよいですか?

希望の順序でドキュメントを含むList<PdfDocument>を作成し、PdfDocument.mergeに渡します。このメソッドはすべてのページをすべてのソースから含む新しいPdfDocumentを返します。

JavaでPDFをパスワード保護するにはどうすればよいですか?

SecurityOptionsインスタンスを作成し、setUserPasswordとsetOwnerPasswordを呼び出し、ドキュメントを保存する前にPdfSecurityManagerを介して適用します。

JavaでPDFからテキストを抽出するにはどうすればいいですか?

pdf.extractAllText()を呼び出して、すべてのテキストコンテンツを単一の文字列として取得します。extractTextFromPage(int pageIndex)を使用して特定のページからテキストを抽出します。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(CTO)

ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。

準備はできましたか?

バージョン:2026.6リリースされたばかり

無料をゲット

30日間の試用キーをすぐに取得。

bullet_checkedクレジットカードやアカウントの作成は不要です。
bullet_test製品版でのテスト
透かしなし
bullet_calendar30日間
完全機能の製品
bullet_support試用期間中の
24/5テクニカルサポート
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDFのため for Java Mavenライブラリ
Mavenでインストール

バージョン: 2026.6

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2026.6.1</version>
</dependency>
https://central.sonatype.com/artifact/com.ironsoftware/ironpdf/2026.6.1
or
Java PDF JAR
JAR をダウンロード

バージョン: 2026.6

Manually install into your project

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

OR
bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDFのため for Java Mavenライブラリ
Mavenでインストール

バージョン: 2026.6

<dependency>
   <groupId>com.ironsoftware</groupId>
   <artifactId>ironpdf</artifactId>
   <version>2026.6.1</version>
</dependency>
https://central.sonatype.com/artifact/com.ironsoftware/ironpdf/2026.6.1
or
Java PDF JAR
JAR をダウンロード

バージョン: 2026.6

Manually install into your project