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

IronPDF を使用して .NET Core で ASP HTML を PDF に変換する方法

IronPDF は、CSS スタイルと JavaScript 機能を保持する Chrome ベースのレンダリング エンジンを使用して、ASP.NET HTML を PDF に変換します。 このチュートリアルでは、ASP.NET Core アプリケーションで HTML 文字列、ビュー、URL をプロフェッショナルな PDF ドキュメントに変換する効果的な方法を示します。

動的なASP.NET HTMLをPDFドキュメントに変換することは、現代のASP.NETアプリケーションにおいて基本的な要件です。 請求書を生成する場合、レポートを作成する場合、ダウンロード可能な PDF ファイルを作成する場合など、HTML コンテンツをプロフェッショナルな PDF ドキュメントに変換することは、洗練されたユーザー エクスペリエンスを提供するために不可欠です。

IronPDF は、結果の PDF ドキュメントで HTML フォーマット、CSS スタイル、および JavaScript 機能を完全に保持する信頼性の高い Chrome ベースのレンダリング エンジンを提供することで、この ASP HTML から PDF への変換プロセスを簡素化します。 このチュートリアルでは、IronPDF ライブラリを使用してASP.NET Core アプリケーションで HTML を PDF に変換する効果的な方法について説明します。Chromeレンダリング エンジンを使用してピクセル単位の完璧な結果を実現します。

! IronPDF C# PDFライブラリのホームページバナーには、HTMLからPDFへの変換、PDF編集機能、ダウンロードとライセンスボタン付きの展開オプションなど、主な機能が表示されています。

なぜ開発者はHTMLからPDFへの変換が必要なのですか?

ASP.NET Coreアプリケーションは、ユーザーがPDFファイルとしてダウンロード、共有、またはアーカイブする必要がある動的HTMLコンテンツを生成することが多いです。 HTMLをPDFに変換することには、単にウェブページを保存したりスクリーンショットを撮ったりすることに比べていくつかの重要な利点があります。

PDFドキュメントは、すべてのデバイスやプラットフォームで一貫したフォーマットを維持し、請求書がWindows、Mac、またはモバイルデバイス上で同じように見えるようにします。 デジタル署名セキュリティ設定、またはプロフェッショナルな印刷を必要とする既存のドキュメントに最適です。 サーバー側での PDF 変換により、ユーザーは特定のソフトウェアをインストールする必要がなくなり、最終的な PDF 出力をより適切に制御できるようになります。

一般的な使用例には、ダッシュボード データからの財務レポートの生成、注文情報からダウンロード可能な請求書の作成、 QR コード付きのチケットやパスの作成、フォーム送信の永久記録への変換などがあります。 ASP HTML から PDF への変換をサーバー上で処理することで、ユーザーのブラウザやデバイスの機能に関係なく、一貫した結果が得られます。 IronPDF は複雑なレイアウトのレンダリングに優れており、 JavaScript を多用したコンテンツをスムーズに処理します。

! IronPDF の機能概要には、PDF の作成、PDF の変換、PDF の編集、PDF の署名と保護の 4 つの主なカテゴリが表示され、各セクションに詳細な機能リストが表示されます。

IronPDFのインストールはどのように機能しますか?

ASP.NET CoreプロジェクトでIronPDFを始めるのは簡単です。 ライブラリは.NET Core 2.0以上、および.NET 5、6、7、8をサポートしており、すべての現代のASP.NET CoreアプリケーションのHTMLからPDFへの変換タスクに対応しています。 特定のプラットフォーム要件については、 Windows 互換性ガイドまたはLinux セットアップ手順を確認してください。

どのインストール方法を使用すべきですか?

HTML を PDF に変換するために IronPDF を ASP.NET プロジェクトに追加する最も簡単な方法は、Visual Studio のNuGet パッケージ マネージャーを使用することです。 ソリューションエクスプローラーでプロジェクトを右クリックし、"NuGetパッケージの管理"を選択し、IronPDFを検索します。 最新バージョンをインストールしてプロジェクトに追加します。 詳細なインストール手順については、IronPDFインストール ガイドを参照してください。 代替のインストール方法としては、 Windows インストーラーまたはDocker デプロイメントがあります。

Install-Package IronPdf

複数の依存関係のダウンロードを伴う IronPDF NuGet パッケージのインストール プロセスを示すパッケージ マネージャー コンソール

