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

How to Send a PDF File as an Email Attachment in C#

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Itext on pricing, HTML support, and licensing.

View Full Comparison

ASP.NET MVC ビューを PDF ドキュメントに変換することは、最新の Web アプリケーションの中核要件です。 請求書、レポート、証明書などを生成する場合の課題は明らかです。Razor ビューを、書式とスタイルを保持したプロフェッショナルな PDF ファイルに変換するにはどうすればよいでしょうか。 このガイドでは、レガシーなiTextライブラリとIronPDF -- クロム動力のモダンなソリューション -- を比較し、PDF生成ワークフローにおいて適切なツールを選択できるようにします。

IronPDF vs iText MVC View to PDF File in C#: Image 1 - IronPDF

MVC ビューを PDF に変換する必要があるのはなぜですか?

企業は数え切れないほどの重要な業務を PDF 生成に依存しています。 請求書システムには改ざん防止の請求書書類が必要です。 人事部は、雇用証明書や契約書を作成します。 営業チームは、見積書や提案書を作成します。 教育プラットフォームは修了証を発行します。 各シナリオでは、あらゆるデバイスやプラットフォームで一貫した書式を維持するサーバーサイドのPDF生成が求められます。

ASP.NET Core のドキュメントによると、 Razorビューは、PDF に変換できる動的コンテンツを生成するための優れたテンプレート システムを提供します。 重要な問題は、どのライブラリが最も正確で、保守可能で、法的に適したソリューションを提供するかということです。

IronPDF vs iText MVC View to PDF File in C#: 画像 2 - 機能

iTextはMVCからPDF変換をどのように処理しますか?

iTextは、10年以上にわたり.NET向けのPDF生成の定番でした。 もともとはJavaのiTextライブラリから移植されたもので、PDF作成の低レベル制御を提供します。 しかし、HTML変換のアプローチは、特に最新のウェブコンテンツを扱う場合、古さが目立ちます。

iTextのインストール

ASP.NET Core MVCプロジェクトにiTextを追加するには、パッケージマネージャーコンソールを使用してNuGetパッケージをインストールしてください。

Install-Package iTextSharp
Install-Package iTextSharp
SHELL

IronPDF vs iText MVC View to PDF File in C#: 画像 3 - iTextのインストール

iTextを使った基本実装

ここでは、ASP.NET MVCプロジェクトでiTextのXMLWorkerHelperクラスを使用してMVCビューをPDFに変換する方法を示す完全な例があります。

using iTextSharp.text;
using iTextSharp.tool.xml;
using iTextSharp.text.pdf;
using System.IO;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GeneratePDF()
    {
        // Create a simple invoice HTML
        string invoiceHtml = @"
            <h1>Invoice #1001</h1>
            <p>Date: " + DateTime.Now.ToString("MM/dd/yyyy") + @"</p>
            <table border='1'>
                <tr><th>Item</th><th>Price</th></tr>
                <tr><td>Product A</td><td>$99.99</td></tr>
                <tr><td>Product B</td><td>$149.99</td></tr>
            </table>
            <p><strong>Total: $249.98</strong></p>";

        // Create PDF document using iTextSharp
        using var stream = new MemoryStream();
        var document = new Document(PageSize.A4);
        PdfWriter writer = PdfWriter.GetInstance(document, stream);
        document.Open();

        using (var srHtml = new StringReader(invoiceHtml))
        {
            XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml);
        }

        document.Close();

        // Return the PDF file
        return new FileContentResult(stream.ToArray(), "application/pdf")
        {
            FileDownloadName = "invoice.pdf"
        };
    }
}
using iTextSharp.text;
using iTextSharp.tool.xml;
using iTextSharp.text.pdf;
using System.IO;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GeneratePDF()
    {
        // Create a simple invoice HTML
        string invoiceHtml = @"
            <h1>Invoice #1001</h1>
            <p>Date: " + DateTime.Now.ToString("MM/dd/yyyy") + @"</p>
            <table border='1'>
                <tr><th>Item</th><th>Price</th></tr>
                <tr><td>Product A</td><td>$99.99</td></tr>
                <tr><td>Product B</td><td>$149.99</td></tr>
            </table>
            <p><strong>Total: $249.98</strong></p>";

        // Create PDF document using iTextSharp
        using var stream = new MemoryStream();
        var document = new Document(PageSize.A4);
        PdfWriter writer = PdfWriter.GetInstance(document, stream);
        document.Open();

        using (var srHtml = new StringReader(invoiceHtml))
        {
            XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml);
        }

        document.Close();

        // Return the PDF file
        return new FileContentResult(stream.ToArray(), "application/pdf")
        {
            FileDownloadName = "invoice.pdf"
        };
    }
}
Imports iTextSharp.text
Imports iTextSharp.tool.xml
Imports iTextSharp.text.pdf
Imports System.IO

