フッターコンテンツにスキップ
IRONPDFの使用

IronPDFを使用してC#でPDFページを移動する方法

信頼できる.NET CoreのPDFジェネレータを作るには?

信頼性の高い.NET Core PDF ジェネレーターは、HTML から PDF への正確な変換のための Chrome ベースのレンダリングを提供し、ネイティブ依存関係のないクロスプラットフォームの展開をサポートし、コンテナー化された環境で PDF ドキュメントを作成、編集、および操作するための完全な API を提供する必要があります。

IronPDF は、ネイティブ依存関係なしで HTML を PDF に変換する Chrome ベース for .NET Core PDF ライブラリを提供し、コンテナー化されたアプリケーションを構築するエンジニアにスムーズなDocker 展開とクロスプラットフォームの互換性を実現します。

NET CoreアプリケーションでPDFドキュメントを作成するには、HTMLコンテンツを扱い、フォーマットを維持し、クロスプラットフォーム展開をサポートするPDFライブラリが必要です。 ASP.NET Core Web API を開発する場合でも、コンソール アプリケーションを開発する場合でも、信頼性の高い.NET Core PDF ジェネレーターを使用すると、さまざまなソースからドキュメントを作成するプロセスが簡素化されます。

無料トライアルを開始して、開発者が本番環境でのミッションクリティカルなPDF 生成にIronPDF を選択する理由をご確認ください。

IronPDF は、完全な.NET Core PDF ライブラリとして際立っています。 Chrome レンダリング エンジンを使用して、ピクセル単位の精度で PDF ドキュメントを作成します。 このアプローチにより、複雑なPDFレイアウトAPIを習得することなく、既存のHTMLとCSSのスキルを使ってPDFファイルを生成できます。ライブラリの充実したドキュメントコードサンプルにより、実装は容易になります。

PDF 生成において Chrome ベースのレンダリングが重要なのはなぜですか?

Chrome ベースのレンダリングにより、すべての CSS ルール、フォント、レイアウト ディレクティブが最新のブラウザと同じ方法で評価されます。 つまり、フレックスボックス グリッド、メディア クエリ、Web フォントはすべて、出力 PDF 内で予測どおりに動作します。最新の CSS を誤って読み取る従来のレンダリング エンジンによる予期せぬ動作が発生することはありません。

どのようなクロスプラットフォーム展開オプションがサポートされていますか?

IronPDF は、アプリケーション コードを 1 行も変更せずに、 WindowsLinuxAzureAWSDocker上で実行されます。 NuGetパッケージには必要なネイティブ バイナリがすべてバンドルされているため、システム パッケージをインストールしたり、プラットフォーム固有のパスを管理したりする必要はありません。

代替手段のほとんどは、すべての要素を手動で配置する必要がある低レベルの PDF 描画 API と、コンテンツを厳格なテンプレートにロックするレポート デザイナーの 2 つの陣営に分かれます。 IronPDF はこれらの両極端の間に位置し、標準の HTML と CSS を受け入れ、完全なブラウザ エンジンでレンダリングし、結果を標準に準拠した PDF ファイルとして保存します。

IronPDFと一般的な.NET PDF 代替品の比較
特徴 IronPDF PDFSharp iText SelectPdf
HTML + CSSレンダリング Chromeエンジン なしne 制限付き(iText) WebKit
JavaScript 実行 はい なし なし 部分的
Linux / Docker サポート はい はい はい 制限あり
ライセンスモデル コマーシャル マサチューセッツ工科大学 AGPL / 商用 コマーシャル
インタラクティブPDFフォーム はい なし はい なし

IronPDFは.NET CoreでのPDFドキュメントの生成をどのように簡素化しますか?

IronPDF は、従来は複雑だったPDF 生成タスクを、あらゆる.NET開発者が実装できる簡単なコードに変換します。 ライブラリは、ChromePdfRendererクラスを使用して、HTML文字列、ファイル、またはURLを直接PDF形式に変換します。 この流暢な API アプローチは、さまざまなプラットフォーム間で高いパフォーマンスを維持しながら、広範なカスタマイズ オプションを提供します。

