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

ASP.NET MVCビューをPDFに変換する方法:IronPDF対iTextSharp

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 ファイルに変換するにはどうすればよいでしょうか。 このガイドでは、従来の iTextSharp ライブラリと、最新の Chromium ベースのソリューションであるIronPDFを比較し、PDF 生成ワークフローに適したツールを選択できるようにします。

 IronPDF vs iTextSharp MVC View to PDF File in C#: 画像 1 - IronPDF

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

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

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

 IronPDF vs iTextSharp MVC View to PDF File in C#: Image 2 - 特徴s

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

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

iTextSharpのインストール

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

Install-Package iTextSharp
Install-Package iTextSharp
SHELL

 IronPDF vs iTextSharp C# での MVC ビューから PDF ファイルへの変換: 画像 3 - iTextSharp のインストール

iTextSharpによる基本的な実装

以下は、 ASP.NET MVC プロジェクトで iTextSharp の 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 ドキュメントに要素を追加します。 PdfWriter は実際の PDF 生成プロセスを処理し、Document はページ構造を管理します。

出力

 IronPDF vs iTextSharp MVC View to PDF File in C#: Image 4 - PDF Output

iTextSharp の主な制限は何ですか?

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

多くの開発者がスタックオーバーフローでこれらの制限を報告しており、iTextSharpでMVCビューをPDFに変換しようとするときにフラストレーションにつながっています。

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

 IronPDF vs iTextSharp MVC View to PDF File (C#): 画像 5 - IronPDF vs iTextSharp MVC View to PDF

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

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

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

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

Install-Package IronPdf
Install-Package IronPdf
SHELL

 IronPDF vs iTextSharp MVC View to PDF File in C#: Image 6 - Installation

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 が表示するのとまったく同じように変換します。 グラデーションの背景、モダンなフォント、洗練されたスタイルはすべて正確にレンダリングされます。 レンダラーは、フレックスボックス、グリッド レイアウト、静的フレームとしてレンダリングされる CSS 変換など、iTextSharp が処理できない複雑な CSS プロパティを処理します。 RenderHtmlAsPdf メソッドを使用すると、MVC で HTML を PDF に変換するのが簡単になります。

出力

 IronPDF vs iTextSharp MVC View to PDF File in C#: Image 7 - IronPDF Output

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

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

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

.NET MVC ビュー変換に関して iTextSharp とIronPDFを比較すると、レンダリング品質、開発者エクスペリエンス、ライセンスの面で、これらのライブラリにはいくつかの明確な違いがあります。

機能比較

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

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

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

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

 IronPDF vs iTextSharp MVC View to PDF File in C#: Image 9 - Licensing

出力品質分析

レンダリング品質の違いは、アウトプットを比較するとすぐにわかります。 iTextSharpは、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

この構成により、すべてのページに一貫したブランディングが追加されます。 プレースホルダー {page}{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 iTextSharp C# での MVC ビューから PDF ファイルへの変換: 画像 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 iTextSharp C# での MVC ビューから PDF ファイルへの変換: 画像 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 iTextSharp MVC View to PDF File in C#: Image 12 - JavaScript実行出力

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

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

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

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

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

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

iTextSharp は長年にわたって.NETコミュニティに貢献してきましたが、現代の Web 開発ではより高性能な 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は、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

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

アイアンサポートチーム

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