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

.NET CoreでASP HTMLをPDFに変換する方法

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

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

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

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

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

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

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

必要な名前空間の追加

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

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

このシンプルなインポート宣言により、HTML変換のためのChromePdfRendererクラスおよび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を最適化するのに役立ちます。 スクリプトとアプリケーションファイルが同じディレクトリに置かれないようにして、競合を避けてください。

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クラスとその機能についてもっと学びましょう。

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ビューを変換する際にシームレスに動作します。

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ステータスコードを返します。

認証の処理

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

ヘッダーとフッター

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

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

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

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

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

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

結論

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

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

Start your free 30-day trial or デモを予約するために私たちのチームに連絡してください。

よくある質問

ASP.NETアプリケーションにおけるIronPDFの主な機能は何ですか?

IronPDFは、ASP.NETアプリケーションでHTMLコンテンツをプロフェッショナルなPDFドキュメントに変換するために使用されます。開発者が請求書を生成し、レポートを作成し、ダウンロード可能なPDFファイルを効率的に生成することを可能にします。

ASP.NETプロジェクトでHTMLをPDFに変換することが重要なのはなぜですか?

HTMLをPDFに変換することは、動的コンテンツをプロフェッショナルで共有可能なPDFドキュメント(請求書やレポートなど)に変換することで、洗練されたユーザーエクスペリエンスを提供するのに役立つため、ASP.NETプロジェクトでは重要です。

IronPDFはASP.NETで動的HTMLコンテンツを処理できますか?

はい、IronPDFは動的HTMLコンテンツを処理するように設計されており、動的なASP.NETウェブページやアプリケーションからPDFを生成するのに最適です。

ASP.NET における HTML から PDF への変換の一般的なユース ケースは何ですか?

一般的なユースケースには、請求書の生成、レポートの作成、ウェブアプリケーションからのダウンロード可能なPDFファイルの提供が含まれます。

IronPDFは、変換されたPDFドキュメントでスタイリングをサポートしていますか?

はい、IronPDFはCSSスタイリングをサポートしており、開発者が変換されたPDFドキュメントで元のHTMLコンテンツの外観を維持することができます。

IronPDFは、ASP.NETアプリケーションのユーザーエクスペリエンスをどのように改善しますか?

IronPDFは、開発者がそのASP.NETアプリケーションから直接高品質のPDFドキュメント(レポートや請求書など)を提供できるようにすることで、一貫性とプロフェッショナリズムを保証し、ユーザーエクスペリエンスを向上させます。

IronPDFでPDF生成の自動化は可能ですか?

はい、IronPDFはPDF生成の自動化を可能にし、開発者がそのASP.NETアプリケーション内でPDFドキュメントをプログラムで作成および管理することを可能にします。

Curtis Chau
テクニカルライター

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

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