本当の力は、IronPDFがHTMLコンテンツをプロフェッショナルなPDFファイルに変換する方法にあります。 要素を手動で配置したり描画したりする代わりに、CSS スタイルを使用して標準の HTML を記述し、ライブラリが変換を処理します。 作成された PDF ファイルは、ページの画像だけでなく、ユーザーがテキストを選択して検索できる完全な機能を備えたドキュメントです。

基本的な PDF 生成に加え、IronPDF の高度な編集ツールを使用すると、ドキュメントの結合透かしの追加、注釈の挿入などを行うことができます。

主なパターンは次のとおりです:PdfDocumentを保存します。 これら 3 つのメソッドはすべて同じオブジェクト タイプを返すため、ソースに関係なく後処理コードを再利用できます。

従来の PDF API ではなく、HTML から PDF への変換を選択する理由は何ですか?

従来の PDF API では、座標で考える必要があります ("このテキストを x=72、y=144 に配置する"など)。 HTML を使用すると、コンテンツと構造について考えることができます。 要件が変更された場合 (新しい列、異なるフォント サイズ、会社のロゴ)、数十の座標値を再計算するのではなく、HTML テンプレートを更新します。

複雑なドキュメントのレイアウトとスタイルをどのように処理しますか?

完全なHTMLドキュメントを RenderHtmlAsPdf に渡します -- <style> ブロックまたは外部スタイルシートの参照を含む。 IronPDF の Chrome エンジンは、ページをラスタライズする前にすべての CSS ルールを適用します。 レスポンシブ CSS 、Google Fonts、SVG グラフィック、CSS グリッドを制限なく使用できます。

NuGetパッケージ マネージャーを使用してIronPDFをインストールするにはどうすればよいでしょうか?

Visual Studio でIronPDFを使い始めるには、 NuGetパッケージを 1 つインストールするだけで済みます。 NuGetパッケージ マネージャー コンソールを開き、次を実行します。

Install-Package IronPdf

または、 .NET CLI を使用します。

dotnet add package IronPdf

この単一のパッケージには、.NET Coreアプリケーションで PDF ファイルを作成、編集、生成するために必要なすべての機能が備わっています。 インストールにより、Windows、Linux、Docker 環境全体で PDF 生成用のプロジェクトが自動的に構成されます。 サポートされているランタイムには、 .NET Framework 4.6.2 以上、 .NET Core 3.1 以上、 .NET 5 から.NET 10、 .NET Standard 2.0 以上が含まれます。

IronPDFのシステム要件は何ですか?

Windows ではパッケージは自己完結型です。 Linux では、Chrome レンダリング エンジンには、Linux セットアップ ガイドにすべて記載されているいくつかの共有ライブラリ (libgdiplus、libc6、およびいくつかのフォント パッケージ) が必要です。 依存関係の欠落を回避するには、Docker のデプロイメントは公式のIronPDFベース イメージから開始する必要があります。

インストールを確認するには、クラスファイルに using IronPdf; を追加します。プロジェクトがエラーなしでビルドされ、IntelliSenseがChromePdfRendererを解決する場合、パッケージは正しくインストールされています。 スモーク テストとして、1 行の HTML 文字列をレンダリングし、ゼロ以外のバイトの PDF がディスクに書き込まれることを確認します。

どのような追加の依存関係が必要になる可能性がありますか?

コンテナ化された環境では、Dockerfileにlibx11-devパッケージを含めます。厳格なサイズ制限があるクラウド関数では、レンダリングエンジンをサイドカーコンテナに分けている<IronPdf.Slim>に切り替えることができます。 IronPDF NuGetパッケージページには、利用可能なすべてのバージョンとリリースノートが一覧表示されています。

HTML から最初の PDF ドキュメントを作成するにはどうすればよいでしょうか?