必要な名前空間はどれですか?

インストール後、PDF生成で作業するC#ファイルにIronPDF名前空間を追加します。

using IronPdf;
using IronPdf;
$vbLabelText   $csharpLabel

このシンプルなインポート宣言により、HTML変換のためのChromePdfRendererクラスおよびPDF出力をカスタマイズするためのさまざまな設定オプションを含む、すべてのIronPDFの機能にアクセスできます。 代替の .NET 言語を使用している場合は、 F# の統合VB.NET の使用についても調べることができます。

! IronPDF の機能概要では、.NET アプリケーションでの PDF 生成におけるピクセルパーフェクトなレンダリング、5 分間のセットアップ、およびクロスプラットフォームの互換性について説明しています。

自分の環境に合わせて IronPDF を構成するにはどうすればよいですか?

ほとんどのASP.NET Coreアプリケーションでは、追加の設定なしでインストール直後にIronPDFが機能します。 ただし、Program.csまたはStartup.csファイルでグローバルオプションを設定することができます。

// Optional: Configure IronPDF settings
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;

// Configure logging for debugging
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All;
Installation.LogFilePath = "IronPdfLog.log";

// For Azure deployments
Installation.AzureQuickDeployment = true;
// Optional: Configure IronPDF settings
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;

// Configure logging for debugging
Installation.LoggingMode = IronPdf.Logging.LoggingMode.All;
Installation.LogFilePath = "IronPdfLog.log";

// For Azure deployments
Installation.AzureQuickDeployment = true;
$vbLabelText   $csharpLabel

これらの構成オプションは、Windows、Linux、Docker コンテナーのいずれで実行しているかに関係なく、特定のホスティング環境に合わせて IronPDF を改善するのに役立ちます。 Azure デプロイの場合、最適なパフォーマンスを得るためにAzureQuickDeploymentを有効にします。 AWS Lambdaにデプロイする場合は、コンテナ化されたデプロイの使用を検討してください。 スクリプトとアプリケーションファイルが同じディレクトリに置かれないようにして、競合を避けてください。 実稼働環境では、PDF 生成操作を監視するためのカスタム ログを実装します。

! IronPDF のクロスプラットフォームサポート図。.NET バージョン、オペレーティングシステム、クラウドプラットフォーム、開発環境との互換性を示します。

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

IronPDFでの最も基本的な操作は、HTML文字列を直接PDFドキュメントに変換することです。 このアプローチは、ASP.NETアプリケーションでHTMLコンテンツを動的に構築する際や、テンプレートとしてHTMLドキュメントを使用する際に最適です。 RenderHtmlAsPdf メソッドは、さまざまなソースからの HTML を変換するための優れた柔軟性を提供します。

// Create a PDF converter instance
var renderer = new ChromePdfRenderer();

// Configure rendering options for better quality
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.RenderDelay = 500; // Wait for content to load

// Convert HTML string to PDF document
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " + DateTime.Now + "</p>");

// Save the resultant PDF document to a file
pdf.SaveAs("report.pdf");

// Or stream directly to browser
var pdfBytes = pdf.BinaryData;
// Create a PDF converter instance
var renderer = new ChromePdfRenderer();

// Configure rendering options for better quality
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
renderer.RenderingOptions.RenderDelay = 500; // Wait for content to load

// Convert HTML string to PDF document
var pdf = renderer.RenderHtmlAsPdf("<h1>Sales Report</h1><p>Generated on: " + DateTime.Now + "</p>");

// Save the resultant PDF document to a file
pdf.SaveAs("report.pdf");

// Or stream directly to browser
var pdfBytes = pdf.BinaryData;
$vbLabelText   $csharpLabel

このコードスニペットは、HTMLコンテンツをレンダリングするためにChromiumエンジンを使用するChromePdfRendererインスタンスを作成します。 RenderHtmlAsPdfメソッドは、有効なHTML文字列を受け入れ、PdfDocumentオブジェクトを返します。 その後、この PDF をディスクに保存したり、バイト配列としてユーザーに直接ストリーミングしたりできます。 ChromePdfRenderer クラスとその機能について詳しく学びます。 高度なシナリオでは、非同期 PDF 生成または並列処理を検討してパフォーマンスを向上させます。

PDF 出力はどのようになりますか?

