.NET CoreでPDFファイルを生成する方法

IronPDF を使用して C# で .NET Core 環境において HTML を PDF に変換する

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

HTMLから直接高精細なPDFを生成することは、現代 for .NETアプリケーションにおいて日常的な要件となっています。レポート、請求書、チケットなどはすべて、Web UIと完全に一致するピクセルパーフェクトな出力が求められます。 IronPDFは、HTML、Razorビュー、およびWebサイト全体を標準準拠のPDF文書としてレンダリングするための単一のC# APIを提供することで、このワークフローを効率化します。 このガイドを読み終える頃には、開発者はASP.NET Coreプロジェクト内のURL、生のHTML、またはMVCビューを変換し、そのコードをWindows、Linux、Docker、またはサーバーレス環境にデプロイできるようになります。

ヒントレイアウトの問題については、IronPDFにはヘッドレスChromeデバッガーが同梱されており、PDFがレンダリングされる前にCSS、JavaScript、およびメディアクエリの不具合を診断するのに役立ちます。 (詳細な手法については、専用の"ピクセルパーフェクトなHTMLからPDFへの変換ガイド"をご参照ください。

クイックスタート: .NET CoreでHTMLからPDFを作成する

IronPDFライブラリを使用して、.NET CoreでHTMLを簡単にPDFに変換できます。 このガイドでは、最小限のコードでHTMLコンテンツを高品質なPDFに変換する簡単な例を紹介し、すぐに使い始められるようにしています。 アプリケーションへのPDF作成機能の統合を容易に行いたい開発者に最適です。

  1. IronPDF をNuGetパッケージマネージャでインストール

    PM > Install-Package IronPdf
  2. このコード スニペットをコピーして実行します。

    var pdf = new IronPdf.ChromePdfRenderer().RenderHtmlAsPdf("<h1>Hello World</h1>");
  3. 実際の環境でテストするためにデプロイする

    今日プロジェクトで IronPDF を使い始めましょう無料トライアル

    arrow pointer

クイックスタート・チェックリスト

  1. インストールInstall-Package IronPdf
  2. URLのレンダリングChromePdfRenderer.RenderUrlAsPdf()
  3. 生のHTMLをレンダリングChromePdfRenderer.RenderHtmlAsPdf()
  4. RazorビューのエクスポートChromePdfRenderer.RenderHtmlAsPdfAsync()
  5. 出力の微調整ChromePdfRenderer.RenderingOptions を活用する

このチュートリアルの内容

  • URL、HTML文字列、およびRazorビューの変換
  • 用紙、余白、およびメディア種別の設定
  • クロスプラットフォーム展開(Windows、Linux、Docker)
  • 後処理:PDFの結合、透かし入れ、パスワード保護、デジタル署名
  • エンドツーエンドのサンプル:チケット予約用 MVC アプリ

.NET CoreにPDFライブラリをインストールするにはどうすればよいですか?

ライブラリのインストールは、どの .NET 8 プロジェクトでも 1 行のコードで完了し、.NET 9 プレビューおよび今後リリースされる .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

@@--PS0BG--@@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");
' Program.cs — .NET 8 LTS
Imports IronPdf

Private renderer = New ChromePdfRenderer()

' Render a live website to PDF
Private PdfDocument As using

' 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 年にリリース予定の .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");
' Program.cs — .NET 8 LTS-compatible
Imports IronPdf

' 1. Activate a license (or trial key)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"

' 2. Create a reusable renderer instance
Dim renderer = New ChromePdfRenderer With {
	.RenderingOptions = {
		PaperSize = PdfPaperSize.A4,
		CssMediaType = PdfCssMediaType.Print
	}
}

' 3. Convert Microsoft Docs home page to PDF
Using pdf As PdfDocument = renderer.RenderUrlAsPdf("https://learn.microsoft.com/")
	
	' 4. Save the PDF or stream it from a Web API
	pdf.SaveAs("docs-offline-copy.pdf")
End Using
$vbLabelText   $csharpLabel

その理由

  • ChromePdfRenderer はサンドボックス化された Chromium インスタンスを起動します。システム上の Chrome への依存がないため、Docker イメージを軽量に保てます。
  • RenderUrlAsPdf は、DOM と JavaScript の処理が完了するのを待ってからスナップショットを取得するため、シングルページアプリケーションも正しくレンダリングされます。
  • CssMediaTypePRINT に設定すると、エンジンに印刷専用のルールを使用するよう指示し、ブラウザの"印刷 → PDFとして保存"出力に対応します。
  • 生成された PdfDocument は、暗号化、デジタル署名、マージ、またはラスタライズが可能です。これらの機能については、後のセクションで説明します。

ヒントピクセル単位のデバッグ: renderer.LoggingOptions.DebugMode = true を有効にし、Headless Chrome デバッグガイドに従って、レンダリング中にライブの DevTools を確認してください。

関連リソース


.NET Coreで生のHTMLをPDFに変換するにはどうすればよいですか?

HTML文字列(またはRazorビューのレンダリング済みマークアップ)を ChromePdfRenderer.RenderHtmlAsPdf に渡すだけで、標準に準拠したPDFが即座に生成されます。 この手法ではIronPDFに組み込まれたChromiumエンジンを起動するため、外部ブラウザのインストールやWebViewへの依存は不要です。 以下に示すコードは、現在 .NET 8 LTS でコンパイル可能であり、.NET 9 および 2025年11月にリリースが予定されている .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");
' Program.cs — compatible with .NET 8 and newer
Imports IronPdf

' Sample HTML fragment (could also be read from a file, Razor view, or CMS)
Private Const html As String = "<!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
Private renderer = New ChromePdfRenderer With {
	.RenderingOptions = {
		PaperSize = PdfPaperSize.A4,
		PaperOrientation = PdfPaperOrientation.Portrait,
		CssMediaType = PdfCssMediaType.Screen,
		RenderDelay = 100,
		FallbackEncoding = "utf-8"
	}
}

' 2. Render the HTML fragment
Private PdfDocument As using

' 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 は、ブラウザの PRINT 設定を反映するため、PDF が画面上のレイアウトと一致するようになります。
  • 将来を見据えた設計 — API インターフェースは .NET 8、.NET 9 STS、および今後リリース予定の .NET 10 で共通であるため、長期的なメンテナンスの負担は最小限に抑えられます
  • 後処理フックPdfDocument は、マージ、パスワード保護、およびデジタル署名のためのヘルパー関数を公開しています。これらについては、このガイドの後半でそれぞれ説明します。

詳細情報:HTML文字列からPDF/Aへの変換手順解説および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");
    }
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Imports YourApp.Models ' TicketViewModel