以下の例では、HTML 文字列から動的な請求書ドキュメントを構築します。これは、固定テンプレートとランタイム データを組み合わせた任意のドキュメント タイプに直接転送されるパターンです。

using IronPdf;
using System.Text;

// Configure the Chrome renderer
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;

// Build HTML content with embedded CSS and dynamic data
var htmlBuilder = new StringBuilder();
htmlBuilder.Append(@"
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; font-size: 14px; }
            .invoice-header { background: #f0f0f0; padding: 20px; }
            table { width: 100%; border-collapse: collapse; }
            th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
        </style>
    </head>
    <body>
        <div class='invoice-header'>
            <h1>Invoice #INV-2024-001</h1>
            <p>Date: " + DateTime.なしw.ToString("MM/dd/yyyy") + @"</p>
        </div>
        <table>
            <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>");

for (int i = 0; i < 3; i++)
{
    htmlBuilder.Append($"<tr><td>Product #{i + 1}</td><td>{i + 1}</td><td>$25.00</td></tr>");
}

htmlBuilder.Append(@"
        </table>
        <p><strong>Total: $75.00</strong></p>
    </body>
    </html>");

// Convert HTML string to a PDF document and save
PdfDocument pdfDoc = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
pdfDoc.SaveAs("invoice.pdf");
using IronPdf;
using System.Text;

// Configure the Chrome renderer
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;

// Build HTML content with embedded CSS and dynamic data
var htmlBuilder = new StringBuilder();
htmlBuilder.Append(@"
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; font-size: 14px; }
            .invoice-header { background: #f0f0f0; padding: 20px; }
            table { width: 100%; border-collapse: collapse; }
            th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
        </style>
    </head>
    <body>
        <div class='invoice-header'>
            <h1>Invoice #INV-2024-001</h1>
            <p>Date: " + DateTime.なしw.ToString("MM/dd/yyyy") + @"</p>
        </div>
        <table>
            <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>");

for (int i = 0; i < 3; i++)
{
    htmlBuilder.Append($"<tr><td>Product #{i + 1}</td><td>{i + 1}</td><td>$25.00</td></tr>");
}

htmlBuilder.Append(@"
        </table>
        <p><strong>Total: $75.00</strong></p>
    </body>
    </html>");

// Convert HTML string to a PDF document and save
PdfDocument pdfDoc = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
pdfDoc.SaveAs("invoice.pdf");
Imports IronPdf
Imports System.Text

' Configure the Chrome renderer
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.MarginTop = 25
renderer.RenderingOptions.MarginBottom = 25
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4

' Build HTML content with embedded CSS and dynamic data
Dim htmlBuilder As New StringBuilder()
htmlBuilder.Append("
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; font-size: 14px; }
            .invoice-header { background: #f0f0f0; padding: 20px; }
            table { width: 100%; border-collapse: collapse; }
            th, td { padding: 10px; text-align: left; border-bottom: 1px solid #ddd; }
        </style>
    </head>
    <body>
        <div class='invoice-header'>
            <h1>Invoice #INV-2024-001</h1>
            <p>Date: " & DateTime.Now.ToString("MM/dd/yyyy") & "</p>
        </div>
        <table>
            <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>")

For i As Integer = 0 To 2
    htmlBuilder.Append($"<tr><td>Product #{i + 1}</td><td>{i + 1}</td><td>$25.00</td></tr>")
Next

htmlBuilder.Append("
        </table>
        <p><strong>Total: $75.00</strong></p>
    </body>
    </html>")

' Convert HTML string to a PDF document and save
Dim pdfDoc As PdfDocument = renderer.RenderHtmlAsPdf(htmlBuilder.ToString())
pdfDoc.SaveAs("invoice.pdf")
$vbLabelText   $csharpLabel

CSSが<style>ブロック内に存在し、レンダリング中に自動的に適用されることに注意してください。 RenderHtmlAsPdf メソッドは PdfDocument オブジェクトを返し、生成されたファイルを完全に制御できます。より高度なシナリオについては、カスタム余白用紙サイズをご覧ください。 どちらのオプションでも、基礎となる HTML テンプレートを変更することなく、印刷仕様やブランド ガイドラインに正確に一致するように出力をカスタマイズできます。

生成されたPDFはどのように見えますか?

以下のスクリーンショットは、PDF ドキュメントに完璧にレンダリングされた請求書の例を示しています。

Professional PDF invoice displaying Invoice #INV-2024-001 with date 10/15/2025, featuring a light gray header section, organized product table showing three items with quantities and $25 unit prices, including company branding elements and a summary paragraph at the bottom

動的データとテンプレートをどのように処理しますか?

データ駆動型ドキュメントの場合、レンダラーに渡す前に、データベースまたは API からの値を HTML テンプレート文字列に入力します。 Scriban や Handlebars .NETなどのライブラリは、HTML をクリーンな状態に保ち、実稼働コードでの脆弱な文字列の連結を回避するテンプレート構文を提供します。

設定する必要がある一般的なレンダリング オプションは何ですか?

最も影響力のあるオプションは、CssMediaTypeです。 @media print CSSルールが適用されます。

HTMLレンダリングの問題をデバッグする際は、まずブラウザで同じHTMLをレンダリングしてください。正しくレンダリングされていれば、 IronPDFはそれを忠実に再現します。 レイアウトのずれについては、ビューポート相対単位(vh)を使用している要素が、フォールバックなしでないことを確認してください -- これらの単位は、スクロール可能なビューポートがないときに異なる動作をします。

URL や Web ページから PDF ファイルを生成するにはどうすればよいでしょうか?

IronPDF は、既存の Web ページを PDF ファイルに変換するのに優れています。 この機能は、レポート ダッシュボードや Web ベースのフォームから PDF ドキュメントを生成するときに役立ちます。

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

// Wait for all assets to finish loading before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(1000);

PdfDocument pdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

string filePath = Path.Combine(Directory.GetCurrentDirectory(), "webpage.pdf");
pdfDocument.SaveAs(filePath);
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;

// Wait for all assets to finish loading before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(1000);

PdfDocument pdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page");

string filePath = Path.Combine(Directory.GetCurrentDirectory(), "webpage.pdf");
pdfDocument.SaveAs(filePath);
Imports IronPdf
Imports System.IO

Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
renderer.RenderingOptions.PrintHtmlBackgrounds = True
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print

' Wait for all assets to finish loading before capturing
renderer.RenderingOptions.WaitFor.RenderDelay(1000)

Dim pdfDocument As PdfDocument = renderer.RenderUrlAsPdf("https://en.wikipedia.org/wiki/Main_Page")

Dim filePath As String = Path.Combine(Directory.GetCurrentDirectory(), "webpage.pdf")
pdfDocument.SaveAs(filePath)
$vbLabelText   $csharpLabel

ライブラリはJavaScript の実行を処理し、外部画像とスタイルシートを読み込み、変換中にレスポンシブなレイアウトを維持します。 URL から PDF への変換の詳細については、 "URL から PDF へのガイド"を参照してください。 認証用のHTTP リクエスト ヘッダーを構成したり、セッションベースのコンテンツのCookieを処理したりすることもできます。

WikipediaのメインページがPDF形式に変換され、ジョゾ・トマセヴィッチの伝記記事、現在の出来事を含むニュースセクション、10月15日の歴史的な

保護された URL の認証をどのように処理しますか?

カスタムHTTPヘッダまたはクッキーを、RenderUrlAsPdfを呼び出す前にレンダラーに渡します。 OAuthで保護されたダッシュボードの場合、アプリケーションコードでベアラートークンを取得し、それをAuthorizationヘッダとして追加します。 IronPDF は、ブラウザが送信するのとまったく同じように、これらのヘッダーを Chrome エンジンに転送します。

考慮すべきJavaScriptレンダリング オプションは何ですか?

ページがJavaScriptを介してチャートやテーブルをページロード後に埋め込むときは、WaitFor.RenderDelayを追加します。 シングルページアプリケーションの場合、WaitFor.NetworkIdle()は固定遅延よりも信頼性のあるトリガーです。すべての保留中のネットワークリクエストが完了するまで待つからです。

URL 変換と HTML 文字列変換はいつ使用すればよいですか?

ページが既に存在し、 IronPDFを実行しているサーバーからアクセスできる場合は、URL 変換を使用します。レポート、ダッシュボード、管理ビューなどが適切な候補です。 実行時にテンプレートからドキュメントを構築するときは、HTML 文字列変換を使用します。このアプローチにより、ネットワークのラウンドトリップが回避され、すべてのデータがサーバー側で保持されるためです。

複雑なレポートに使用できる高度な PDF 機能は何ですか?

プロフェッショナルな PDF ドキュメントでは、基本コンテンツに加えて、ヘッダー、フッター、インタラクティブなフォーム フィールドが必要になることがよくあります。 IronPDF は、ヘッダー、フッター透かしを追加するメソッドを提供します。 ヘッダーとフッター API は、ドキュメントの表示を完全に制御します。

var renderer = new ChromePdfRenderer();

// Company header on every page
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div style='text-align:center;font-weight:bold;'>Company Report</div>"
};

// Automatic page numbering in footer
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div style='text-align:right;'>Page {page} of {total-pages}</div>"
};

// Render an HTML form as a fillable PDF form
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

string formHtml = @"
    <form>
        <label>Name:</label>
        <input type='text' name='name' placeholder='Enter your name'/>
        <label>Email:</label>
        <input type='email' name='email' placeholder='email@example.com'/>
        <button type='submit'>Submit</button>
    </form>";

PdfDocument formDocument = renderer.RenderHtmlAsPdf(formHtml);
formDocument.SaveAs("form.pdf");
var renderer = new ChromePdfRenderer();

// Company header on every page
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div style='text-align:center;font-weight:bold;'>Company Report</div>"
};

// Automatic page numbering in footer
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    MaxHeight = 25,
    HtmlFragment = "<div style='text-align:right;'>Page {page} of {total-pages}</div>"
};

// Render an HTML form as a fillable PDF form
renderer.RenderingOptions.CreatePdfFormsFromHtml = true;

string formHtml = @"
    <form>
        <label>Name:</label>
        <input type='text' name='name' placeholder='Enter your name'/>
        <label>Email:</label>
        <input type='email' name='email' placeholder='email@example.com'/>
        <button type='submit'>Submit</button>
    </form>";

PdfDocument formDocument = renderer.RenderHtmlAsPdf(formHtml);
formDocument.SaveAs("form.pdf");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Company header on every page
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
    .MaxHeight = 25,
    .HtmlFragment = "<div style='text-align:center;font-weight:bold;'>Company Report</div>"
}

' Automatic page numbering in footer
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
    .MaxHeight = 25,
    .HtmlFragment = "<div style='text-align:right;'>Page {page} of {total-pages}</div>"
}

' Render an HTML form as a fillable PDF form
renderer.RenderingOptions.CreatePdfFormsFromHtml = True

Dim formHtml As String = "
    <form>
        <label>Name:</label>
        <input type='text' name='name' placeholder='Enter your name'/>
        <label>Email:</label>
        <input type='email' name='email' placeholder='email@example.com'/>
        <button type='submit'>Submit</button>
    </form>"

Dim formDocument As PdfDocument = renderer.RenderHtmlAsPdf(formHtml)
formDocument.SaveAs("form.pdf")
$vbLabelText   $csharpLabel

この例では、すべてのページに一貫したヘッダーを適用し、PDF ドキュメント内にインタラクティブなフォーム フィールドを作成する方法を示します。 エンジンはページ番号付けとフォーム フィールドのレンダリングを自動的に処理します。 複雑なレポートの場合は、目次ブックマークカスタム ページ区切りを実装します。

"会社報告書"のヘッダーを備えたインタラクティブなPDFフォーム、見える境界線とプレースホルダーテキストを持つプロフェッショナルにスタイリングされた名前とメールの入力フィールド、ホバーステートを持つ送信ボタン、IronPDFのHTMLフォームをスタイリングと機能性を維持したまま記入可能なPDFドキュメントに変換する能力を示しています

一貫したヘッダーを持つ複数ページのレポートを作成するにはどうすればよいですか?

レンダラーで任意のレンダーメソッドを呼び出す前にHtmlFooterを構成します。 ヘッダーとフッターの HTML は本文とは別にレンダリングされ、すべてのページに自動的にスタンプされます。 動的な番号付けを追加するために{total-pages}をフッターフラグメントのどこにでも使用します。

PDF に追加できるインタラクティブな要素は何ですか?

CreatePdfFormsFromHtmlが有効になると、標準のHTMLフォームコントロール -- テキスト入力、チェックボックス、ラジオボタン、ドロップダウン、およびボタン -- はインタラクティブなPDFフォームフィールドになります。 受信者は、特別なソフトウェアを必要とせずに、Adobe Acrobat Reader または標準に準拠した任意の PDF ビューアで入力できます。

ページ区切りとセクション管理をどのように実装しますか?

新しいページから始めるべきHTMLセクション間に<div style='page-break-after: always;'></div>を挿入します。 IronPDFは、page-break-insideのCSSプロパティを尊重し、印刷用スタイルシートと同じ制御を提供します。

ASP.NET Coreの非同期操作でパフォーマンスを向上させるにはどうすればよいでしょうか?

複数の PDF 生成リクエストを処理する Web アプリケーションの場合、非同期操作により、Chrome エンジンがレンダリングする間にスレッドが解放され、応答性が向上します。

using IronPdf;
using Microsoft.AspNetCore.Mvc;

// Reusable async PDF generation helper
async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(htmlContent);
    return pdf.BinaryData;
}