Public Class HomeController
    Inherits Controller

    Public Function Index() As ActionResult
        Return View()
    End Function

    Public Function GeneratePDF() As ActionResult
        ' Create a simple invoice HTML
        Dim invoiceHtml As String = "
            <h1>Invoice #1001</h1>
            <p>Date: " & DateTime.Now.ToString("MM/dd/yyyy") & "</p>
            <table border='1'>
                <tr><th>Item</th><th>Price</th></tr>
                <tr><td>Product A</td><td>$99.99</td></tr>
                <tr><td>Product B</td><td>$149.99</td></tr>
            </table>
            <p><strong>Total: $249.98</strong></p>"

        ' Create PDF document using iTextSharp
        Using stream As New MemoryStream()
            Dim document As New Document(PageSize.A4)
            Dim writer As PdfWriter = PdfWriter.GetInstance(document, stream)
            document.Open()

            Using srHtml As New StringReader(invoiceHtml)
                XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, srHtml)
            End Using

            document.Close()

            ' Return the PDF file
            Return New FileContentResult(stream.ToArray(), "application/pdf") With {
                .FileDownloadName = "invoice.pdf"
            }
        End Using
    End Function
End Class
$vbLabelText   $csharpLabel

この例では、HTML コンテンツから基本的な PDF ドキュメントを作成します。 そのXMLWorkerHelperクラスはHTML文字列を処理し、オブジェクトモデルを使用してPDFドキュメントに要素を追加します。 Documentはページ構造を管理します。

出力

IronPDF vs iText MVC View to PDF File in C#: 画像 4 - PDF出力

iTextの主要な制限事項は何ですか?

XMLWorkerHelperクラスは基本的なHTMLタグとインラインCSSをサポートしています。 最新の CSS3 プロパティ、フレックスボックス レイアウト、グリッド システムはレンダリングされません。 JavaScriptに依存するコンテンツは完全に削除します。 グラデーション、シャドウ、トランスフォームのような複雑なスタイリングは無視されます。 標準の Bootstrap クラスも適用できず、慎重に設計されたビューが平凡でプロフェッショナルに見えない状態になります。

多くの開発者がこれらの制限をStack Overflowで報告し、iTextでMVCビューをPDFに変換しようとする際にフラストレーションを感じています。

より懸念されるのはiTextのライセンスモデルです。 ライブラリはAGPLライセンスを使用しており、無料版を使用する場合は、アプリケーション全体をオープンソース化する必要があります。 商用ライセンスは年間数千ドルから始まるため、多くの企業にとって法外な値段となります。 このライセンス制限により、多くの開発者は、商業的な開発ニーズにより合致した代替手段を求めるようになりました。 Microsoft for .NETドキュメントで説明されているように、適切なライセンスを持つライブラリを選択することは商用プロジェクトにとって重要です。

IronPDF vs iText MVC View to PDF File in C#: 画像 5 - IronPDF vs iText MVCビューをPDFに

最新のライブラリを使用して MVC ビューを PDF に変換する方法

IronPDF は、ASP.NET Core MVC での PDF 生成に対する最新のアプローチを表します。 Chromiumレンダリングエンジン上に構築され、すべてのスタイル、JavaScriptの実行、レスポンシブデザインの要素を維持したまま、Google Chromeで表示されるとおりにHTMLをPDFに変換します。

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

NuGetパッケージ マネージャー コンソールを使用してIronPDF をプロジェクトに追加します。

Install-Package IronPdf

IronPDF vs iText MVC View to PDF File in C#: 画像 6 - インストール

IronPDFを使ったモダンな実装

上記で作成した同じ請求書は、 IronPDF の ChromePdfRendererを使用して最新の CSS と完全な HTML5 レンダリングを使用しています。