Public Class TicketsController
    Inherits Controller

    Private ReadOnly _renderer As ChromePdfRenderer

    Public Sub New()
        _renderer = New ChromePdfRenderer With {
            .RenderingOptions = New PdfRenderingOptions With {
                .PaperSize = PdfPaperSize.A5, ' Compact ticket size
                .PaperOrientation = PdfPdfOrientation.Portrait,
                .FitToPaperWidth = True,
                .CssMediaType = PdfCssMediaType.Print,
                .Margins = New PdfMargins(5, 10, 5, 10) ' mm
            }
        }
    End Sub

    ' GET /Tickets/Print/42
    Public Async Function Print(id As Integer) As Task(Of IActionResult)
        Dim vm As TicketViewModel = Await _service.GetTicketAsync(id)

        ' 1. Render the Razor view to an HTML string
        Dim html As String = Await RazorTemplateEngine.RenderViewAsync(
            HttpContext, "~/Views/Tickets/Print.cshtml", vm)

        ' 2. Convert HTML → PDF
        Using pdf As PdfDocument = _renderer.RenderHtmlAsPdf(html)
            ' 3. Stream back as a file
            Return File(pdf.BinaryData, "application/pdf", $"ticket-{id}.pdf")
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

このコードが示す内容

  • 一時ファイルは不要 — Razor ビューはメモリ内でレンダリングされ、その後 RenderHtmlAsPdf に直接渡されるため、ディスク I/O や一時フォルダでの競合状態を回避できます。
  • チケットサイズの出力PaperSize = A5 および狭い余白により、自宅印刷用のチケットをコンパクトに保ちます。
  • 一貫した PRINT スタイルCssMediaType = Print は、ブラウザが使用するのと同じ @media print CSS ルールを適用します。
  • バイナリストリーミングpdf.BinaryData は、ファイルシステムにアクセスすることなくドキュメントをストリーミングします; APIエンドポイントやLambda関数に最適です。
  • 再利用可能なレンダラーChromePdfRenderer はコントローラーごとに一度インスタンス化され、その後再利用されるため、プロセス生成のオーバーヘッドを最小限に抑えます。