// ASP.NET Core minimal API endpoint
app.MapPost("/invoices", async ([FromBody] InvoiceData data) =>
{
    string html = BuildInvoiceHtml(data);
    byte[] pdfBytes = await GeneratePdfAsync(html);
    return Results.File(pdfBytes, "application/pdf", "invoice.pdf");
});
using IronPdf;
using Microsoft.AspNetCore.Mvc;

// Reusable async PDF generation helper
async Task<byte[]> GeneratePdfAsync(string htmlContent)
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
    PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(htmlContent);
    return pdf.BinaryData;
}

// ASP.NET Core minimal API endpoint
app.MapPost("/invoices", async ([FromBody] InvoiceData data) =>
{
    string html = BuildInvoiceHtml(data);
    byte[] pdfBytes = await GeneratePdfAsync(html);
    return Results.File(pdfBytes, "application/pdf", "invoice.pdf");
});
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

' Reusable async PDF generation helper
Async Function GeneratePdfAsync(htmlContent As String) As Task(Of Byte())
    Dim renderer As New ChromePdfRenderer()
    renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
    Dim pdf As PdfDocument = Await renderer.RenderHtmlAsPdfAsync(htmlContent)
    Return pdf.BinaryData
End Function

' ASP.NET Core minimal API endpoint
app.MapPost("/invoices", Async Function(<FromBody> data As InvoiceData) As Task(Of IResult)
    Dim html As String = BuildInvoiceHtml(data)
    Dim pdfBytes As Byte() = Await GeneratePdfAsync(html)
    Return Results.File(pdfBytes, "application/pdf", "invoice.pdf")
End Function)
$vbLabelText   $csharpLabel