using IronPdf;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GenerateModernPDF()
    {
        // Create a styled invoice HTML with modern CSS
        string invoiceHtml = @"
            <style>
                body { font-family: 'Segoe UI', Arial; padding: 40px; }
                .invoice-header {
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px;
                    border-radius: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin: 20px 0;
                }
                th {
                    background-color: #f3f4f6;
                    padding: 12px;
                    text-align: left;
                }
                td {
                    padding: 12px;
                    border-bottom: 1px solid #e5e7eb;
                }
                .total {
                    font-size: 24px;
                    color: #10b981;
                    text-align: right;
                    margin-top: 20px;
                }
            </style>
            <div class='invoice-header'>
                <h1>Invoice #1001</h1>
                <p>Date: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
            </div>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
                <tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
            </table>
            <div class='total'>Total: $249.98</div>
            <p>Page numbers and additional content can be added to each page.</p>";

        // Use Chromium engine for rendering
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(invoiceHtml);

        // Set content disposition for download
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf");

        // Return the PDF file with binary data
        return new FileContentResult(pdf.BinaryData, "application/pdf");
    }
}
using IronPdf;

public class HomeController : Controller
{
    public ActionResult Index()
    {
        return View();
    }

    public ActionResult GenerateModernPDF()
    {
        // Create a styled invoice HTML with modern CSS
        string invoiceHtml = @"
            <style>
                body { font-family: 'Segoe UI', Arial; padding: 40px; }
                .invoice-header {
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px;
                    border-radius: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin: 20px 0;
                }
                th {
                    background-color: #f3f4f6;
                    padding: 12px;
                    text-align: left;
                }
                td {
                    padding: 12px;
                    border-bottom: 1px solid #e5e7eb;
                }
                .total {
                    font-size: 24px;
                    color: #10b981;
                    text-align: right;
                    margin-top: 20px;
                }
            </style>
            <div class='invoice-header'>
                <h1>Invoice #1001</h1>
                <p>Date: " + DateTime.Now.ToString("MMMM dd, yyyy") + @"</p>
            </div>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
                <tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
            </table>
            <div class='total'>Total: $249.98</div>
            <p>Page numbers and additional content can be added to each page.</p>";

        // Use Chromium engine for rendering
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(invoiceHtml);

        // Set content disposition for download
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf");

        // Return the PDF file with binary data
        return new FileContentResult(pdf.BinaryData, "application/pdf");
    }
}
Imports IronPdf
Imports System.Web.Mvc

Public Class HomeController
    Inherits Controller

    Public Function Index() As ActionResult
        Return View()
    End Function

    Public Function GenerateModernPDF() As ActionResult
        ' Create a styled invoice HTML with modern CSS
        Dim invoiceHtml As String = "
            <style>
                body { font-family: 'Segoe UI', Arial; padding: 40px; }
                .invoice-header {
                    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
                    color: white;
                    padding: 30px;
                    border-radius: 10px;
                }
                table {
                    width: 100%;
                    border-collapse: collapse;
                    margin: 20px 0;
                }
                th {
                    background-color: #f3f4f6;
                    padding: 12px;
                    text-align: left;
                }
                td {
                    padding: 12px;
                    border-bottom: 1px solid #e5e7eb;
                }
                .total {
                    font-size: 24px;
                    color: #10b981;
                    text-align: right;
                    margin-top: 20px;
                }
            </style>
            <div class='invoice-header'>
                <h1>Invoice #1001</h1>
                <p>Date: " & DateTime.Now.ToString("MMMM dd, yyyy") & "</p>
            </div>
            <table>
                <tr><th>Item</th><th>Quantity</th><th>Price</th></tr>
                <tr><td>Premium Package</td><td>1</td><td>$99.99</td></tr>
                <tr><td>Professional Services</td><td>2</td><td>$149.99</td></tr>
            </table>
            <div class='total'>Total: $249.98</div>
            <p>Page numbers and additional content can be added to each page.</p>"

        ' Use Chromium engine for rendering
        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf(invoiceHtml)

        ' Set content disposition for download
        Response.Headers.Append("Content-Disposition", "attachment; filename=modern-invoice.pdf")

        ' Return the PDF file with binary data
        Return New FileContentResult(pdf.BinaryData, "application/pdf")
    End Function
End Class
$vbLabelText   $csharpLabel

ChromePdfRendererはHTMLをChromeで表示される通りに正確に変換します。 グラデーションの背景、モダンなフォント、洗練されたスタイルはすべて正確にレンダリングされます。 レンダラーは、iTextが処理できない複雑なCSSプロパティを扱い、静的フレームとしてレンダリングされたフレックスボックス、グリッドレイアウト、CSS変換を含みます。 RenderHtmlAsPdfメソッドはMVCでのHTMLからPDFへの変換を簡単にします。

出力

IronPDF vs iText MVC View to PDF File in C#: 画像 7 - IronPDF出力

