業界ニュース

Milan Jovanović氏はASP.NET .NET CoreでPDFドキュメントを作成しており、そのライブラリとしてIronPDFを使用している。

ミラン・ヨバノビッチ

ソフトウェアアーキテクトであり、Microsoft MVP であり、 .NETエコシステムで最も尊敬されている人物の 1 人である Milan 氏が、 .NET Coreでの PDF 生成に関する詳細な解説記事を公開しました。 彼は、動的なドキュメント作成、PDFの結合、APIエンドポイントからのファイル配信など、実際の現場で用いられる様々なパターンについて解説した。

彼がそれらすべてについて選んだライブラリは? IronPDF 。 彼自身の言葉を借りれば、 "IronPDFは、私が商用プロジェクトで最も頻繁に使用しているライブラリです。"

彼がそれを具体的にどのように使っているのか、詳しく見ていきましょう。

アプローチ: Razorビューを使用したHTMLテンプレート

PDFファイルを生成するより一般的な方法は、HTMLテンプレートを使用することです。

これは、 ASP.NET Core MVC RazorビューとIronPDFのレンダリングエンジンを組み合わせたものです。厳密に型指定されたビューを使用することで、実行時にC#オブジェクトをテンプレートに直接渡すことができ、動的でデータ駆動型のドキュメントを生成できます。

これがそのパターンが実際に機能している様子です。 まず、 Razorビューでドキュメントのレイアウトを定義します。


@model ViewModels.InoviceViewModel

<div>Invoice number: @Model.InvoiceNumber</div>
<div>Invoice date: @Model.InvoiceDate</div>
<br/>
<span>Line items:</span>
<ul>
    @foreach(var lineItem in Model.LineItems)
    {
        <li>@lineItem.Name | @lineItem.Price</li>
    }
</ul>

@model ViewModels.InoviceViewModel

<div>Invoice number: @Model.InvoiceNumber</div>
<div>Invoice date: @Model.InvoiceDate</div>
<br/>
<span>Line items:</span>
<ul>
    @foreach(var lineItem in Model.LineItems)
    {
        <li>@lineItem.Name | @lineItem.Price</li>
    }
</ul>
@ModelType ViewModels.InoviceViewModel

<div>Invoice number: @Model.InvoiceNumber</div>
<div>Invoice date: @Model.InvoiceDate</div>
<br/>
<span>Line items:</span>
<ul>
    @For Each lineItem In Model.LineItems
        <li>@lineItem.Name | @lineItem.Price</li>
    Next
</ul>
$vbLabelText   $csharpLabel

次に、IronPDFのChromePdfRendererが、レンダリングされたHTMLを洗練されたPDFに変換します。

var html = ConvertRazorViewToHtml(invoice);

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs($"invoice-{invoice.InvoiceNumber}.pdf");
var html = ConvertRazorViewToHtml(invoice);

var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderHtmlAsPdf(html);

pdf.SaveAs($"invoice-{invoice.InvoiceNumber}.pdf");
Dim html = ConvertRazorViewToHtml(invoice)

Dim renderer = New ChromePdfRenderer()

Dim pdf = renderer.RenderHtmlAsPdf(html)

pdf.SaveAs($"invoice-{invoice.InvoiceNumber}.pdf")
$vbLabelText   $csharpLabel

C#コード3行。 Razorビューはすべてのレイアウトロジックを処理し、CSSはスタイリングを処理し、 IronPDFは変換を処理します。 ミランが指摘するように、"本当にそれほど単純なことなのです。"

ミランが他の選択肢ではなくこれを選ぶ理由

ミランはこれまで数々の商業プロジェクトでPDFライブラリを利用してきたが、彼がIronPDFを好む理由は、記事の中で強調しているいくつかの重要な要素にある。

Chromiumレンダリングエンジンは、安定した結果を提供します。IronPDFはChromeと同じエンジンを使用してHTMLをレンダリングするため、PDF出力はブラウザで表示されるものと完全に一致します。

CSSを使えば、書式設定を完全に制御できます。独自のレイアウトAPIを学ぶ必要はなく、通常のウェブページで使用するのと同じCSSを使用できます。 Flexbox、グリッド、カスタムフォント、レスポンシブな間隔など、すべてがPDF出力に直接反映されます。

実世界のパターン:複数のPDFを結合する

ミランは、複数のPDFファイルを1つの文書に結合するという、一般的なビジネス要件について解説します。 会計処理のためにまとめる必要がある月々の領収書や、最終成果物としてまとめる必要がある報告書の各項目などを想像してみてください。

実世界のパターン:APIからPDFを提供する

Milanはまた、 IronPDFがASP.NET CoreのミニマルAPIパターンにいかに自然に適合するかを示している。 エンドポイントから動的に生成されたPDFを返します。

ミランの記事全文を読む

Milan氏による詳細な解説には、実装に関する追加情報やコードサンプルが含まれており、 .NETプロジェクトにおけるPDF生成方法を検討する際に参考になるでしょう。

記事全文はこちらからお読みください

自分で試してみてください

IronPDFは開発用途であれば無料で使用できるため、何の制約もなく、ご自身のプロジェクトでMilanのパターンを試すことができます。 NuGet経由でインストールしてください:

30日間無料トライアルを開始