! 2025年1月11日午後11時51分30秒に生成されたタイトルとタイムスタンプが付いた基本的な売上レポートを表示するPDFビューアのスクリーンショット

CSS スタイルと画像をどのように含めるのですか?

IronPDF はCSS スタイルを完全にサポートしており、HTML を PDF に変換するときにさまざまなソースから画像を埋め込むことができます。 PDF コンバーターは、さまざまな HTML タグや画像 URL を含む HTML 要素を完全に忠実に処理します。 Web フォントSVG グラフィック、さらにはbase64 でエンコードされた画像もサポートしています。

var html = @"
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
        .table { width: 100%; border-collapse: collapse; }
        .table td { border: 1px solid #ddd; padding: 8px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This HTML document includes <span class='highlight'>highlighted text</span> and styling.</p>
    <table class='table'>
        <tr><td>Product</td><td>Sales</td></tr>
        <tr><td>Widget A</td><td>$1,234</td></tr>
    </table>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' alt='Logo' />";

var renderer = new ChromePdfRenderer();

// Set base URL for relative paths
renderer.RenderingOptions.BaseUrl = "___PROTECTED_URL_90___";

// Enable JavaScript execution
renderer.RenderingOptions.EnableJavaScript = true;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("styled-report.pdf");
var html = @"
    <style>
        body { font-family: Arial, sans-serif; margin: 40px; }
        h1 { color: #2c3e50; border-bottom: 2px solid #3498db; }
        .highlight { background-color: #f1c40f; padding: 5px; }
        .table { width: 100%; border-collapse: collapse; }
        .table td { border: 1px solid #ddd; padding: 8px; }
    </style>
    <h1>Monthly Report</h1>
    <p>This HTML document includes <span class='highlight'>highlighted text</span> and styling.</p>
    <table class='table'>
        <tr><td>Product</td><td>Sales</td></tr>
        <tr><td>Widget A</td><td>$1,234</td></tr>
    </table>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' alt='Logo' />";

var renderer = new ChromePdfRenderer();

// Set base URL for relative paths
renderer.RenderingOptions.BaseUrl = "___PROTECTED_URL_90___";

// Enable JavaScript execution
renderer.RenderingOptions.EnableJavaScript = true;

var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("styled-report.pdf");
$vbLabelText   $csharpLabel

レンダラーは、インラインスタイル、CSSファイル、さらにはbase64エンコードされた画像も処理します。 これにより、flexboxやグリッドレイアウトなどの最新のCSS3機能を含むHTMLコンテンツの正確な外観でPDFページを維持します。 HTMLからPDFへの変換は、白紙ページを生成することなく、すべてのHTMLタグとそのスタイルを保持します。 複雑なレイアウトの場合は、 Bootstrap 互換性を使用するか、カスタム ページ ブレークを実装することを検討してください。

ASP.NET Core ビューを PDF に変換するにはどうすればよいですか?

既存のHTMLドキュメントに基づいたレポートを生成するために、ASP.NET Coreウェブページやビュー全体をPDFに変換することは一般的な要件です。 IronPDFはいくつかのアプローチを提供しており、一つのページから複数のページにわたるASP HTMLからPDFへの変換シナリオに対応しています。 Razor ビューASPX ページ、さらにはBlazor コンポーネントを変換できます。

コントローラービューを変換するにはどうすればよいですか?

ASP.NET Core コントローラーでは、ビューを HTML にレンダリングし、IronPDF の効果的な PDF ライブラリレンダリング機能を使用してそれを PDF ドキュメントに変換できます。 このアプローチは、 MVC コアアプリケーションとMVC フレームワークアプリケーションの両方で機能します。

[HttpGet]
public async Task<IActionResult> DownloadPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 12345,
        Date = DateTime.Now,
        CustomerName = "Acme Corporation",
        Items = new List<InvoiceItem>
        {
            new InvoiceItem { Description = "Service", Quantity = 1, Price = 100.0 },
            new InvoiceItem { Description = "Support", Quantity = 2, Price = 50.0 }
        },
        Total = 200.0
    };

    // Render the view to HTML string
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);

    // Convert HTML to PDF with custom settings
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
    renderer.RenderingOptions.PrintHtmlBackgrounds = true;

    // Add header with invoice number
    renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" + invoiceModel.InvoiceNumber;
    renderer.RenderingOptions.TextHeader.DrawDividerLine = true;

    var pdf = renderer.RenderHtmlAsPdf(htmlContent);

    // Apply security settings if needed
    pdf.SecuritySettings.AllowUserPrinting = true;
    pdf.SecuritySettings.AllowUserCopyPasteContent = false;

    // Return PDF to browser
    var contentType = "application/pdf";
    var fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf";
    return File(pdf.BinaryData, contentType, fileName);
}

private async Task<string> RenderViewToString(string viewName, object model)
{
    ViewData.Model = model;
    using (var writer = new StringWriter())
    {
        var viewResult = viewEngine.FindView(ControllerContext, viewName, false);

        if (!viewResult.Success)
        {
            throw new ArgumentException($"View '{viewName}' not found");
        }

        var viewContext = new ViewContext(
            ControllerContext,
            viewResult.View,
            ViewData,
            TempData,
            writer,
            new HtmlHelperOptions()
        );

        await viewResult.View.RenderAsync(viewContext);
        return writer.GetStringBuilder().ToString();
    }
}
[HttpGet]
public async Task<IActionResult> DownloadPdf()
{
    var invoiceModel = new InvoiceModel
    {
        InvoiceNumber = 12345,
        Date = DateTime.Now,
        CustomerName = "Acme Corporation",
        Items = new List<InvoiceItem>
        {
            new InvoiceItem { Description = "Service", Quantity = 1, Price = 100.0 },
            new InvoiceItem { Description = "Support", Quantity = 2, Price = 50.0 }
        },
        Total = 200.0
    };

    // Render the view to HTML string
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);

    // Convert HTML to PDF with custom settings
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.PaperSize = PdfPaperSize.Letter;
    renderer.RenderingOptions.PrintHtmlBackgrounds = true;

    // Add header with invoice number
    renderer.RenderingOptions.TextHeader.CenterText = "Invoice #" + invoiceModel.InvoiceNumber;
    renderer.RenderingOptions.TextHeader.DrawDividerLine = true;

    var pdf = renderer.RenderHtmlAsPdf(htmlContent);

    // Apply security settings if needed
    pdf.SecuritySettings.AllowUserPrinting = true;
    pdf.SecuritySettings.AllowUserCopyPasteContent = false;

    // Return PDF to browser
    var contentType = "application/pdf";
    var fileName = $"invoice_{invoiceModel.InvoiceNumber}_{DateTime.Now:yyyyMMdd}.pdf";
    return File(pdf.BinaryData, contentType, fileName);
}