無料トライアルを開始して、Chrome搭載のレンダリングエンジンによる最新のPDF生成を体験してください。

IronPDF vs iText MVC View to PDF File in C#: 画像 8 - クロスプラットフォーム互換性

これら 2 つの PDF ライブラリのどちらを選択すればよいでしょうか?

.NET MVCビューの変換においてiTextとIronPDFを比較する際には、レンダリング品質、開発者体験、ライセンスなど、いくつかの要素がこれらのライブラリをはっきりと区別します。

機能比較

iText対IronPDF機能比較
特徴 iText IronPDF
HTML5サポート 制限あり 満杯
CSS3レンダリング 基本のみ 完了
JavaScriptの実行 なし はい
フレックスボックス/グリッドのサポート なし はい
Bootstrapの互換性 部分的 満杯
Webフォントのサポート 制限あり 完了
SVGグラフィックス なし はい
レスポンシブデザイン なし はい
APIの複雑さ 低レベル 高レベル

ライセンスに関する重要事項

これらのライブラリ間のライセンスの違いは、商業開発に大きな影響を与えます。 iTextのAGPLライセンスは、受け入れることができない多くの企業に対して法的義務を課します。 無料版を使用するには、独自のビジネスロジックを含むアプリケーション全体をオープンソースにする必要があります。 この制約は、iTextを商業プロジェクトには不適当なものにし、非常に高額な商業ライセンスの購入を必要とします。

IronPDFは簡単な商用ライセンスを$999から提供しており、単一の開発者向けです。 ライセンスには1年間のアップデートとサポートが含まれ、アプリケーションをオープンソース化する義務はありません。 この透明性の高い価格モデルは、一般的なソフトウェア開発の予算に合わせ、C#でMVCビューをPDFに変換する際に、あらゆる規模の企業がプロフェッショナルなPDF生成にアクセスできるようにします。

IronPDF vs iText MVC View to PDF File in C#: 画像 9 - ライセンス

出力品質分析

レンダリング品質の違いは、アウトプットを比較するとすぐにわかります。 iTextは、2000年代初期の文書に似た基本的なPDFを生成します。 表には適切なスタイルがなく、フォントはシステム標準がデフォルトで、モダンなデザイン要素は完全に消えています。 出来上がったPDFはプロらしくなく、アプリケーションのブランディングにマッチしません。

IronPDF は、Web デザインに一致するピクセルパーフェクトな PDF を生成します。 グラデーションは正確にレンダリングされ、カスタム フォントは正しく表示され、複雑なレイアウトの構造は維持されます。 Chromium エンジンにより、PDF が Web ビューと同一の外観になり、生成されるすべてのドキュメントでブランド アイデンティティとプロフェッショナルな外観が維持されます。

PDF レンダラーはどのような高度な機能を提供しますか?

IronPDF は、基本的な HTML 変換を超えて、プロフェッショナルな PDF 生成を高速化するエンタープライズ グレードの機能を提供します。 完全な API ドキュメントでは、 MVC ビューを PDF に変換するためのライブラリの広範な機能が示されています。

ヘッダーとフッター

動的コンテンツでプロフェッショナルなヘッダーとフッターを追加します:

var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        HtmlHeader = new HtmlHeaderFooter
        {
            MaxHeight = 25,
            HtmlFragment = "<div style='text-align: center'>Company Name</div>"
        },
        HtmlFooter = new HtmlHeaderFooter
        {
            MaxHeight = 20,
            HtmlFragment = "<center>Page {page} of {total-pages}</center>"
        }
    }
};
var renderer = new ChromePdfRenderer
{
    RenderingOptions = new ChromePdfRenderOptions
    {
        HtmlHeader = new HtmlHeaderFooter
        {
            MaxHeight = 25,
            HtmlFragment = "<div style='text-align: center'>Company Name</div>"
        },
        HtmlFooter = new HtmlHeaderFooter
        {
            MaxHeight = 20,
            HtmlFragment = "<center>Page {page} of {total-pages}</center>"
        }
    }
};
Dim renderer = New ChromePdfRenderer With {
    .RenderingOptions = New ChromePdfRenderOptions With {
        .HtmlHeader = New HtmlHeaderFooter With {
            .MaxHeight = 25,
            .HtmlFragment = "<div style='text-align: center'>Company Name</div>"
        },
        .HtmlFooter = New HtmlHeaderFooter With {
            .MaxHeight = 20,
            .HtmlFragment = "<center>Page {page} of {total-pages}</center>"
        }
    }
}
$vbLabelText   $csharpLabel

この構成により、すべてのページに一貫したブランディングが追加されます。 プレースホルダー{total-pages}は正しい値で自動的に埋められ、文書全体で正確なページネーションを保証します。 詳細な設定オプションについては、ヘッダーとフッターのガイドを参照してください。

セキュリティと暗号化

IronPDF のセキュリティ機能を使用して、パスワードと権限で機密文書を保護します。

var pdf = renderer.RenderHtmlAsPdf(html);

// Add password protection
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";

// Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
var pdf = renderer.RenderHtmlAsPdf(html);

// Add password protection
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";

// Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
Dim pdf = renderer.RenderHtmlAsPdf(html)

' Add password protection
pdf.SecuritySettings.UserPassword = "user123"
pdf.SecuritySettings.OwnerPassword = "owner456"

' Set permissions
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights
pdf.SecuritySettings.AllowUserCopyPasteContent = False
$vbLabelText   $csharpLabel

これらのセキュリティ設定は、不正アクセスを防止し、MVCビューをPDFに変換するときに受信者がどのようにPDFを操作できるかを制御します。 完全な所有者制御を維持しながら、印刷、コピー、編集を制限できます。 詳細については、 PDF セキュリティ ドキュメントをご覧ください。

出力

IronPDF vs iText MVC View to PDF File in C#: 画像 10 - セキュアなPDF出力

フォーム フィールド処理

IronPDF は、追加のツールを必要とせずに HTML フォームをインタラクティブな PDF フォームに変換します。

string formHtml = @"
    <form>
        <label>Name:</label>
        <input type='checkbox'> Accept Terms
        <select name='country'>
            <option>USA</option>
            <option>Canada</option>
        </select>
    </form>";

var pdf = renderer.RenderHtmlAsPdf(formHtml);
string formHtml = @"
    <form>
        <label>Name:</label>
        <input type='checkbox'> Accept Terms
        <select name='country'>
            <option>USA</option>
            <option>Canada</option>
        </select>
    </form>";

var pdf = renderer.RenderHtmlAsPdf(formHtml);
Imports System

Dim formHtml As String = "
    <form>
        <label>Name:</label>
        <input type='checkbox'> Accept Terms
        <select name='country'>
            <option>USA</option>
            <option>Canada</option>
        </select>
    </form>"

Dim pdf = renderer.RenderHtmlAsPdf(formHtml)
$vbLabelText   $csharpLabel

出来上がったPDFは、ユーザーがPDFリーダーでフィールドに直接入力できるように、フォームのインタラクティブ性を維持します。 この機能により、個別のフォーム作成ツールが不要になり、ドキュメントのワークフローが簡素化されます。 フォームドキュメントをさらに探索し、オプションを確認してください。

出力

IronPDF vs iText MVC View to PDF File in C#: 画像 11 - フォーム出力

一般的な PDF 生成の問題をどのように解決しますか?

最新のライブラリを使用しても、特定の課題には最適な PDF 出力を保証するための特別なソリューションが必要です。 次のパターンは、開発者が MVC ビューを PDF に変換するときに遭遇する最も一般的な問題に対処します。

CSSレンダリングの最適化

HTMLファイルをPDF形式に変換する際、複雑なCSSで最良の結果を得るには、印刷メディアクエリを使用してください:

renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
$vbLabelText   $csharpLabel

この設定は、印刷固有の CSS ルールを適用し、画面表示ではなく PDF 出力のレイアウトを最適化します。 これを印刷に最適化されたスタイルシートと組み合わせると、改ページ、余白、書体などを正確に制御できます。 CSS メディア タイプ ガイドでは、追加のレンダリング オプションについて説明します。

JavaScriptの実行タイミング

動的コンテンツを変換する場合は、PDF をキャプチャする前にJavaScript の実行が完了するまでの時間を許可してください。 これにより、すべての AJAX 呼び出しと DOM 操作が確実に完了します。

renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.WaitFor.RenderDelay = 500; // milliseconds
$vbLabelText   $csharpLabel

この構成により、PDF 生成が開始される前に AJAX 呼び出しが完了し、DOM 操作が終了し、MVC ビューの完全にレンダリングされた状態がキャプチャされます。 チャート ライブラリやその他の非同期処理の多いコンテンツの場合は、遅延値を増やす必要がある場合があります。

出力

IronPDF vs iText MVC View to PDF File in C#: 画像 12 - JavaScript実行出力

フォント埋め込みとドキュメント書式</font

base64 でエンコードされたデータ URI を使用してカスタム フォントを HTML に直接埋め込むことで、カスタム フォントが正しくレンダリングされるようにします。

@font-face {
    font-family: 'CustomFont';
    src: url(data:font/woff2;base64,[base64-encoded-font]) format('woff2');
}

HTMLに直接フォントを埋め込むことで、すべての環境で一貫したレンダリングが保証され、生成されるPDFドキュメントでフォントが見つからないという問題がなくなります。 このアプローチは、RenderHtmlAsPdfを介した文字列ベースレンダーでも同様にうまく機能します。

ページ サイズ、向き、余白のコントロールなどの追加の構成パターンについては、 IronPDFレンダリング オプションのドキュメントを参照してください。 一般的な MVC 統合パターンを示すGitHubのサンプル プロジェクトを確認することもできます。

次のステップは何ですか?

iTextは、.NETコミュニティに長年によく提供されてきましたが、現代のウェブ開発はより能力のあるPDF生成を要求しています。 IronPDFのChromeベースのレンダリングエンジンは、今日のASP.NET MVCアプリケーションに求められるピクセルパーフェクトな精度と完全なCSS3サポートを提供します。高水準API、充実したドキュメント、そしてビジネスフレンドリーなライセンス体系により、 ASP.NET Core MVCプロジェクトに最適な選択肢となります。

アプリケーションで PDF 生成をさらに進めるには:

無料トライアル版をダウンロードして、このガイドのコード例を自分のプロジェクトで実行してみてください。

よくある質問

MVCビューをPDFに変換する目的は何ですか?

MVCビューをPDFに変換することで、開発者は元のビューのレイアウトやデザインを保持したまま、印刷可能で簡単に共有できるドキュメントをWebアプリケーションから直接生成することができます。

IronPDFとは?

IronPDFは.NETアプリケーション内でPDFドキュメントの作成、編集、変換を容易にする.NETライブラリで、PDF機能を統合する簡単な方法を提供します。

IronPDFはMVCビューのPDF変換をどのように簡素化しますか?

IronPDFは、開発者がHTMLやMVCビューを直接PDFフォーマットにレンダリングすることで、元のレイアウトやデザインを維持したまま、大規模なコーディングを必要とせず、プロセスを簡素化します。

MVC PDF変換におけるiTextSharpの制限は何ですか?

iTextSharpのXMLWorkerHelperは現代のCSS3、フレックスボックス、グリッドレイアウト、JavaScriptの実行、またはBootstrapスタイリングをサポートしていません。また、AGPLライセンスにより、無料版を使用する場合、アプリケーションをオープンソース化する必要があります。

IronPDFはPDF生成前にJavaScriptをレンダリングできますか?

はい、IronPDFはレンダリング中にJavaScriptの実行をサポートします。EnableJavaScriptを有効にし、WaitFor.RenderDelayを使用してレンダリングの遅延を制御することで、動的コンテンツが完全に読み込まれるようにできます。

IronPDFを使用するためのシステム要件は何ですか?

IronPDFは.NET 6, .NET 7, .NET 8, .NET Core, そして.NET Framework 4.6.2+をサポートしています。Windows、Linux、macOSで動作します。

MVCビューの変換時にPDF出力をカスタマイズすることは可能ですか?

はい、IronPDFを使用すると、開発者はページサイズ、向き、余白、ヘッダー、フッター、セキュリティ設定、CSSメディアタイプなどの設定を調整してPDF出力をカスタマイズできます。

IronPDFはPDF変換のCSSスタイルをサポートしていますか?

IronPDFは、そのChromiumレンダリングエンジンを介して完全なCSS3スタイリングをサポートしており、フォント、色、グラデーション、レイアウトを含む、元のHTMLまたはMVCビューの視覚的外観を変換されたPDFに保持します。

IronPDFの性能はiTextSharpと比較してどうですか?

IronPDFはレンダリングにChromiumエンジンを使用しているため、起動オーバーヘッドが追加されますが、はるかに優れたレンダリング精度を提供します。ハイボリュームの場面では、IronPDFは非同期レンダリングをサポートし、スレッドセーフなレンダラのインスタンスで最適化することができます。

IronPDFのドキュメントはどこにありますか?

IronPDFの完全なドキュメントはhttps://ironpdf.com/how-to/で提供されており、ガイド、チュートリアル、APIリファレンスを含み、開発者の実装支援を行います。

Curtis Chau
テクニカルライター

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

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

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね