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

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

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

IronPDFは、HTMLのフォーマット、CSSのスタイリング、JavaScriptの機能を完全に保持するChromeベースのレンダリングエンジンを提供することで、ASP HTMLをPDFに変換するプロセスを簡素化します。 このチュートリアルでは、 IronPDF ライブラリを使用してASP.NET Core アプリケーションで HTML を PDF に変換する効果的な方法について説明します。

! IronPDFを使って.NET CoreでASP HTMLをPDFに変換する方法:画像1 - IronPDF

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

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

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

一般的な使用例には、ダッシュボードデータからの財務報告書の生成、注文情報からのダウンロード可能な請求書の作成、QRコードのついたチケットやパスの製作、フォームの送信を永久的な記録に変換することが含まれます。 サーバーでASP HTMLをPDFに変換することで、ユーザーのブラウザやデバイスの能力に関係なく一貫した結果を確保します。

! IronPDFを使用して.NET CoreでASP HTMLをPDFに変換する方法:画像2 - 機能

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

ASP.NET CoreプロジェクトでIronPDFを始めるのは簡単です。 ライブラリは.NET Core 2.0以上、および.NET 5、6、7、8をサポートしており、すべての現代のASP.NET CoreアプリケーションのHTMLからPDFへの変換タスクに対応しています。

NuGetパッケージマネージャー経由でのインストール

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

Install-Package IronPdf

! IronPDFを使用して.NET CoreでASP HTMLをPDFに変換する方法: 画像3 - インストール

必要な名前空間の追加

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

using IronPdf;
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

このシンプルなインポート ステートメントを使用すると、HTML 変換用の ChromePdfRenderer クラスや PDF 出力をカスタマイズするためのさまざまな構成オプションなど、IronPDF のすべての機能にアクセスできます。

! IronPDF を使用して .NET Core で ASP HTML を PDF に変換する方法: 画像 4 - ASP HTML から PDF - IronPDF

基本設定

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

// Optional: Configure IronPDF settings
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;
// Optional: Configure IronPDF settings
Installation.TempFolderPath = @"C:\Temp\IronPdf\";
Installation.LinuxAndDockerDependenciesAutoConfig = true;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

これらの設定オプションは、Windows、LinuxまたはDockerコンテナ上で実行しているかどうかに関わらず、あなたの特定のホスティング環境にIronPDFを最適化するのに役立ちます。 スクリプトとアプリケーションファイルが同じディレクトリに置かれないようにして、競合を避けてください。

! IronPDFを使用して.NET CoreでASP HTMLをPDFに変換する方法:画像5 - クロスプラットフォームの互換性

HTML文字列をPDFに変換する方法

IronPDFでの最も基本的な操作は、HTML文字列を直接PDFドキュメントに変換することです。 このアプローチは、ASP.NETアプリケーションでHTMLコンテンツを動的に構築する際や、テンプレートとしてHTMLドキュメントを使用する際に最適です。

// Create a PDF converter instance
var renderer = new ChromePdfRenderer();
// 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");
// Create a PDF converter instance
var renderer = new ChromePdfRenderer();
// 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");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このコードスニペットは、HTMLコンテンツをレンダリングするためにChromiumエンジンを使用するChromePdfRendererインスタンスを作成します。 RenderHtmlAsPdfメソッドは、有効なHTML文字列を受け入れ、PdfDocumentオブジェクトを返します。 その後、ディスクにこのPDFファイルを保存するか、バイト配列として直接ユーザーにストリーミングすることができます。 ChromePdfRenderer クラスとその機能について詳しく学びます。

出力

! IronPDFを使って.NET CoreでASP HTMLをPDFに変換する方法:画像6 - PDF出力

CSSと画像の操作

IronPDFは、CSSスタイリングを完全にサポートし、さまざまなソースから画像を埋め込んでHTMLをPDFに変換することができます。 PDFコンバーターは、さまざまなHTMLタグや画像URLを含むHTMLエレメントを完全に忠実に処理します。

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; }
    </style>
    <h1>Monthly Report</h1>
    <p>This HTML document includes <span class='highlight'>highlighted text</span> and styling.</p>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' alt='Logo' />";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
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; }
    </style>
    <h1>Monthly Report</h1>
    <p>This HTML document includes <span class='highlight'>highlighted text</span> and styling.</p>
    <img src='data:image/png;base64,iVBORw0KGgoAAAANS...' alt='Logo' />";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

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

ASP.NET CoreビューをPDFに変換する方法

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

コントローラーのビューの変換

ASP.NET Coreコントローラ内で、ビューをHTMLにレンダリングし、その後IronPDFの強力なPDFライブラリレンダリング機能を使用してPDFドキュメントに変換できます。

[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 }
        },
        Total = 100.0
    };
    // Render the view to HTML string
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);
    // Convert HTML to PDF
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    // Return PDF to browser
    var contentType = "application/pdf";
    var fileName = $"invoice_{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);
        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 }
        },
        Total = 100.0
    };
    // Render the view to HTML string
    var htmlContent = await RenderViewToString("Invoice", invoiceModel);
    // Convert HTML to PDF
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(htmlContent);
    // Return PDF to browser
    var contentType = "application/pdf";
    var fileName = $"invoice_{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);
        var viewContext = new ViewContext(
            ControllerContext,
            viewResult.View,
            ViewData,
            TempData,
            writer,
            new HtmlHelperOptions()
        );
        await viewResult.View.RenderAsync(viewContext);
        return writer.GetStringBuilder().ToString();
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このアプローチは、Razorビューを最初にHTML文字列にレンダリングし、それをPDFに変換します。 PDFは適切なファイル名でユーザーのブラウザにファイルダウンロードとして返されます。 これは、ASPXファイルや最新のRazorビューを変換する際にシームレスに動作します。

出力

! IronPDFを使用して.NET CoreでASP HTMLをPDFに変換する方法:画像7 - コントローラービュー出力

URLをPDFに変換する

既存のウェブページに対して、指定されたURLを直接PDFファイルに変換するためにIronPDFの強力なHTMLからPDFコンバーターを使用できます。 HTTPまたはHTTPSのアドレスをURLパラメーターとして提供するだけです。

[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
    var renderer = new ChromePdfRenderer();
    // Convert a specified URL to PDF document
    var pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");
    // Stream the PDF file to the browser
    return File(pdf.BinaryData, "application/pdf", "invoice.pdf");
}
[HttpGet]
public IActionResult GeneratePdfFromUrl()
{
    var renderer = new ChromePdfRenderer();
    // Convert a specified URL to PDF document
    var pdf = renderer.RenderUrlAsPdf("https://ironpdf.com/");
    // Stream the PDF file to the browser
    return File(pdf.BinaryData, "application/pdf", "invoice.pdf");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

このメソッドは、すでにフォーマットされたウェブページがあり、それをダウンロード用PDFバージョンとして提供したいときに特に便利です。 .NETライブラリは、スタイルシート、スクリプト、および画像を含むすべての外部リソースを処理し、完全なHTMLレンダリングを保証します。 無効なURLに遭遇すると、コンバーターは適切なHTTPステータスコードを返します。

出力

! IronPDFを使用して.NET CoreでASP HTMLをPDFに変換する方法:画像8 - URLからPDF出力

認証の処理

.NETフォーム認証やその他のセキュリティメカニズムを使用して認証されたページを変換する際に、クッキーやヘッダーを渡して同じユーザーアカウントセッションを維持することができます。 これにより、PDF変換中にログイン画面へのリダイレクトを防ぎます。

var renderer = new ChromePdfRenderer();
// Set cookies for authenticated requests with user database credentials
renderer.RenderingOptions.CustomCookies.Add("auth_token", Request.Cookies["auth_token"]);
// Convert protected web pages to PDF
var pdf = renderer.RenderUrlAsPdf("https://localhost:5001/secure/report");
var renderer = new ChromePdfRenderer();
// Set cookies for authenticated requests with user database credentials
renderer.RenderingOptions.CustomCookies.Add("auth_token", Request.Cookies["auth_token"]);
// Convert protected web pages to PDF
var pdf = renderer.RenderUrlAsPdf("https://localhost:5001/secure/report");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

これにより、保護されたHTMLコンテンツが、セキュリティを維持したままPDFファイルに変換できるようになります。 PDF変換プロセスは、アプリケーションの基本認証およびフォーム認証を尊重し、敏感な既存のドキュメントへの不正なユーザーアカウントアクセスを防ぎます。 必要に応じて、基本認証シナリオのためにユーザー名とパスワードの引数を渡すこともできます。

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 resultant PDF document
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
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 resultant PDF document
renderer.RenderingOptions.MarginTop = 25;
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

これらの設定は、奇数ページと偶数ページの両方を含むPDFページの物理的レイアウトを制御します。 標準的な用紙サイズから選択するか、カスタム寸法を定義し、縦向きまたは横向きを設定し、複数ページのデザイン要件に合わせて余白を調整できます。 グラフィックステンプレートシステムは、後続の奇数ページと偶数ページ間で一貫したスタイリングを保証します。

出力

! IronPDFを使用して.NET CoreでASP HTMLをPDFに変換する方法:画像9 - カスタマイズされたPDF出力

ヘッダーとフッター

HTMLドキュメントを変換する際、コンスタントなヘッダーとフッターを追加することで、PDFドキュメントのプロフェッショナルな外観が向上します。

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align: center'>Company Report</div>",
    MaxHeight = 20
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align: center'>Page {page} of {total-pages}</div>",
    MaxHeight = 20
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align: center'>Company Report</div>",
    MaxHeight = 20
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align: center'>Page {page} of {total-pages}</div>",
    MaxHeight = 20
};
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

ヘッダーとフッターは、ページ番号、日付、および他の動的コンテンツのための特別なプレースホルダーを含め、すべてのPDFページでHTML要素とフォーマットをサポートします。 次のコードは、動的に生成されたドキュメントまたは既存のPDFドキュメントにプロフェッショナルなヘッダーを追加する方法を示します。

ベストプラクティスとは?

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

PDFファイルを生成する前に、必ずブラウザでHTMLレンダリングをテストして、スタイリングとレイアウトを確認してください。 可能な限り外部リソースの絶対URLを使用してください。相対パスはHTMLからPDFへの変換プロセスの際に問題を引き起こすことがあります。 多数のHTML要素を持つ複雑なJavaScript重視のウェブページの場合、完全な読み込みを確実にするためにレンダーディレイを追加してください。 頻繁に生成されるPDFドキュメントのキャッシングを実装してサーバーの負荷を軽減することを検討してください。 この .NET ライブラリを使用したASP.NET Core のベスト プラクティスの詳細については、 Microsoft の公式ドキュメントを参照してください。

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

結論

ASP.NET CoreアプリケーションでのASP HTMLからPDFへの変換は、IronPDFを使用することで簡単になります。 ライブラリのChromeベースのレンダリングは、正確な変換を保証し、プロフェッショナルなドキュメント生成のために広範なカスタマイズオプションを提供します。

HTML文字列、URL、完全なウェブページのどれを使用しても、IronPDFは正確なフォーマット、CSSのスタイリング、およびJavaScriptの動作を保持します。 この.NETベースのウェブアプリケーションツールは、効率的にPDF変換プロセス全体を処理します。

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

! IronPDFを使って.NET CoreでASP HTMLをPDFに変換する方法:画像10 - ライセンス

よくある質問

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ボットを作成したりして、技術に対する愛情と創造性を組み合わせています。