このパターンにより、 ASP.NET Coreアプリケーションはスレッド プールをブロックせずに PDF ファイルを生成できます。 バイト配列出力は、ファイルをクライアントに直接返す API エンドポイントで機能します。 バッチ操作の場合、複数のドキュメントを同時にレンダリングするための並列処理と、ディスクの読み取り/書き込みのオーバーヘッドを削減するためのメモリ ストリームを検討してください。

Results.File() メソッドは、ブラウザがダウンロードを促すか、ファイルをインラインで表示するように正しいapplication/pdfコンテンツタイプを設定します。ASP.NET Coreの非同期パターンについては、Microsoftの公式ドキュメントをご覧ください。

同時 PDF 生成を処理するためのベスト プラクティスは何ですか?

それぞれのChromePdfRendererインスタンスはスレッドセーフではないため、リクエストごとに新しいインスタンスを作成し、スレッド間で1つを共有しないでください。 高スループットのシナリオでは、インスタンスをプールするか、専用のIronPDF Engine サイドカー コンテナーを使用して、メイン アプリケーション プロセスからレンダリングをオフロードします。

非同期操作で適切なエラー処理を実装するにはどうすればよいですか?

レンダリング呼び出しを try/catch ブロックで囲みます。 IronPDFは、エンジンレベルエラー(フォントの欠如、無効なHTML、タイムアウト)に対してIronPdfNativeExceptionをスローし、ファイルの読み取り/書き込みの問題に対して標準 for .NET例外をスローします。 例外の詳細をログに記録し、例外をクライアントに伝播させるのではなく、適切な HTTP エラー応答を返します。