private async Task<string> RenderViewToString(string viewName, object model)
{
    ViewData.Model = model;
    using (var writer = new StringWriter())
    {
        var viewResult = viewEngine.FindView(ControllerContext, viewName, false);

        if (!viewResult.Success)
        {
            throw new ArgumentException($"View '{viewName}' not found");
        }

        var viewContext = new ViewContext(
            ControllerContext,
            viewResult.View,
            ViewData,
            TempData,
            writer,
            new HtmlHelperOptions()
        );

        await viewResult.View.RenderAsync(viewContext);
        return writer.GetStringBuilder().ToString();
    }
}
$vbLabelText   $csharpLabel

このアプローチは、Razorビューを最初にHTML文字列にレンダリングし、それをPDFに変換します。 PDFは適切なファイル名でユーザーのブラウザにファイルダウンロードとして返されます。 これは、ASPX ファイルを変換する場合でも、最新の Razor ビューを変換する場合でもスムーズに機能します。 ヘッドレス変換シナリオでは、Razor.Templating.Core の使用を検討してください。

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

! PDF ビューアに、Acme Corporation 宛ての 2025 年 2 月 11 日付の請求書番号 12345 が表示されています。サービス項目が 1 つあり、合計金額は 100 ドルです。

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

既存の Web ページの場合、IronPDF を効果的な HTML から PDF へのコンバーターとして使用し、指定した URL を直接 PDF ファイルに変換できます。 URL パラメータとして HTTP または HTTPS アドレスを指定するだけです。 このメソッドは、認証されたリクエストのCookieカスタム HTTP ヘッダーをサポートします。