PaperSize, PaperOrientation, FitToPaperWidth

Margins, Header, Footer, Watermark

次のステップ:暗号化やデジタル署名の追加、または複数のチケットを1つのファイルに統合します。統合の例デジタル署名のハウツーを参照してください。


レンダリング前に、用紙サイズ、余白、ヘッダー、透かし、およびセキュリティ設定をどのように微調整すればよいですか?

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");
Imports IronPdf

Dim renderer As New ChromePdfRenderer()

' Configure everything in one place
renderer.RenderingOptions = New ChromePdfRenderOptions With {
    ' 1. Page layout
    .PaperSize = PdfPaperSize.A4, ' ISO size
    .PaperOrientation = PdfPdfOrientation.Portrait,
    .Margins = New PdfMargins With {.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 With {
        .HtmlTemplate = "<div style='font-size:50px;color:#cccccc;opacity:0.3;'>CONFIDENTIAL</div>",
        .VerticalAlignment = VerticalAlignment.Center,
        .HorizontalAlignment = HorizontalAlignment.Center
    },

    ' 5. Security
    .SecurityOptions = New PdfSecurityOptions With {
        .OwnerPassword = "StrongOwnerPwd!",
        .UserPassword = "ReadOnly",
        .AllowUserPrinting = False,
        .AllowUserCopyPasteContent = False
    }
}

' Render any HTML
Using pdf As PdfDocument = 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")
End Using
$vbLabelText   $csharpLabel

これらの選択肢が重要な理由

  • Margins、および CssMediaType は、ブラウザの印刷ダイアログを反映しているため、Windows、Linux、Docker のいずれにおいても、画面上のレイアウトと PDF が同一のままになります。
  • HTMLのヘッダーおよびフッターは、Razorトークン、CSS、JavaScriptに対応しており、動的なページ番号やブランディングに便利です。
  • HtmlStamp を使用すると、1 行のコードで、HTML および CSS を完全に制御できるブランド化された透かしを作成できます。
  • セキュリティオプションにより、サードパーティ製ツールを使用せずに、128ビット暗号化、所有者/ユーザーパスワード、およびきめ細かな権限設定が可能になります。
  • デジタル署名により、コード内に直接暗号化された印が追加され、法的真正性と改ざん防止機能が維持されます。
  • ExtractAllTextExtractAllImages などの抽出ヘルパーは、分析が必要な場合にこのプロセスを逆行させます。

クイックリファレンス — よく使われる設定

##

PaperSize, PaperOrientation, Margins, CssMediaType, RenderDelay

##

`HtmlHeader`, `HtmlFooter`, 動的なRazorプレースホルダー、ページ番号トークン

##

`Watermark`, `HtmlStamp`, 不透明度, 配置

##

`SecurityOptions`, `SignAndStamp`、所有者/ユーザーパスワード、証明書の署名

次のタスク:複数のPDFを結合し、テキストと画像を抽出し、Dockerまたはサーバーレス環境にデプロイする。 クロスプラットフォームでの互換性を確保するため、デプロイメントのセクションに進んでください。


LinuxおよびWindows上で、PDF生成コードをDockerにデプロイするにはどうすればよいですか?

IronPdf は単一の自己完結型 NuGet パッケージとして提供されるため、Windows および Linux の両方で ASP.NET Core(またはコンソール)アプリケーションのコンテナ化が容易に行えます。 重要な点は、公開されたバイナリをスリムなランタイムイメージにコピーし、Linux では IronPDF に必要な 2 つのネイティブライブラリ(libnss3 および libatk1.0-0)を追加することです。

多段階 Dockerfile (Ubuntu 22.04)

ご注意なぜ多段階なのか? SDKイメージ(ステージ1)はプロジェクトをコンパイルし; (ビルドツールが除外されるため、最終的なランタイムイメージ(ステージ 2)は軽量なまま(120 MB 未満)です。)}]

####### ---------- 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"]

mcr.microsoft.com/dotnet/aspnet:8.0-windowsservercore-ltsc2022に置き換えてください。Chromium DLLがバンドルされているため、追加のパッケージは必要ありません。

エンドツーエンド検証スクリプト

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 not found"というエラーが表示される場合は、libnss3libatk1.0-0 の両方が存在することを確認してください。 Alpine イメージは、musl C ライブラリに必要なシンボルが欠落しているためサポートされていません

社内リソース


.NET Core で既存の PDF を開き、結合し、透かしを入れ、コンテンツを抽出するにはどうすればよいですか?

IronPDFは、IronPDF、Adobe® Acrobat、またはサードパーティ製ツールによって生成されたすべてのPDFを、品質を損なうことなく開く、編集する、保護する、および再保存できる、第一級のPdfDocumentオブジェクトとして扱います。 現在、同じAPIインターフェースが.NET 8 LTSで動作し、.NET 9プレビューおよび今後リリースされる.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");
' ManipulateExistingPdf.cs — .NET 8 LTS compatible
Imports IronPdf
Imports System.Linq

' Step 1: Open two existing files (password-protected PDFs are supported)
Private invoice As PdfDocument = PdfDocument.FromFile("invoice.pdf", "ReadOnly") ' open with user pwd
Private tAndCs As PdfDocument = PdfDocument.FromFile("terms.pdf") ' no pwd required

' Step 2: Merge them (invoice pages first, then T&Cs)
Private mergedPdf As PdfDocument = 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
Dim fullText As String = mergedPdf.ExtractAllText()
Dim image = mergedPdf.ExtractAllImages().FirstOrDefault()

' Step 5: Save or stream
mergedPdf.SaveAs("invoice-with-terms.pdf")
$vbLabelText   $csharpLabel

その重要性

  • 開いて結合PdfDocument.FromFile は、暗号化されたファイルを含め、標準に準拠したあらゆる PDF を読み込み、PdfDocument.Merge は、1回の呼び出しで任意の数のドキュメントを連結します。
  • WatermarkApplyStamp (別名 HtmlStamp) は、選択したページに、ロゴ、QRコード、斜めテキストなどの完全にスタイル設定されたHTML/CSSオーバーレイを、ラスタライズすることなく埋め込みます。
  • コンテンツ抽出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、および今後リリースされる.NET 10のサーバーレスSKU上で実行可能です。

ページの分割、回転、削除が必要ですか?詳細な操作については、ページ単位の編集チュートリアルをご覧ください。


.NET Core で PDF を暗号化およびデジタル署名するにはどうすればよいですか?

IronPDFは、AESベースの暗号化(ユーザー/所有者パスワード+きめ細かなアクセス権限)と、暗号ハッシュでファイルを封印するX.509デジタル署名という2つのステップでドキュメントを保護します。 両方のAPIは同じ PdfDocument オブジェクト上に存在するため、現在の .NET 8 LTS でのワークフローは同一であり、.NET 9 プレビューおよび今後の .NET 10 リリースでも変更なしでコンパイルされます。

例 — 256ビットAESを適用し、PRINT権限をロックし、可視署名を追加する

// 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");
' SecureAndSign.cs — .NET 8 LTS compatible
Imports IronPdf

' Step 1: Load an existing PDF (or produce one with RenderHtmlAsPdf)
Private pdf As PdfDocument = PdfDocument.FromFile("financial-report.pdf")

' Step 2: Configure AES-256 encryption & permissions
pdf.SecuritySettings = New PdfSecuritySettings With {
	.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 キーでペイロードを保護し、不正な開封、印刷、またはコピー&ペーストを防止します。
  • 権限の粒度AllowUserPrintingAllowUserFormData などのプロパティは、アクションごとの権限を切り替えます; 制限を有効にするには、所有者パスワードが必要です。
  • デジタル署名SignAndStamp は RFC 3161 準拠のタイムスタンプと証明書チェーンを埋め込み、Adobe® Acrobat やその他の ISO 32000-2 準拠のビューアで認識される改ざん防止ハッシュを生成します。
  • ワンストップAPI — 暗号化と署名の両方が同じ PdfDocument インスタンスを操作するため、ファイルを何度も読み書きする必要がなく、内部のフォント、レイヤー、メタデータが保持されます。

ヒントトラブルシューティングのヒント:Adobe Readerで"無効な署名"と表示される場合は、PFXに信頼されたルート証明書が含まれていること、およびlocationの文字列がASCII準拠であることを確認してください。

主要なセキュリティ設定

##

`PdfSecuritySettings` → `OwnerPassword`, `UserPassword`, `EncryptionAlgorithm`, `AllowUserPrinting`

##

`PdfDocument.SignAndStamp` — PFXパス、権限、場所、理由、タイムスタンプ

詳細情報に関する社内リソース


.NET Core において、HTML から PDF への変換パフォーマンスを最適化し、スケーリングするにはどうすればよいでしょうか?

IronPDFのChromeエンジンは、最新のハードウェア環境において、すでにほとんどのページを1秒未満でレンダリングしていますが、レンダリングのバッチ処理、マルチスレッド化、およびHeadless Chromeのオーバーヘッドを削減することで、処理能力をさらに向上させることができます。 以下のヒントは、すべて for .NET バージョンに等しく適用されます。

1. バックグラウンドのスレッドプールでのバッチレンダリング

// 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"));
});
' BatchRender.cs — Thread-safe on .NET 8+
Imports IronPdf
Imports System.Threading.Tasks

Private htmlSources = Directory.GetFiles("./html", "*.html")
Private renderer = New ChromePdfRenderer() ' reuse 1 instance

Parallel.ForEach(htmlSources, New ParallelOptions With {.MaxDegreeOfParallelism = Environment.ProcessorCount}, Sub(file)
	Dim html As String = File.ReadAllText(file)
	Using pdf As PdfDocument = renderer.RenderHtmlAsPdf(html)
		pdf.SaveAs(Path.ChangeExtension(file, ".pdf"))
	End Using
End Sub)
$vbLabelText   $csharpLabel

2. ヘッドレスChromeの起動時間を短縮する

IronPDFは独自のChromiumビルドを同梱していますが、レンダリングを行うたびにわずかな起動オーバーヘッドが発生します。 プーリングが役立ちますが、Linuxコンテナには2つのネイティブライブラリを含める必要があります:

RUN apt-get update && \
    apt-get install -y --no-install-recommends libnss3 libatk1.0-0

いずれかのライブラリが欠落していると、Dockerのログにlibnss3.so not foundエラーとして表示されます。

推奨されるChromeフラグ(IronPDFによって自動的に適用される)には、コンテナ環境におけるメモリ使用量やrootユーザー関連の問題を軽減するための--no-sandboxが含まれます。

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')";
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";
renderer.LoggingOptions.DebugMode = True
renderer.LoggingOptions.LogsToConsole = True
renderer.LoggingOptions.LogFilePath = "./logs/ironpdf-debug.log"
$vbLabelText   $csharpLabel

Live DevToolsのトレース機能により、コードを再コンパイルすることなく、欠落しているフォント、404エラーの画像、およびタイミングイベントを特定できます。

5. PDFテンプレートを再利用し、再レンダリングを避ける

請求書の処理については、[[name]] のようなプレースホルダーを含むテンプレート PDF を作成し、複雑な HTML を再構築する代わりにテキスト置換を行ってください。 処理速度は10倍高速で、メモリ使用量も少ない。

クイックチューニング・チェックリスト

##

`Parallel.ForEach`, `async/await`, 単一の `ChromePdfRenderer`

##

使用 `aspnet:8.0-jammy`; install `libnss3` + `libatk1.0-0`; フラグ `--no-sandbox`, `--disable-gpu`

##

`RenderDelay`, `WaitFor()`, SPAのハイドレーションが遅い場合のDevToolsタイムラインを記録する

関連情報


無料トライアルのダウンロード、ライセンスの選択、および専門家のサポートはどこで受けられますか? {#anchor-10-resources}

"無料トライアルを開始"フォームから30日間トライアルキーが即座に発行され、HTMLからPDFへの変換、デジタル署名、暗号化など、すべての機能が透かしなしで利用可能になります。

ライブラリを評価した後、永続ライセンスデプロイメントライセンス、またはEnterpriseライセンスのいずれかを選択してください。 各プランには、無料のマイナーアップデート、開発/ステージング/本番環境での使用権、および30日間の返金保証が含まれています。 キーの適用は 1 行のコード (IronPdf.License.LicenseKey = "YOUR-KEY";) で済み、CI/CD パイプライン内で自動化可能です。

包括的なドキュメント(クイックスタートガイドAPIリファレンスチュートリアル動画)はドキュメントポータルに掲載されており、.NETのリリースごとに更新されます。

技術的な質問については、シカゴを拠点とするサポートチームが、ライブチャットメール、または電話にて、1営業日以内に回答いたします。

パフォーマンスのチューニングおよびデプロイに関するよくある質問は、"パフォーマンス支援センター"にまとめられています。

クイックリンク

リソース 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/ ライブチャット、メールサポート、電話によるサポート

今後の手順

  1. MVCビューのレンダリングからAES-256暗号化まで、主要な機能をすべて実演するサンプルリポジトリをクローンしてください
  2. 既存のソリューションに試用キーを組み込み、ユニットテストを実行してクロスプラットフォームの互換性を検証します。
  3. プロジェクトに特化した提案を受けるため、エンジニアリングチームによるライブデモをご予約ください

これらのリソースを活用すれば、ど for .NETチームでも、オンプレミス、Docker、サーバーレス環境を問わず、1スプリント以内にピクセルパーフェクトな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にデジタル署名を追加できます。PdfDocumentSignメソッドを利用し、証明書ファイルを提供して文書の完全性と信憑性を確保します。

.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、Ironチームの最高技術責任者(CTO)
最高技術責任者(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テクノロジーにおけるイノベーションの推進に注力しています。

レビュー済み
Jeff Fritz
Jeffrey T. Fritz
プリンシパルプログラムマネージャー - .NETコミュニティチーム
Jeffはまた、.NETとVisual Studioチームのプリンシパルプログラムマネージャーです。彼は.NET Conf仮想会議シリーズのエグゼクティブプロデューサーであり、週に二回放送される開発者向けライブストリーム『Fritz and Friends』のホストを務め、テクノロジーについて話すことや視聴者と一緒にコードを書くことをしています。Jeffはワークショップ、プレゼンテーション、およびMicrosoft Build、Microsoft Ignite、.NET Conf、Microsoft MVPサミットを含む最大のMicrosoft開発者イベントのコンテンツを企画しています。
準備はできましたか?
Nuget ダウンロード 19,014,616 | バージョン: 2026.5 just released
Still Scrolling Icon

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

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