PDFが直ちに消費される場合、PdfDocument.BinaryDataをHTTPレスポンスに直接返します。 PDFを保持する必要がある場合、たとえばオブジェクトストレージバケットやファイル共有にSaveAsでファイルパスに書き込みます。 不要なディスク書き込みを回避することで、高頻度の PDF エンドポイントの待ち時間が短縮されます。

導入時の主な考慮事項は何ですか?

IronPDFは多様な環境における展開をサポートします。 Dockerコンテナの場合、Dockerデプロイメントガイドに記載されているように、必要な依存関係をDockerfileに含めてください。このライブラリは、Windows ServerLinuxディストリビューション、そしてAzureAWSなどのクラウドプラットフォームで動作します。 各環境はフォントやレンダリングのための特定の設定を必要とすることがありますが、基本的なAPIは一貫しています。

コンテナ化されたデプロイメントの場合、PDF 生成をメイン アプリケーションから分離するために、 IronPDF をリモート コンテナとして使用することを検討してください。 このアプローチにより、スケーラビリティが向上し、リソース管理が改善されます。 .NET Core の展開に関する Microsoft のドキュメントには、運用環境に関する追加のベスト プラクティスが記載されています。

Docker デプロイメント用にIronPDF をどのように構成しますか?

公式のIronPDF Linux ベース イメージから開始するか、既存の Debian または Ubuntu イメージに必要な apt パッケージを追加します。 アプリケーションの起動コードでInstallation.ChromeGpuMode = IronPdf.Engines.Chrome.ChromeGpuMode.Disabledを設定し、ヘッドレスサーバー環境でのGPU初期化エラーを防ぎます。

どのような Linux 固有の依存関係を含める必要がありますか?

最小セットはlibxcomposite1です。 CJK(中国語、日本語、韓国語)フォントサポートのためにfonts-noto-cjkを追加します。 Linux セットアップ ガイドには、Debian、Ubuntu、CentOS、Alpine のディストリビューション固有のパッケージ リストが記載されています。

プロダクションの観測可能性のために、RenderHtmlAsPdfAsync呼び出しをストップウォッチのタイミングでラップし、メトリックを Application Insights、Prometheus、またはOpenTelemetry互換のバックエンドに発信します。 レンダリングのボトルネックを早期に特定するために、アプリケーションの他の部分とは別に、p50/p95/p99 レイテンシ パーセンタイルとエラー レートを追跡します。

PDF 生成サービスにはどのようなセキュリティ上の考慮事項が適用されますか?

URL またはユーザー指定の HTML をレンダリングするときは、サーバー側リクエスト偽造 (SSRF) を防ぐためにコンテンツをサニタイズします。 ホストが許可リストを使用してRenderUrlAsPdfが到達できる場所を制限し、レンダリングエンジンをサンドボックス化されたプロセスまたは分離されたコンテナで実行します。 機密データを含むドキュメントの場合は、コンプライアンス要件を満たすためにPDF 暗号化デジタル署名を適用します。

.NET Core PDF ジェネレーターの構築を始める準備はできていますか?

IronPDFは、.NET CoreでのPDF生成を複雑な課題から簡単な実装に変えます。 HTML コンテンツのサポート、豊富な機能セット、一貫したクロスプラットフォームの動作を備えているため、PDF ドキュメントを確実に生成する必要がある開発者に適しています。 暗号化やデジタル署名などのライブラリのセキュリティ機能により、ドキュメントがコンプライアンス要件を満たしていることが保証されます。

制限なくすべての機能を試すには、無料トライアルから始めてください。 ドキュメントには、正確な要件を満たすプロフェッショナルな PDF ファイルを作成するのに役立つ豊富なガイドが記載されています。 請求書システムの構築、レポートの生成、既存の Web コンテンツの変換など、 IronPDF はピクセルパーフェクトな結果を提供するツールを提供します。

実稼働環境での展開では、プロジェクトの規模に適したライセンス オプションを検討してください。 高品質の PDF ライブラリは、開発時間の短縮と、すべて for .NETアプリケーションにわたる一貫したプロフェッショナルな出力を通じて大きな利益をもたらします。 IronPDF のサポート チームトラブルシューティング ガイドにより、PDF 機能の実装時に行き詰まることがなくなります。

よくある質問

.NET CoreにおけるIronPDFの主な機能は何ですか?

IronPDFは主に.NET CoreアプリケーションでHTMLをPDFに変換するために使用され、開発者はピクセルパーフェクトなレンダリングで請求書、レポート、その他のドキュメントを作成することができます。

IronPDFはどのようにしてピクセルパーフェクトなレンダリングを実現しているのですか?

IronPDFはHTML、CSS、JavaScriptを高品質なPDFドキュメントに正確に変換する高度なレンダリング技術により、ピクセルパーフェクトなレンダリングを保証します。

.NET CoreでIronPDFを使ってレポートを作成できますか?

はい、IronPDFは.NET CoreでHTMLベースのレポートテンプレートをプロ仕様のPDFドキュメントに変換し、詳細なレポートを作成することができます。

IronPDFを使ってウェブページをPDFに変換できますか?

もちろん、IronPDFは元のHTMLやCSSで指定されたレイアウトやスタイルを保持したまま、ウェブページ全体をPDFに変換することができます。

IronPDF の一般的な使用例は何ですか?

IronPDFの一般的な使用例としては、請求書の作成、ビジネスレポートの作成、HTMLフォームのPDFへの変換、ウェブコンテンツのアーカイブなどがあります。

IronPDFは.NET Coreアプリケーションをサポートしていますか?

IronPDFは.NET Coreアプリケーションを完全にサポートしており、異なる.NETプラットフォームで働く開発者にとって多用途な選択肢となります。

IronPDFはHTMLからPDFへの変換でCSSとJavaScriptをどのように扱うのですか?

IronPDFは変換の過程でCSSとJavaScriptを処理し、HTMLのビジュアルレイアウトとダイナミックコンテンツがPDFで正確に表現されるようにします。

IronPDFはHTML文字列からPDFを生成できますか?

はい、IronPDFはHTML文字列からPDFを生成することができ、開発者はアプリケーション内で生成されたHTMLコンテンツから動的にPDFドキュメントを作成することができます。

IronPDFでPDFの外観をカスタマイズすることは可能ですか?

IronPDFは広範なカスタマイズオプションを提供し、開発者はHTMLとCSSを使ってカスタムヘッダー、カスタムフッター、カスタムスタイルを指定することでPDFの外観をコントロールすることができます。

IronPDFは他 for .NET PDFライブラリと比較してどのような利点がありますか?

IronPDFは.NET Coreとの統合のしやすさ、高品質なレンダリング、複雑なドキュメントレイアウトのサポート、HTML、CSS、JavaScriptの堅牢な処理など、いくつかの利点を提供します。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね