IronPDF チュートリアル .NET Core PDF生成 Convert HTML to PDF in .NET Core using C# with IronPDF Jacob Mellor 更新日:2026年1月31日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る This article was translated from English: Does it need improvement? Translated View the article in English HTMLから直接高忠実度のPDFを生成することは、現代 for .NETアプリケーションにおける日常的な要件です。レポート、請求書、チケットなど、ウェブUIに合ったピクセルパーフェクトな出力が必要です。 IronPDFは、HTML、Razorビュー、フルウェブサイトを標準準拠のPDFドキュメントにレンダリングするための単一のC# APIを公開することで、このワークフローを簡素化します。 このガイドの終わりまでに、開発者はASP.NET CoreプロジェクトでURL、生のHTML、またはMVCビューを変換し、同じコードをWindows、Linux、Docker、またはサーバーレス環境にデプロイできるようになります。 ヒントレイアウトの問題については、IronPDFはPDFがレンダリングされる前にCSS、JavaScript、メディアクエリの癖を診断するヘッドレスChromeデバッガを提供しています。 洗練されたピクセルパーフェクトHTML-to-PDFガイドをご覧ください。)] クイックスタート: .NET Coreで HTML から PDF を作成する IronPDFライブラリを使用して、.NET CoreでHTMLをPDFに簡単に変換します。 このガイドは、HTMLコンテンツを高品質のPDFに最小限のコードでレンダリングする簡単な例を提供します。 アプリケーションにPDF作成を容易に統合することを求める開発者に最適です。 IronPDF をNuGetパッケージマネージャでインストール PM > Install-Package IronPdf このコード スニペットをコピーして実行します。 var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello World</h1>"); 実際の環境でテストするためにデプロイする 今日プロジェクトで IronPDF を使い始めましょう無料トライアル Free 30 Day Trial 最小限のワークフロー(5ステップ) `IronPdf` NuGetパッケージをインストールする。 `RenderUrlAsPdf`でウェブサイトのURLを変換する `RenderHtmlAsPdf`で生のHTMLをレンダリングします。 MVCビューをPDFにエクスポートする 用紙サイズ、余白、ヘッダー、フッターの調整 クイックスタートチェックリスト 1.インストール– Install-Package IronPdf URL をレンダリングする– ChromePdfRenderer.RenderUrlAsPdf() 3.生の HTML をレンダリング– ChromePdfRenderer.RenderHtmlAsPdf() Razorビューをエクスポートする– ChromePdfRenderer.RenderHtmlAsPdfAsync() 5.出力を微調整する– ChromePdfRenderer.RenderingOptionsを活用する このチュートリアルでカバーする内容 URL、HTML文字列、およびRazorビューの変換 ペーパー、余白、およびメディアタイプの設定 クロスプラットフォームデプロイ (Windows、Linux、Docker) ポストプロセッシング: 結合、透かし、パスワード保護、デジタル署名 エンドトゥーエンドのサンプル: チケット予約MVCアプリ PDFライブラリを.NET Coreにインストールするにはどうすればいいですか? .NET 8プロジェクトでは、ライブラリをインストールするのは1行だけで、.NET 9 プレビューや今後 for .NET 10リリースとも前方互換性を維持します。 NuGetのパッケージマネージャコンソールを使用し、パッケージマネージャはWindows、Linux、Docker、およびサーバーレスターゲットに自動的にすべての依存関係を解決します。 PM> Install-Package IronPdf # .NET 8 LTS and higher PM> Install-Package IronPdf # .NET 8 LTS and higher SHELL ご注意 CLI が必要ですか?プロジェクトフォルダ内の dotnet add package IronPdf でも同じコマンドが使えます。 インストールが完了したら、任意の公開URLを変換することで、すべてが正常に接続されていることを確認します。 // Program.cs — .NET 8 LTS using IronPdf; var renderer = new ChromePdfRenderer(); // Render a live website to PDF using PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com"); // Persist to disk pdf.SaveAs("website-snapshot.pdf"); // Program.cs — .NET 8 LTS using IronPdf; var renderer = new ChromePdfRenderer(); // Render a live website to PDF using PdfDocument pdf = renderer.RenderUrlAsPdf("https://example.com"); // Persist to disk pdf.SaveAs("website-snapshot.pdf"); $vbLabelText $csharpLabel 仕組み ChromePdfRenderer はサンドボックス化された Chromium インスタンスを内部で起動します。別途 Chrome をインストールする必要はありません。 RenderUrlAsPdf は、JavaScript 駆動型コンテンツ、CSS メディア クエリ、フォントなど、完全にレンダリングされた DOM をキャプチャします。 結果として得られる PdfDocument は、出力のマージ、パスワード保護、またはデジタル署名を行うためのヘルパー メソッドを公開します。これらの機能については、このチュートリアルの後半で説明します。 デプロイの微妙な問題についての詳細は(Azure App Service、AWS Lambda、オンプレミスLinux)、専用のインストールガイド および 高度なNuGet設定ページ をご覧ください。 DockerおよびK8sクラスター用の内部CI/CDのヒントは、Dockerデプロイのベストプラクティスでカバーされています。 .NET CoreサービスがライブのウェブサイトURLをPDFに変換するにはどうすればいいですか? RenderUrlAsPdf を 1 回呼び出すだけで十分です。公開アクセス可能なURLを渡すと、 IronPDF は完全にレンダリングされた標準準拠の PDF を返します。 以下のコードは.NET 8 LTSにターゲットを絞り、.NET 9 プレビューや2025年のリリース予定 for .NET 10にも変更なくコンパイルされます。 ステップバイステップの例 // Program.cs — .NET 8 LTS-compatible using IronPdf; // 1. Activate a license (or trial key) IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // 2. Create a reusable renderer instance var renderer = new ChromePdfRenderer { RenderingOptions = { // Force A4 portrait output and apply @media print styles PaperSize = PdfPaperSize.A4, CssMediaType = PdfCssMediaType.Print } }; // 3. Convert Microsoft Docs home page to PDF using PdfDocument pdf = renderer.RenderUrlAsPdf("https://learn.microsoft.com/"); // 4. Save the PDF or stream it from a Web API pdf.SaveAs("docs-offline-copy.pdf"); // Program.cs — .NET 8 LTS-compatible using IronPdf; // 1. Activate a license (or trial key) IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; // 2. Create a reusable renderer instance var renderer = new ChromePdfRenderer { RenderingOptions = { // Force A4 portrait output and apply @media print styles PaperSize = PdfPaperSize.A4, CssMediaType = PdfCssMediaType.Print } }; // 3. Convert Microsoft Docs home page to PDF using PdfDocument pdf = renderer.RenderUrlAsPdf("https://learn.microsoft.com/"); // 4. Save the PDF or stream it from a Web API pdf.SaveAs("docs-offline-copy.pdf"); $vbLabelText $csharpLabel なぜこれが動作するのか ChromePdfRenderer サンドボックス化された Chromium インスタンスを起動します。システムの Chrome に依存しないため、Docker イメージがスリムに保たれます。 RenderUrlAsPdf はスナップショットを作成する前に DOM とJavaScript が終了するまで待機するため、シングルページ アプリは正しくレンダリングされます。 CssMediaTypeを印刷に設定すると、エンジンはブラウザの 印刷 → PDF として保存 出力に一致する印刷固有のルールを使用するように指示されます。 結果として得られる PdfDocument は、暗号化、デジタル署名、結合、またはラスタライズできます。これらの機能については、後のセクションで説明します。 ヒントピクセルパーフェクトなデバッグ: renderer.LoggingOptions.DebugMode = true を有効にし、ヘッドレス Chrome デバッグ ガイドに従って、レンダリング中にライブ DevTools を検査します。 関連リソース APIリファレンス – ChromePdfRenderer.RenderUrlAsPdf APIリファレンス – PdfDocument.SaveAs チュートリアル - DockerコンテナでIronPDFをデプロイする. 生のHTMLを.NET CoreでPDFに変換するにはどうすればいいですか? HTML 文字列 (またはRazorビューのレンダリングされたマークアップ) を ChromePdfRenderer.RenderHtmlAsPdf に渡すと、標準に準拠した PDF が即座に生成されます。 このメソッドはIronPDFの組込みChromiumエンジンを起動するため、外部ブラウザやWebViewの依存関係は必要ありません。 以下に示す同じコードは、今日 for .NET 8 LTSでコンパイルされ、2025年11月のリリース予定 for .NET 10と前方互換性を保ち続けます。 例 — HTMLフラグメントからPDFを生成する // Program.cs — compatible with .NET 8 and newer using IronPdf; // Sample HTML fragment (could also be read from a file, Razor view, or CMS) const string html = """ <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Quarterly Report</title> <style> body { font-family:'Segoe UI', sans-serif; margin:1.2rem; } header { margin-bottom:2rem; } h1 { color:#3056d3; } table { width:100%; border-collapse:collapse; margin-top:1rem; } th,td { border:1px solid #ddd; padding:0.5rem; text-align:right; } tr:nth-child(even){ background-color:#f8f9fa; } </style> </head> <body> <header><h1>Q2 Revenue Summary</h1></header> <table> <thead><tr><th>Product</th><th>Revenue ($)</th></tr></thead> <tbody> <tr><td>IronPDF for .NET</td><td>1,200,000</td></tr> <tr><td>IronOCR for .NET</td><td>890,000</td></tr> <tr><td>IronXL for .NET</td><td>610,000</td></tr> </tbody> </table> </body> </html> """; // 1. Create a renderer once and reuse it across conversions var renderer = new ChromePdfRenderer { RenderingOptions = { PaperSize = PdfPaperSize.A4, // ISO-standard paper size PaperOrientation = PdfPaperOrientation.Portrait, CssMediaType = PdfCssMediaType.Screen, // Respect on-screen CSS RenderDelay = 100, // Wait 100 ms for JS/animations FallbackEncoding = "utf-8" // Handle non-ASCII correctly } }; // 2. Render the HTML fragment using PdfDocument pdf = renderer.RenderHtmlAsPdf(html); // 3. Persist to disk or return via ASP.NET Core FileStreamResult pdf.SaveAs("q2-report.pdf"); // Program.cs — compatible with .NET 8 and newer using IronPdf; // Sample HTML fragment (could also be read from a file, Razor view, or CMS) const string html = """ <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Quarterly Report</title> <style> body { font-family:'Segoe UI', sans-serif; margin:1.2rem; } header { margin-bottom:2rem; } h1 { color:#3056d3; } table { width:100%; border-collapse:collapse; margin-top:1rem; } th,td { border:1px solid #ddd; padding:0.5rem; text-align:right; } tr:nth-child(even){ background-color:#f8f9fa; } </style> </head> <body> <header><h1>Q2 Revenue Summary</h1></header> <table> <thead><tr><th>Product</th><th>Revenue ($)</th></tr></thead> <tbody> <tr><td>IronPDF for .NET</td><td>1,200,000</td></tr> <tr><td>IronOCR for .NET</td><td>890,000</td></tr> <tr><td>IronXL for .NET</td><td>610,000</td></tr> </tbody> </table> </body> </html> """; // 1. Create a renderer once and reuse it across conversions var renderer = new ChromePdfRenderer { RenderingOptions = { PaperSize = PdfPaperSize.A4, // ISO-standard paper size PaperOrientation = PdfPaperOrientation.Portrait, CssMediaType = PdfCssMediaType.Screen, // Respect on-screen CSS RenderDelay = 100, // Wait 100 ms for JS/animations FallbackEncoding = "utf-8" // Handle non-ASCII correctly } }; // 2. Render the HTML fragment using PdfDocument pdf = renderer.RenderHtmlAsPdf(html); // 3. Persist to disk or return via ASP.NET Core FileStreamResult pdf.SaveAs("q2-report.pdf"); $vbLabelText $csharpLabel コードが示すこと 埋め込みChromium -- IronPDFはChromiumエンジンをバンドルし、現代のブラウザと同等のHTML5、CSS3、JavaScriptの互換性を保証します。 単一の依存性 -- 軽量なNuGetインストールで、Windows、Linux、Docker、Azure/AWSを余分なシステムライブラリなしでカバーします。 -レンダリング オプション- CssMediaType、および RenderDelay はブラウザーの印刷設定をミラーリングし、PDF を画面上のレイアウトと一致させます。 将来の証明目標 -- APIサーフェスは.NET 8、.NET 9 STS、および今後 for .NET 10間で同じです。長期的な保守が最小限です。 -後処理フック- PdfDocument は、マージ、パスワード保護、デジタル署名のヘルパーを公開します。これらについては、このガイドの後半でそれぞれ説明します。 さらに詳しい情報については、 HTML 文字列から PDF へのステップバイステップのチュートリアルと、完全なChromePdfRenderer API ドキュメントを参照してください。 ASP .NET Core MVC ビューを PDF にエクスポートするにはどうすればいいですか? IronPDF は、ブラウザーと同じ方法で完全に処理されたRazorビュー ( .cshtml ) をレンダリングし、結果を PdfDocument としてストリーミングします。 以下のワークフローはコントローラーのロジックをクリーンに保ち、ブラウザプラグインを必要とせず、.NET 8 LTS、.NET 9 プレビュー、2025 年 11 月の予定された .NET 10 リリースで機能します。 エンドツーエンド コントローラーの例 // TicketsController.cs — .NET 8 LTS / MVC using IronPdf; using Microsoft.AspNetCore.Mvc; using YourApp.Models; // TicketViewModel public class TicketsController : Controller { private readonly ChromePdfRenderer _renderer; public TicketsController() { _renderer = new ChromePdfRenderer { RenderingOptions = { PaperSize = PdfPaperSize.A5, // Compact ticket size PaperOrientation = PdfPdfOrientation.Portrait, FitToPaperWidth = true, CssMediaType = PdfCssMediaType.Print, Margins = new PdfMargins(5, 10, 5, 10) // mm } }; } // GET /Tickets/Print/42 public async Task<IActionResult> Print(int id) { TicketViewModel vm = await _service.GetTicketAsync(id); // 1. Render the Razor view to an HTML string string html = await RazorTemplateEngine.RenderViewAsync( HttpContext, "~/Views/Tickets/Print.cshtml", vm); // 2. Convert HTML → PDF using PdfDocument pdf = _renderer.RenderHtmlAsPdf(html); // 3. Stream back as a file return File(pdf.BinaryData, "application/pdf", $"ticket-{id}.pdf"); } } // TicketsController.cs — .NET 8 LTS / MVC using IronPdf; using Microsoft.AspNetCore.Mvc; using YourApp.Models; // TicketViewModel public class TicketsController : Controller { private readonly ChromePdfRenderer _renderer; public TicketsController() { _renderer = new ChromePdfRenderer { RenderingOptions = { PaperSize = PdfPaperSize.A5, // Compact ticket size PaperOrientation = PdfPdfOrientation.Portrait, FitToPaperWidth = true, CssMediaType = PdfCssMediaType.Print, Margins = new PdfMargins(5, 10, 5, 10) // mm } }; } // GET /Tickets/Print/42 public async Task<IActionResult> Print(int id) { TicketViewModel vm = await _service.GetTicketAsync(id); // 1. Render the Razor view to an HTML string string html = await RazorTemplateEngine.RenderViewAsync( HttpContext, "~/Views/Tickets/Print.cshtml", vm); // 2. Convert HTML → PDF using PdfDocument pdf = _renderer.RenderHtmlAsPdf(html); // 3. Stream back as a file return File(pdf.BinaryData, "application/pdf", $"ticket-{id}.pdf"); } } $vbLabelText $csharpLabel このコードが示すこと -一時ファイルなし- Razorビューはメモリ内でレンダリングされ、その後RenderHtmlAsPdfに直接渡されるため、ディスク I/O と一時フォルダーの競合状態が回避されます。 -チケット サイズの出力(PaperSize = A5) と狭い余白により、自宅で印刷するチケットがコンパクトになります。 -一貫した印刷スタイル- CssMediaType = Print は、ブラウザーが使用するのと同じ @media print CSS ルールを適用します。 -バイナリ ストリーミング-- pdf.BinaryData はファイル システムに触れることなくドキュメントをストリーミングします。 - 再利用可能なレンダラー -- ChromePdfRendererはコントローラごとに一度インスタンス化され、再利用され、プロセス生成オーバーヘッドを最小限に抑えます。 -再利用可能なレンダラー- ChromePdfRenderer はコントローラーごとに 1 回インスタンス化され、その後再利用されるため、プロセス生成のオーバーヘッドが最小限に抑えられます。 ## Paper & Orientation `PaperSize`, `PaperOrientation`, `FitToPaperWidth` です。 ## Margins & Headers / Footers `マージン`、`ヘッダー`、`フッター`、`ウォーターマーク`。 レンダリング前に用紙サイズ、余白、ヘッダー、透かし、セキュリティを微調整するにはどうすればいいですか? IronPDFは、用紙寸法、方向、ヘッダー&フッター、JavaScriptタイミング、透かしのすべての側面を制御する1つのChromePdfRenderOptionsオブジェクトを公開しています。暗号化、デジタル署名—すべて追加のブラウザプラグインなしで。 IronPDF は、用紙のサイズ、向き、ヘッダーとフッター、 JavaScript のタイミング、透かし、暗号化、デジタル署名など、出力のあらゆる側面を制御する単一の ChromePdfRenderOptions オブジェクトを公開します。これらはすべて追加のブラウザ プラグインなしで実行できます。 コードサンプル - 一度に複数のオプションを適用 // AdvancedOptions.cs — .NET 8 compatible using IronPdf; var renderer = new ChromePdfRenderer(); // Configure everything in one place renderer.RenderingOptions = new ChromePdfRenderOptions { // 1. Page layout PaperSize = PdfPaperSize.A4, // ISO size PaperOrientation = PdfPdfOrientation.Portrait, Margins = new PdfMargins { Top = 20, Bottom = 25, Left = 15, Right = 15 }, // mm // 2. Timing & media CssMediaType = PdfCssMediaType.Print, // Respect @media print EnableJavaScript = true, RenderDelay = 200, // Wait 200 ms for animations // 3. Headers & footers (HTML gives full design freedom) HtmlHeader = "<header style='font:14px Segoe UI'>Invoice — {{date}}</header>", HtmlFooter = "<footer style='text-align:right;font-size:10px'>Page {{page}} / {{total-pages}}</footer>", // 4. Watermark Watermark = new HtmlStamp { HtmlTemplate = "<div style='font-size:50px;color:#cccccc;opacity:0.3;'>CONFIDENTIAL</div>", VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, // 5. Security SecurityOptions = new PdfSecurityOptions { OwnerPassword = "StrongOwnerPwd!", UserPassword = "ReadOnly", AllowUserPrinting = false, AllowUserCopyPasteContent = false } }; // Render any HTML using PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Advanced Options Demo</h1>"); // Digitally sign with a PFX certificate (optional) pdf.SignAndStamp("./certs/company.pfx", "Iron Software", "Bangkok", "Approval"); // Save pdf.SaveAs("advanced-options-demo.pdf"); // AdvancedOptions.cs — .NET 8 compatible using IronPdf; var renderer = new ChromePdfRenderer(); // Configure everything in one place renderer.RenderingOptions = new ChromePdfRenderOptions { // 1. Page layout PaperSize = PdfPaperSize.A4, // ISO size PaperOrientation = PdfPdfOrientation.Portrait, Margins = new PdfMargins { Top = 20, Bottom = 25, Left = 15, Right = 15 }, // mm // 2. Timing & media CssMediaType = PdfCssMediaType.Print, // Respect @media print EnableJavaScript = true, RenderDelay = 200, // Wait 200 ms for animations // 3. Headers & footers (HTML gives full design freedom) HtmlHeader = "<header style='font:14px Segoe UI'>Invoice — {{date}}</header>", HtmlFooter = "<footer style='text-align:right;font-size:10px'>Page {{page}} / {{total-pages}}</footer>", // 4. Watermark Watermark = new HtmlStamp { HtmlTemplate = "<div style='font-size:50px;color:#cccccc;opacity:0.3;'>CONFIDENTIAL</div>", VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center }, // 5. Security SecurityOptions = new PdfSecurityOptions { OwnerPassword = "StrongOwnerPwd!", UserPassword = "ReadOnly", AllowUserPrinting = false, AllowUserCopyPasteContent = false } }; // Render any HTML using PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Advanced Options Demo</h1>"); // Digitally sign with a PFX certificate (optional) pdf.SignAndStamp("./certs/company.pfx", "Iron Software", "Bangkok", "Approval"); // Save pdf.SaveAs("advanced-options-demo.pdf"); $vbLabelText $csharpLabel これらのオプションが重要な理由 Margins、および CssMediaType はブラウザーの印刷ダイアログをミラーリングするため、画面上のレイアウトと PDF は Windows、Linux、および Docker で同一のままになります。 HtmlStamp — 単一の行でブランド化された透かしを作成し、全面的なHTML + CSS制御を実現します。 HtmlStamp を使用すると、HTML + CSS を完全に制御して、1 行でブランド化された透かしを作成できます。 デジタル署名 — コード内で暗号学的シールを直接追加し、法的真正性と改ざんされた証拠を維持します。 デジタル署名 はコード内に暗号的シールを直接追加し、法的な真正性と改ざんの証拠を維持します。 分析が必要な場合、ExtractAllText や ExtractAllImages などの抽出ヘルパーがプロセスを逆転させます。 クイックリファレンス - 人気の設定 ## Page Layout & Media `PaperSize`、`PaperOrientation`、`Margins`、`CssMediaType`、`RenderDelay`。 ## Headers & Footers `HtmlHeader`、`HtmlFooter`、動的Razorプレースホルダ、ページ番号トークン ## . 透かし ボタン > `ウォーターマーク`, `Htmlスタンプ`, 不透明度, 位置合わせ ## Encryption & Signatures `SecurityOptions`、`SignAndStamp`、所有者/ユーザーパスワード、証明書の封印 次のタスク: 複数のPDFをマージし、テキストと画像を抽出し、Dockerまたはサーバーレスにデプロイします。 ## PDF生成コードをLinuxおよびWindowsのDockerにどのようにデプロイできますか? IronPDFは単一の自己完結型NuGetパッケージとして出荷され、ASP.NET Core(またはコンソール)アプリをWindowsとLinuxの両方でコンテナ化するのは簡単です。 鍵は発行されたバイナリをスリムなランタイムイメージにコピーし、LinuxではIronPDFが必要とする2つのネイティブライブラリ(libnss3とlibatk1.0-0)を追加することです。 重要なのは、公開されたバイナリをスリムなランタイム イメージにコピーし、Linux ではIronPDFに必要な 2 つのネイティブ ライブラリ (libnss3 と libatk1.0-0) を追加することです。 ご注意なぜマルチステージ? SDKイメージ(ステージ1)はプロジェクトをコンパイルします; ご注意なぜマルチステージなのか? SDKイメージ(ステージ1)がプロジェクトをコンパイルします; [{i:(Windowsコンテナ? 2番目のステージをmcr.microsoft.com/dotnet/aspnet:8.0-windowsservercore-ltsc2022に置き換えてください。Chromium DLLはバンドルされているため、追加パッケージは不要です。)] ####### ---------- stage 1 ---------- FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build WORKDIR /src COPY ["MyPdfApp.csproj", "."] RUN dotnet restore COPY . . RUN dotnet publish -c Release -o /app/publish ####### ---------- stage 2 ---------- FROM mcr.microsoft.com/dotnet/aspnet:8.0-jammy ######## Install two native libs required by Chromium RUN apt-get update && \ apt-get install -y --no-install-recommends libnss3 libatk1.0-0 && \ rm -rf /var/lib/apt/lists/* WORKDIR /app COPY --from=build /app/publish . ENTRYPOINT ["dotnet", "MyPdfApp.dll"] ご注意 Windows コンテナーですか? 2 番目のステージを mcr.microsoft.com/dotnet/aspnet:8.0-windowsservercore-ltsc2022 に置き換えます。Chromium DLL がバンドルされているため、追加のパッケージは必要ありません。 APIアクションは内部でChromePdfRenderer.RenderUrlAsPdfを呼び出し、ちょうどSection2のようにします。 docker build -t pdf-demo . docker run --rm -p 8080:80 pdf-demo ######### ↳ Navigate to http://localhost:8080/api/pdf?url=https://example.com docker build -t pdf-demo . docker run --rm -p 8080:80 pdf-demo ######### ↳ Navigate to http://localhost:8080/api/pdf?url=https://example.com SHELL API アクションは、セクション 2 と同様に、内部的に ChromePdfRenderer.RenderUrlAsPdf を呼び出します。 IronPDF はコンテナ内でサンドボックス化された Chromium プロセスを起動します - ヘッドレスでレンダリングするため、X サーバーは不要です。 大きなレンダリングでもメモリフットプリントは 200 MB 以下に保たれます。 ヒントトラブルシューティングのヒント:コンテナのログに"libnss3.so が見つかりません"というエラーが表示される場合は、libnss3 と libatk1.0-0 の両方が存在することを確認してください。 ### 内部リソース ハウツー – Azure App Service LinuxでIronPDFを実行する チュートリアル - DockerコンテナでIronPDFをデプロイする. ハウツー - AzureアプリサービスLinux上でIronPdfを実行する. APIリファレンス – ChromePdfRenderer クラス .NET Core で既存の PDF を開いたり、マージしたり、透かしを入れたり、コンテンツを抽出するにはどうすればよいですか? IronPDF は、 IronPDF、Adobe® Acrobat、またはサードパーティのツールによって生成されたすべての PDF を、品質を損なうことなく開いたり、編集したり、保護したり、再保存したりできるファーストクラスの PdfDocument オブジェクトとして扱います。 同じAPIサーフェスは、現在.NET 8 LTSで動作し、.NET 9プレビューと近日リリース予定 for .NET 10で変更なくコンパイルできます。 統一サンプル — 開く → マージ → 透かし → 抽出 // ManipulateExistingPdf.cs — .NET 8 LTS compatible using IronPdf; using System.Linq; // Step 1: Open two existing files (password-protected PDFs are supported) PdfDocument invoice = PdfDocument.FromFile("invoice.pdf", "ReadOnly"); // open with user pwd PdfDocument tAndCs = PdfDocument.FromFile("terms.pdf"); // no pwd required // Step 2: Merge them (invoice pages first, then T&Cs) PdfDocument mergedPdf = PdfDocument.Merge(invoice, tAndCs); // 1-liner merge // Step 3: Apply a diagonal CONFIDENTIAL watermark to every page mergedPdf.ApplyStamp( "<div style='font-size:60px;color:#d9534f;opacity:0.2;transform:rotate(-45deg);" + "width:100%;text-align:center;'>CONFIDENTIAL</div>", verticalAlignment : VerticalAlignment.Center, horizontalAlignment : HorizontalAlignment.Center); // Step 4: Extract all text and the first image for audit purposes string fullText = mergedPdf.ExtractAllText(); var image = mergedPdf.ExtractAllImages().FirstOrDefault(); // Step 5: Save or stream mergedPdf.SaveAs("invoice-with-terms.pdf"); // ManipulateExistingPdf.cs — .NET 8 LTS compatible using IronPdf; using System.Linq; // Step 1: Open two existing files (password-protected PDFs are supported) PdfDocument invoice = PdfDocument.FromFile("invoice.pdf", "ReadOnly"); // open with user pwd PdfDocument tAndCs = PdfDocument.FromFile("terms.pdf"); // no pwd required // Step 2: Merge them (invoice pages first, then T&Cs) PdfDocument mergedPdf = PdfDocument.Merge(invoice, tAndCs); // 1-liner merge // Step 3: Apply a diagonal CONFIDENTIAL watermark to every page mergedPdf.ApplyStamp( "<div style='font-size:60px;color:#d9534f;opacity:0.2;transform:rotate(-45deg);" + "width:100%;text-align:center;'>CONFIDENTIAL</div>", verticalAlignment : VerticalAlignment.Center, horizontalAlignment : HorizontalAlignment.Center); // Step 4: Extract all text and the first image for audit purposes string fullText = mergedPdf.ExtractAllText(); var image = mergedPdf.ExtractAllImages().FirstOrDefault(); // Step 5: Save or stream mergedPdf.SaveAs("invoice-with-terms.pdf"); $vbLabelText $csharpLabel これが重要な理由 -開いて結合– PdfDocument.FromFile は暗号化されたファイルを含む標準準拠の PDF を読み込み、PdfDocument.Merge は 1 回の呼び出しで任意の数のドキュメントを連結します。 -透かし- ApplyStamp (エイリアス HtmlStamp) は、ラスタライズせずに、選択したページに完全にスタイル設定された HTML/CSS オーバーレイ (ロゴ、QR コード、または斜めのテキスト) を埋め込みます。 -コンテンツ抽出– ExtractAllText および ExtractAllImages は、ダウンストリーム アーカイブまたは AI パイプライン用に生の UTF-8 テキストまたはバイナリ イメージ ストリームを取得します。 -デジタル署名に対応– 同じ PdfDocument インスタンスを SignAndStamp でシールして、 ISO 32000-2 デジタル署名要件に準拠した RFC 3161 準拠のハッシュを生成することができます。 オープンスタンダード準拠 – IronPDFは元のPDF構造(フォント、レイヤー、XMPメタデータ)を保持するため、出力はAdobe® Readerやその他のISO 32000-1ビューワーと互換性があります。 将来に備える – このAPIは相互運用性アセンブリやWin32 GDI呼び出しを避けるため、コードはWindows、Linux、Docker、および今後 for .NET 10サーバーレスSKUでも変更なしで実行されます。 ページを分割、回転、または削除する必要がありますか? 詳細な操作については、ページレベルの編集チュートリアルをご覧ください。 .NET CoreでPDFを暗号化およびデジタル署名するにはどうすればよいですか? IronPDFはドキュメントを2ステップで保護します: AESベースの暗号化(ユーザー/所有者パスワード + グラニュラー権限)および X.509デジタル署名 を使用して、ファイルを暗号ハッシュで封印します。 両方の API は同じ PdfDocument オブジェクトに存在するため、ワークフローは現在.NET 8 LTS で同一であり、 .NET 9 プレビューおよび今後 for .NET 10 リリースで変更なくコンパイルされます。 例 — 256ビットAESを適用し、印刷権をロックし、目に見える署名を追加する // SecureAndSign.cs — .NET 8 LTS compatible using IronPdf; // Step 1: Load an existing PDF (or produce one with RenderHtmlAsPdf) PdfDocument pdf = PdfDocument.FromFile("financial-report.pdf"); // Step 2: Configure AES-256 encryption & permissions pdf.SecuritySettings = new PdfSecuritySettings { EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256Bit, OwnerPassword = "IronAdmin!2025", UserPassword = "ReadOnly", AllowUserPrinting = PdfPrintSecurity.Disabled, AllowUserCopyPasteContent = false, AllowUserAnnotations = false }; // Step 3: Digitally sign with a PFX certificate pdf.SignAndStamp( certificatePath : "./certs/ironsoftware.pfx", authority : "Iron Software Ltd.", location : "Chicago, IL", reason : "Final approval" ); // Step 4: Persist or stream pdf.SaveAs("financial-report-secured-signed.pdf"); // SecureAndSign.cs — .NET 8 LTS compatible using IronPdf; // Step 1: Load an existing PDF (or produce one with RenderHtmlAsPdf) PdfDocument pdf = PdfDocument.FromFile("financial-report.pdf"); // Step 2: Configure AES-256 encryption & permissions pdf.SecuritySettings = new PdfSecuritySettings { EncryptionAlgorithm = PdfEncryptionAlgorithm.AES256Bit, OwnerPassword = "IronAdmin!2025", UserPassword = "ReadOnly", AllowUserPrinting = PdfPrintSecurity.Disabled, AllowUserCopyPasteContent = false, AllowUserAnnotations = false }; // Step 3: Digitally sign with a PFX certificate pdf.SignAndStamp( certificatePath : "./certs/ironsoftware.pfx", authority : "Iron Software Ltd.", location : "Chicago, IL", reason : "Final approval" ); // Step 4: Persist or stream pdf.SaveAs("financial-report-secured-signed.pdf"); $vbLabelText $csharpLabel 舞台裏 AES-256暗号化 — IronPDFはNIST承認のAESキーでペイロードをラップし、無許可の開封、印刷、またはコピー&ペーストをブロックします。 -権限の細分性- AllowUserPrinting や AllowUserFormDataなどのプロパティはアクションごとの権限を切り替えます。 制限を有効にするには、所有者パスワードが必要です。 -デジタル署名- SignAndStamp は RFC 3161 タイムスタンプと証明書チェーンを埋め込み、Adobe® Acrobat やその他の ISO 32000-2 ビューアで認識される改ざん防止ハッシュを作成します。 -ワンストップ API - 暗号化と署名の両方で同じ PdfDocument インスタンスが変更されるため、複数のファイル パスが回避され、内部フォント、レイヤー、メタデータが保持されます。 ヒントトラブルシューティングのヒント: Adobe Reader が"無効な署名"を報告する場合は、PFX に信頼されたルート証明書が含まれており、location 文字列が ASCII クリーンであることを確認してください。 コアセキュリティ設定 ## Encryption & Passwords `PdfSecuritySettings` → `OwnerPassword`, `UserPassword`, `EncryptionAlgorithm`, `AllowUserPrinting`. ## . デジタル署名 `PdfDocument.SignAndStamp` - PFX パス、権限、場所、理由、タイムスタンプ 深堀りのための内部リソース チュートリアル - PDF をパスワードで保護する。 例 - PDFにデジタル署名する。 APIリファレンス– PdfSecuritySettings HTMLからPDFへのパフォーマンスを最適化し、スケールさせるにはどうすればよいですか? 1. バッチレンダリングをバックグラウンドスレッドプールで行う - ChromePdfRendererはスレッドセーフです。単一のインスタンスがデッドロックせずに数十の同時タスクをサービスできます Parallel.ForEachはすべてのCPUコアを最大限に活用します。典型的なサーバーでは単一スレッドループと比較して4~6倍のスループットが得られます。 // BatchRender.cs — Thread-safe on .NET 8+ using IronPdf; using System.Threading.Tasks; var htmlSources = Directory.GetFiles("./html", "*.html"); var renderer = new ChromePdfRenderer(); // reuse 1 instance Parallel.ForEach(htmlSources, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount }, file => { string html = File.ReadAllText(file); using PdfDocument pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs(Path.ChangeExtension(file, ".pdf")); }); // BatchRender.cs — Thread-safe on .NET 8+ using IronPdf; using System.Threading.Tasks; var htmlSources = Directory.GetFiles("./html", "*.html"); var renderer = new ChromePdfRenderer(); // reuse 1 instance Parallel.ForEach(htmlSources, new ParallelOptions { MaxDegreeOfParallelism = Environment.ProcessorCount }, file => { string html = File.ReadAllText(file); using PdfDocument pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs(Path.ChangeExtension(file, ".pdf")); }); $vbLabelText $csharpLabel ChromePdfRenderer はスレッドセーフです。 単一のインスタンスは、デッドロックなしで数十の同時タスクに対応できます。 Parallel.ForEach はすべての CPU コアを飽和させます。 典型的なサーバーでは、シングルスレッド・ループと比較して4~6倍のスループット向上が見られます。 いずれかのライブラリが不足していると、Dockerログに"libnss3.so not found"エラーとして現れます。 2. ヘッドレスChromeの起動コストを削減 IronPDF は独自の Chromium ビルドを出荷しますが、レンダリングごとに小さな起動税が発生します。 プーリングが役立ち、 Linux コンテナーには 2 つのネイティブ ライブラリが含まれている必要があります。 RUN apt-get update && \ apt-get install -y --no-install-recommends libnss3 libatk1.0-0 Missing either library manifests as a libnss3.so not found error in Docker logs. Recommended Chrome flags (automatically applied by IronPDF) include --disable-gpu and --no-sandbox to reduce memory and root-user issues in containers. 3. RenderDelay または WaitFor で遅いJavaScriptを待機します カウンターをアニメーション化したり、DOMContentLoaded の後にデータを取得するページでは、短い遅延が必要になる場合があります。 renderer.RenderingOptions.RenderDelay = 200; // ms // OR: renderer.RenderingOptions.JavaScript = "WaitFor('window.doneLoading')"; renderer.RenderingOptions.RenderDelay = 200; // ms // OR: renderer.RenderingOptions.JavaScript = "WaitFor('window.doneLoading')"; $vbLabelText $csharpLabel カスタムプロミスやDOMポーリングのための専用のWaitForチュートリアルを参照してください。 4. 1つのリクエストのためのデバッグログを有効にする renderer.LoggingOptions.DebugMode = true; renderer.LoggingOptions.LogsToConsole = true; renderer.LoggingOptions.LogFilePath = "./logs/ironpdf-debug.log"; renderer.LoggingOptions.DebugMode = true; renderer.LoggingOptions.LogsToConsole = true; renderer.LoggingOptions.LogFilePath = "./logs/ironpdf-debug.log"; $vbLabelText $csharpLabel ライブDevToolsトレースは、欠けているフォント、404画像、およびコードの再コンパイルを必要としないタイミングイベントを明らかにします。 5. 再レンダリングの代わりにテンプレートPDFを再利用する 請求書を実行する場合は、複雑な HTML を再構築する代わりに、[[name]] のようなプレースホルダーを含むテンプレート PDFを作成し、テキスト置換を実行します。 それは10倍速く、メモリ的にも軽いです。 クイックチューニングチェックリスト ## Multi-Thread & Async `Parallel.ForEach`、`async/await`、単一の`ChromePdfRenderer`を再利用します。 ## ... Docker最適化イメージ `aspnet:8.0-jammy`; install `libnss3` + `libatk1.0-0`; flags `--no-sandbox`, `--disable-gpu` を使用してください。 ## . JavaScriptタイミング ボタン > `RenderDelay`、`WaitFor()`、DevTools のタイムラインを記録し、SPA のハイドレーションを遅くします。 さらなる読み物 ハウツー - 非同期/マルチスレッドでPDFを生成する トラブルシューティング - パフォーマンス・アシスタンス・センター。 例 - スレッドレンダリングデモ。 無料トライアルをダウンロードし、ライセンスを選び、専門のサポートを受けられる場所はどこですか? {#anchor-10-resources} 30日間のトライアルキーは、Start Free Trialフォームから即座に発行され、透かしなしでHTML-to-PDF、デジタル署名、暗号化を含むすべての機能を解除します。 ライブラリを評価した後、永久的なデベロッパー、デプロイ、またはエンタープライズライセンスを選択してください; 各プランは無料の小規模アップデートと開発/ステージング/本番使用権利、および30日間の返金保証を含みます。 キーの適用は 1 行のコード (IronPdf.License.LicenseKey = "YOUR-KEY";) で、CI/CD パイプラインで自動化できます。 包括的なドキュメント—クイックスタートガイド、APIリファレンス、およびチュートリアルビデオ—はドキュメントポータルにあり、すべて for .NETリリースに合わせて更新されます。 エンジニアリングの質問はシカゴに拠点を置くサポートチームから、ライブチャット、メール、または電話で1営業日以内に応答されます。 パフォーマンスチューニングと配置に関するFAQは、パフォーマンスアシスタンスセンターに集約されています。 クイックリンク リソース URL その重要性 30日間のトライアルキーを取得する https://ironpdf.com/demos/ 透かしなしですべての機能を解除 ライセンスと価格 https://ironpdf.com/licensing/ 永久またはサブスクリプションプラン; Iron Suite は 10 のライブラリをまとめています APIリファレンス https://ironpdf.com/object-reference/api/ 完全なクラスドキュメント、例: ChromePdfRenderer ドキュメントポータル https://ironpdf.com/docs/ ガイド、チュートリアル、サンプルプロジェクト パフォーマンスアシスタンス https://ironpdf.com/troubleshooting/ironpdf-performance-assistance/ 最適化とスケーリングのヒント サポートに連絡する https://ironsoftware.com/contact-us/ ライブチャット、電子メール、電話サポート 次のステップ サンプルリポジトリをクローンし、MVCビューのレンダリングからAES-256暗号化までのすべての主要機能をデモンストレーションします。 トライアルキーをプラグインし、既存のソリューションでユニットテストを実行してクロスプラットフォーム互換性を検証します。 ライブデモを予約するし、エンジニアリングチームとプロジェクト固有の推奨事項を相談します。 これらのリソースを手にして、あらゆる.NETチームが、オンプレミス、Docker、およびサーバーレスのいずれであっても、単一のスプリントでピクセルパーフェクトなPDFを本番環境に出荷できます。 よくある質問 .NET CoreでHTMLをPDFに変換するにはどうすればよいですか? IronPDFライブラリを使用して.NET CoreでHTMLをPDFに変換できます。まず、IronPDF NuGetパッケージをインストールし、ChromePdfRendererインスタンスを作成します。RenderHtmlAsPdfメソッドを使用してHTML文字列をPDFに変換します。 ウェブサイトのURLをPDF文書に変換するにはどうすればよいですか? ウェブサイトのURLをPDF文書に変換するには、IronPDF NuGetパッケージをインストールし、ChromePdfRendererインスタンスを作成し、RenderUrlAsPdfメソッドを使ってURLをPDFにレンダリングします。結果はSaveAsメソッドを使用して保存できます。 RazorビューをPDFに変換する最良の方法は何ですか? RazorビューをPDFに変換する最良の方法はIronPDFを使用することです。まず、RazorビューをHTML文字列にレンダリングし、この文字列をRenderHtmlAsPdfメソッドに渡してPDF文書を作成します。 PDF文書のセキュリティをどのように強化できますか? IronPDFを使用してPDFのセキュリティを強化できます。AES-256暗号化、パスワード設定、ユーザー権限の制御を適用します。SecuritySettingsプロパティを介してこれらの設定を構成し、印刷や編集といった操作を制限します。 PDFレンダリングのカスタマイズに対してどのようなオプションがありますか? IronPDFはChromePdfRenderOptionsクラスを通じてさまざまなレンダリングオプションを提供し、用紙サイズ、方向、マージン、CSSメディアタイプを設定できます。また、ヘッダー、フッター、透かしを追加してカスタマイズされたドキュメント出力も可能です。 DockerコンテナにPDF生成アプリケーションをどのようにデプロイしますか? DockerコンテナにPDF生成アプリケーションをデプロイするには、DockerfileでLinuxの依存関係を構成し、ユーザー権限を設定します。IronPdf.Installation.LinuxAndDockerDependenciesAutoConfigを利用して依存関係を自動管理します。 C#を使用してPDFに透かしを追加するにはどうすればよいですか? IronPDFを利用してHtmlStampオブジェクトでWatermarkプロパティを使用することでPDFに透かしを追加できます。高度なオプションには、HtmlStamperクラスを使用してカスタムポジショニングや透過効果を設定できます。 PDF文書にデジタル署名を追加できますか? はい、IronPDFのPdfSignatureクラスを使用してPDFにデジタル署名を追加できます。PdfDocumentのSignメソッドを利用し、証明書ファイルを提供して文書の完全性と信憑性を確保します。 .NET CoreでPDF生成のパフォーマンスをどのように最適化できますか? スレッドセーフなChromePdfRendererインスタンスを再利用し、マルチスレッディングを有効にし、不要なヘッドレス- ChromeのスタートアップフラグをトリミングすることでPDF生成のパフォーマンスを最適化します。これらの実践によりアプリケーションの効率を向上させます。 このチュートリアル for .NET Core HTMLからPDFへの例は.NET 10でも動作しますか? はい。IronPDFは.NET 10と完全に互換性があるため、このチュートリアルのChromePdfRenderer HTMLからPDFへの例を.NET 10プロジェクトでコアコードを変更せずに使用できます。主な違いはプロジェクトを作成するときに.NET 10をターゲットにし、その後NuGetから最新のIronPDFパッケージをインストールして、HTML、Razorビュー、またはURLからピクセルパーフェクトなPDFを生成することです。 Jacob Mellor 今すぐエンジニアリングチームとチャット 最高技術責任者(CTO) ジェイコブ・メラーはIron Softwareの最高技術責任者(CTO)であり、C# PDFテクノロジーを開拓する先見的なエンジニアです。Iron Softwareのコアコードベースを支えるオリジナル開発者として、彼は創業以来、会社の製品アーキテクチャを形成し、CEOのCameron Rimingtonとともに、会社をNASA、Tesla、および世界的な政府機関にサービスを提供する50人以上の会社に変えました。1999年にロンドンで最初のソフトウェアビジネスを開業し、2005年に最初 for .NETコンポーネントを作成した後、Microsoftのエコシステム全体で複雑な問題を解決することを専門としました。彼の主要なIronPDFとIron Suite .NETライブラリは、世界中で3000万以上のNuGetインストールを達成し、彼の基礎となるコードは世界中で使用されている開発者ツールに力を与え続けています。25年の商業経験と41年のコーディングの専門知識を持つJacobは、次世代の技術リーダーを指導しながら、エンタープライズグレードのC#、Java、Python PDFテクノロジーにおけるイノベーションの推進に注力しています。 レビュー済み Jeffrey T. Fritz プリンシパルプログラムマネージャー - .NETコミュニティチーム Jeffはまた、.NETとVisual Studioチームのプリンシパルプログラムマネージャーです。彼は.NET Conf仮想会議シリーズのエグゼクティブプロデューサーであり、週に二回放送される開発者向けライブストリーム『Fritz and Friends』のホストを務め、テクノロジーについて話すことや視聴者と一緒にコードを書くことをしています。Jeffはワークショップ、プレゼンテーション、およびMicrosoft Build、Microsoft Ignite、.NET Conf、Microsoft MVPサミットを含む最大のMicrosoft開発者イベントのコンテンツを企画しています。 準備はできましたか? Nuget ダウンロード 17,803,474 | バージョン: 2026.3 リリース 無料トライアル NuGet 無料版 総ダウンロード数: 17,803,474 ライセンスを見る まだスクロールしていますか? すぐに証拠が欲しいですか? PM > Install-Package IronPdf サンプルを実行するHTML が PDF に変換されるのを確認します。 NuGet 無料版 総ダウンロード数: 17,803,474 ライセンスを見る