[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
    var renderer = new ChromePdfRenderer();

    // Configure for web page rendering
    renderer.RenderingOptions.WaitFor.RenderDelay = 2000; // Wait for dynamic content
    renderer.RenderingOptions.ViewportWidth = 1920; // Desktop viewport

    // Add custom headers if needed
    renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token");

    // Handle cookies for authentication
    renderer.RenderingOptions.Cookies.Add(new Cookie
    {
        Name = "session_id",
        Value = Request.Cookies["session_id"],
        Domain = "yourdomain.com"
    });

    // Convert a specified URL to PDF document
    var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_91___");

    // Improve file size
    pdf.CompressImages(90);

    // Stream the PDF file to the browser
    return File(pdf.BinaryData, "application/pdf", "webpage.pdf");
}
[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
    var renderer = new ChromePdfRenderer();

    // Configure for web page rendering
    renderer.RenderingOptions.WaitFor.RenderDelay = 2000; // Wait for dynamic content
    renderer.RenderingOptions.ViewportWidth = 1920; // Desktop viewport

    // Add custom headers if needed
    renderer.RenderingOptions.HttpHeaders.Add("Authorization", "Bearer your-token");

    // Handle cookies for authentication
    renderer.RenderingOptions.Cookies.Add(new Cookie
    {
        Name = "session_id",
        Value = Request.Cookies["session_id"],
        Domain = "yourdomain.com"
    });

    // Convert a specified URL to PDF document
    var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_91___");

    // Improve file size
    pdf.CompressImages(90);

    // Stream the PDF file to the browser
    return File(pdf.BinaryData, "application/pdf", "webpage.pdf");
}
$vbLabelText   $csharpLabel

この方法は、既に適切にフォーマットされた Web ページがあり、それをダウンロード可能な PDF バージョンとして提供したい場合に特に便利です。 .NETライブラリは、スタイルシート、スクリプト、および画像を含むすべての外部リソースを処理し、完全なHTMLレンダリングを保証します。 コンバーターは、無効な URL に遭遇した場合、適切な HTTP ステータス コードを返します。 JavaScript を多用するサイトの場合は、レンダリング遅延を調整するか、 WaitFor 条件を使用します。

URL 変換の結果は何ですか?

! HTML から PDF への機能、価格オプション、.NET 開発者向けのコード例など、C# PDF 変換の機能を紹介する IronPDF ライブラリのホームページ。

認証されたページをどのように処理しますか?

.NET フォーム認証またはその他のセキュリティ メカニズムを使用して認証されたページを変換する場合、ユーザーのセッションを維持するために Cookie またはヘッダーを渡すことができます。 これにより、PDF 変換中にログイン画面へのリダイレクトが防止されます。 IronPDF は、 TLS 認証Kerberosを含むさまざまな認証方法をサポートしています。

var renderer = new ChromePdfRenderer();

// Set cookies for authenticated requests with user credentials
renderer.RenderingOptions.CustomCookies.Add("auth_token", Request.Cookies["auth_token"]);
renderer.RenderingOptions.CustomCookies.Add("session_id", Request.Cookies["session_id"]);

// Add authentication headers
renderer.RenderingOptions.HttpHeaders.Add("X-CSRF-Token", Request.Headers["X-CSRF-Token"]);

// For basic authentication
renderer.RenderingOptions.HttpLoginCredentials = new HttpLoginCredentials
{
    Username = "apiuser",
    Password = "securepassword"
};

// Configure timeout for slow-loading authenticated pages
renderer.RenderingOptions.RequestTimeout = 60000; // 60 seconds

// Convert protected web pages to PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_92___");

// Add metadata for tracking
pdf.MetaData.Author = User.Identity.Name;
pdf.MetaData.CreationDate = DateTime.Now;

pdf.SaveAs("secure-report.pdf");
var renderer = new ChromePdfRenderer();

// Set cookies for authenticated requests with user credentials
renderer.RenderingOptions.CustomCookies.Add("auth_token", Request.Cookies["auth_token"]);
renderer.RenderingOptions.CustomCookies.Add("session_id", Request.Cookies["session_id"]);

// Add authentication headers
renderer.RenderingOptions.HttpHeaders.Add("X-CSRF-Token", Request.Headers["X-CSRF-Token"]);

// For basic authentication
renderer.RenderingOptions.HttpLoginCredentials = new HttpLoginCredentials
{
    Username = "apiuser",
    Password = "securepassword"
};

// Configure timeout for slow-loading authenticated pages
renderer.RenderingOptions.RequestTimeout = 60000; // 60 seconds

// Convert protected web pages to PDF
var pdf = renderer.RenderUrlAsPdf("___PROTECTED_URL_92___");

// Add metadata for tracking
pdf.MetaData.Author = User.Identity.Name;
pdf.MetaData.CreationDate = DateTime.Now;

pdf.SaveAs("secure-report.pdf");
$vbLabelText   $csharpLabel

これにより、保護されたHTMLコンテンツが、セキュリティを維持したままPDFファイルに変換できるようになります。 PDF 変換プロセスではアプリケーションの認証が尊重され、機密文書への不正アクセスが防止されます。 基本認証シナリオで必要な場合は、ユーザー名とパスワードの引数を渡すことができます。 SSO 実装の場合は、リクエスト コンテキスト管理の使用を検討してください。## PDF 出力をカスタマイズするにはどうすればよいですか?

IronPDF は、HTML ドキュメントから PDF ドキュメントを生成する方法を制御するための完全な PDF コンバーターとして、広範なカスタマイズ オプションを提供します。 これらの設定は、ページレイアウトや書式設定に関する特定の要件を満たす専門的なPDFファイルを作成するのに役立ちます。 利用可能なレンダリング オプションの全範囲を調べます。

ページのサイズと余白を設定するにはどうすればよいですか?

プロフェッショナルなドキュメントレイアウトを実現するために、用紙サイズ余白を正確に制御します。

var renderer = new ChromePdfRenderer();

// Set default page size for PDF pages
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

// Control page width and margins for the PDF document
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Or use custom paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

// Control first page differently
renderer.RenderingOptions.FirstPageNumber = 1;

// Enable print-friendly CSS
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
var renderer = new ChromePdfRenderer();

// Set default page size for PDF pages
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;

// Control page width and margins for the PDF document
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;

// Or use custom paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);

// Control first page differently
renderer.RenderingOptions.FirstPageNumber = 1;

// Enable print-friendly CSS
renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;

// Enable background colors and images
renderer.RenderingOptions.PrintHtmlBackgrounds = true;
$vbLabelText   $csharpLabel

これらの設定は、奇数ページと偶数ページの両方を含むPDFページの物理的レイアウトを制御します。 標準の用紙サイズを選択したり、カスタム寸法を定義したり、縦向きまたは環境の向きを設定したり、複数ページのデザイン要件に合わせて余白を調整したりできます。 グラフィック テンプレート システムにより、ページ間で一貫したスタイルが確保されます。 特定の方向のニーズについては、ページ回転オプションを参照してください。

カスタマイズされた PDF はどのように見えるでしょうか?

! HTML から PDF への機能、価格オプション、.NET 開発者向けのコード例など、C# PDF 変換の機能を紹介する IronPDF ライブラリのホームページ。

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

一貫したヘッダーとフッターを追加すると、HTML ドキュメントを変換するときに PDF ドキュメントのプロフェッショナルな外観が向上します。 IronPDF はテキスト ヘッダーHTML ヘッダーの両方をサポートしています。

// Add text-based header and footer
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Company Report",
    LeftText = "{date}",
    RightText = "Confidential",
    FontSize = 12,
    FontFamily = "Arial",
    DrawDividerLine = true
};

renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
    CenterText = "Page {page} of {total-pages}",
    LeftText = "© 2024 Company Name",
    RightText = "{time}",
    FontSize = 10,
    DrawDividerLine = true
};

// Or use HTML headers for more complex layouts
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='display: flex; justify-content: space-between; align-items: center;'>
            <img src='logo.png' height='30' />
            <h2>Monthly Report</h2>
            <span>{date}</span>
        </div>",
    MaxHeight = 50,
    DrawDividerLine = true
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='text-align: center; font-size: 12px; color: #666;'>
            <p>Page {page} of {total-pages} | Document ID: {pdf-title}</p>
        </div>",
    MaxHeight = 30,
    LoadStylesAndCSSFromMainHtmlDocument = true
};
// Add text-based header and footer
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Company Report",
    LeftText = "{date}",
    RightText = "Confidential",
    FontSize = 12,
    FontFamily = "Arial",
    DrawDividerLine = true
};

renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
{
    CenterText = "Page {page} of {total-pages}",
    LeftText = "© 2024 Company Name",
    RightText = "{time}",
    FontSize = 10,
    DrawDividerLine = true
};

// Or use HTML headers for more complex layouts
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='display: flex; justify-content: space-between; align-items: center;'>
            <img src='logo.png' height='30' />
            <h2>Monthly Report</h2>
            <span>{date}</span>
        </div>",
    MaxHeight = 50,
    DrawDividerLine = true
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = @"
        <div style='text-align: center; font-size: 12px; color: #666;'>
            <p>Page {page} of {total-pages} | Document ID: {pdf-title}</p>
        </div>",
    MaxHeight = 30,
    LoadStylesAndCSSFromMainHtmlDocument = true
};
$vbLabelText   $csharpLabel

ヘッダーとフッターは、すべての PDF ページにわたってページ番号、日付、その他の動的コンテンツ用の特別なプレースホルダーを使用して、HTML 要素と書式設定をサポートします。 次のコードは、動的に生成されたドキュメントまたは既存のPDFドキュメントにプロフェッショナルなヘッダーを追加する方法を示します。 さらに細かく制御するために、特定のページにヘッダーを適用することもできます。

HTML から PDF への変換のベストプラクティスは何ですか?

HTMLからPDFに変換する際の最適なパフォーマンスと品質を確保するには、成功するPDF変換のためのこれらの実証済みのプラクティスに従ってください。 大規模展開向けのパフォーマンス最適化戦略を実装します。

PDFファイルを生成する前に、必ずブラウザでHTMLレンダリングをテストして、スタイリングとレイアウトを確認してください。 相対パスを使用すると HTML から PDF への変換プロセス中に問題が発生する可能性があるため、可能な場合は外部リソースのベース URL を使用してください。 複数の HTML 要素を含む複雑な JavaScript を多用した Web ページの場合は、レンダリング遅延を追加して、完全な読み込みを確実に実行します。

// Performance optimization example
public class PdfService
{
    private readonly ChromePdfRenderer _renderer;

    public PdfService()
    {
        _renderer = new ChromePdfRenderer();

        // Configure for optimal performance
        _renderer.RenderingOptions.RenderDelay = 100;
        _renderer.RenderingOptions.Timeout = 60000;
        _renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.All;

        // Enable caching for repeated conversions
        _renderer.RenderingOptions.EnableJavaScript = true;
        _renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    }

    public async Task<byte[]> GeneratePdfAsync(string html, PdfOptions options = null)
    {
        if (options != null)
        {
            ApplyOptions(options);
        }

        // Use async for better performance
        var pdf = await Task.Run(() => _renderer.RenderHtmlAsPdf(html));

        // Improve file size
        if (options?.CompressImages ?? false)
        {
            pdf.CompressImages(90);
        }

        return pdf.BinaryData;
    }

    private void ApplyOptions(PdfOptions options)
    {
        if (options.PageSize.HasValue)
            _renderer.RenderingOptions.PaperSize = options.PageSize.Value;

        if (options.Environment)
            _renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Environment;
    }
}
// Performance optimization example
public class PdfService
{
    private readonly ChromePdfRenderer _renderer;

    public PdfService()
    {
        _renderer = new ChromePdfRenderer();

        // Configure for optimal performance
        _renderer.RenderingOptions.RenderDelay = 100;
        _renderer.RenderingOptions.Timeout = 60000;
        _renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.All;

        // Enable caching for repeated conversions
        _renderer.RenderingOptions.EnableJavaScript = true;
        _renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print;
    }

    public async Task<byte[]> GeneratePdfAsync(string html, PdfOptions options = null)
    {
        if (options != null)
        {
            ApplyOptions(options);
        }

        // Use async for better performance
        var pdf = await Task.Run(() => _renderer.RenderHtmlAsPdf(html));

        // Improve file size
        if (options?.CompressImages ?? false)
        {
            pdf.CompressImages(90);
        }

        return pdf.BinaryData;
    }

    private void ApplyOptions(PdfOptions options)
    {
        if (options.PageSize.HasValue)
            _renderer.RenderingOptions.PaperSize = options.PageSize.Value;

        if (options.Environment)
            _renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Environment;
    }
}
$vbLabelText   $csharpLabel

頻繁に生成されるPDFドキュメントのキャッシングを実装してサーバーの負荷を軽減することを検討してください。 この .NET ライブラリを使用したASP.NET Core のベスト プラクティスの詳細については、 Microsoft の公式ドキュメントを参照してください。 Web アプリケーションのスケーラビリティを向上させるには、非同期メソッドを使用します。

実稼働環境にデプロイする場合は、適切な一時フォルダー パスを構成し、ホスティング環境に PDF ライブラリに必要な依存関係がインストールされていることを確認します (特にLinux デプロイの場合)。 競合を避けるために、スクリプトと変換ロジックを同じディレクトリに配置しないでください。 既存の PDF ドキュメントの一般的な展開シナリオについては、トラブルシューティング ガイドを確認してください。 直接 HTML コンテンツを処理する場合は、入力が URL ではないことを常に検証してください。

大量のシナリオの場合は、並列処理を実装するか、 IronPDF をマイクロサービスとして使用することを検討してください。 メモリ使用量を監視し、適切な廃棄パターンを実装します。 大きな HTML ドキュメントを扱う場合は、ストリーミング アプローチを使用してメモリのオーバーヘッドを最小限に抑えます。

PDF 生成プロセスの次のステップは何ですか?

ASP.NET CoreアプリケーションでのASP HTMLからPDFへの変換は、IronPDFを使用することで簡単になります。 ライブラリのChromeベースのレンダリングは、正確な変換を保証し、プロフェッショナルなドキュメント生成のために広範なカスタマイズオプションを提供します。 PDF/A 準拠デジタル署名フォーム作成などの高度な機能をご覧ください。

HTML 文字列、URL、または完全な Web ページを扱う場合でも、IronPDF は正確な書式設定、CSS スタイル、および JavaScript の動作を保持します。 この.NETベースのウェブアプリケーションツールは、効率的にPDF変換プロセス全体を処理します。 完全なドキュメント管理のために、 PDF 圧縮透かしメタデータ管理を検討してください。

今すぐ30 日間の無料トライアルを開始して、 ASP.NET Core アプリケーションにプロフェッショナルな PDF 生成を実装しましょう。 選択が必要ですか? ライセンスオプションを表示するか、チームとのデモを予約してください。 エンタープライズ展開の場合は、プロフェッショナル ライセンスレベルをご確認ください。

! IronPDF のライセンス ページには、開発者、場所、プロジェクトの制限が異なる 4 つの価格帯 (Lite、Plus、Professional、Unlimited) が表示されています

よくある質問

ASP.NET Core で HTML を PDF に変換する最適な方法は何ですか?

ASP.NET CoreでHTMLをPDFに変換する最良の方法は、IronPDFを使用することです。IronPDFは、HTMLコンテンツをシームレスに変換し、高品質のPDFを生成するソリューションを提供します。

HTML を PDF に変換するのに IronPDF を使用する必要があるのはなぜですか?

IronPDFは、正確なレンダリング、CSSとJavaScriptのサポート、複雑なHTMLドキュメントの処理能力など、強力な機能を備えています。そのため、ASP.NETアプリケーションからプロフェッショナルグレードのPDFを生成するのに最適です。

IronPDF は ASP.NET アプリケーション内の動的コンテンツを処理できますか?

はい、IronPDFはASP.NETアプリケーションの動的コンテンツを効果的に処理できます。動的なHTMLコンテンツを処理してPDFに変換するため、請求書、レポート、その他のドキュメントの作成に最適です。

IronPDF を使用して生成された PDF に CSS スタイルを含めることは可能ですか?

はい、IronPDFはCSSスタイルをサポートしています。既存のCSSスタイルシートを適用することで、PDF出力がHTMLコンテンツのデザインとレイアウトと一致するようにすることができます。

IronPDF は HTML から PDF への変換で JavaScript をどのようにサポートしますか?

IronPDF は JavaScript を完全にサポートしているため、結果の PDF に正確にレンダリングされる動的な要素やインタラクティブなコンテンツを HTML に含めることができます。

ASP.NET で HTML を PDF に変換する一般的な使用例は何ですか?

一般的な使用例には、請求書の生成、詳細レポートの作成、証明書の発行、電子書籍やパンフレットなどのダウンロード可能なコンテンツを ASP.NET アプリケーションから直接提供することなどがあります。

ASP.NET用のHTMLからPDFへの変換

IronPDF は、フォント、画像、表、その他の要素を含む HTML コンテンツを正確にレンダリングし、元のデザインの忠実性を維持することで、高品質の PDF 出力を保証します。

ASP.NET MVCのPDFビューアの構築

ASP.NET MVCでPDFを生成

カーティス・チャウ
テクニカルライター

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

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