IRONSOFTWAREHOME
ビデオ

ASP.NET Core MVC で IronPDF を使用して CSHTML を PDF に変換する

Curtis Chau
Curtis Chau
Updated: 2026年7月19日

PDFView4NET からIronPDFへの移行により、PDF ワークフローが WinForms/WPF ビューコンポーネントから、ヘッドレスな PDF 生成および操作ライブラリに移行します。 このガイドは、PDFView4NET のビュー/レンダー/印刷スコープを超えて、サーバーサイド処理、Web アプリケーションサポート、広範な PDF ライフサイクル管理を可能にするステップバイステップの移行パスを提供します。

なぜPDFView4NETからIronPDFへ移行するのか

PDFView4NETを理解する

PDFView4NET (O2 Solutions, o2sol.com) は、WinForms およびWPFアプリケーション用のビューア / レンダー / 印刷ツールキットです。 それは2つのNuGetパッケージ—O2S.Components.PDFView4NET.WPFとして提供され、自身のPDFレンダリングエンジンを含んでいます。O2 Solutionsは別のライブラリPDF4NETを販売しており、プログラムによる作成/操作が可能です。 このガイドはPDFView4NETのみを扱います。

PDF 生成、HTML to PDF レンダリング、またはサーバーサイドワークフローが必要なチームは、PDFView4NET を別のライブラリと組み合わせるか、あるいは作成と操作のみならず、ヘッドレスデプロイメントシナリオもカバーするツールキットであるIronPDFへの全面的な移行を行うことがしばしばあります。

ビュー/レンダー/印刷スコープ

PDFView4NET は PDF の表示、レンダリング、印刷、加えて注釈の追加とフォーム入力用に作られています。 移行理由 (一般的な理由):

  1. **ビュー/レンダー/印刷重視:**PDFView4NETは既存の PDF を表示、印刷、またはイメージレンダリングのためにロードします。 HTMLまたはURLからPDFを生成しません。

  2. **UI フレームワーク依存:**WinFormsおよびWPFエディションで配布されています; 両者は Windows デスクトップをターゲットとしており、コンソールワーカーやサーバーサイドホストでの使用を制限します。

  3. HTMLからPDFへの変換はありません: O2S.Components.PDFView4NETにはHTMLレンダリングAPIがありません。

  4. ** 制限された操作:** 操作はコンテンツの著作よりも注釈やフォームフィールドを中心にしています。

  5. ** Linux /Docker/ サーバーパスがない:** このツールキットは WinForms/WPF を介して Windows のみ可能であり、Linux やコンテナ環境での ASP.NET ホストには設計されていません。

  6. アクティブだが限定的: O2 Solutions はリリースを出荷し続けています; 製品は保守されていますが、そのスコープは意図的に狭いです。

PDFView4NETとIronPDFの比較

フィーチャーPDFView4NETIronPDF
主な焦点PDF閲覧完全なPDFソリューション(作成、表示、編集)
UIフレームワークが必要です。WinForms、WPFNone
PDFの作成なしはい
PDF操作限定(注釈)はい
サーバーサイドサポート対象外フルサポート
ウェブアプリケーションなしはい
コンソールアプリ制限的フルサポート
Azure/Docker(アジュール/Docker)なしはい
HTMLからPDFへなしはい
クロスプラットフォームのコンテキストなしはい
統合のしやすさ中規模高い

IronPDF は、PDFView4NET のビュー/レンダー/印刷スコープを超えて、閲覧に隣接するワークフローの上に PDF の作成、操作、レンダリングをカバーし、利用ケースに対応します。

IronPDF はコンテキストに依存しないので、Windows、Linux、macOS、Docker、Azure での Web アプリケーション、サービス、およびコンソールアプリケーションで動作し、クロスプラットフォームサポートやサーバーサイドホスティングが必要なプロジェクトにとって重要です。


始める前に

前提条件

  1. .NET環境: .NET Framework 4.6.2+ または.NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGetアクセス: NuGetパッケージをインストールする機能
  3. IronPDFライセンス: IronPDFからライセンスキーを取得します。

NuGetパッケージの変更

<!-- RemovePDFView4NET(the actual NuGet IDs are split by UI framework) -->
<PackageReference Include="O2S.Components.PDFView4NET.Win" Version="*" Remove />
<!-- or for WPF: O2S.Components.PDFView4NET.WPF -->

<!-- AddIronPDF-->
<PackageReference Include="IronPdf" Version="*" />
XML

CLI経由でも可:

dotnet remove package O2S.Components.PDFView4NET.Win
# (use O2S.Components.PDFView4NET.WPF for theWPFedition)
dotnet add package IronPdf
SHELL

ライセンス構成

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

完全な API リファレンス

名前空間の変更

// Before: PDFView4NET
using O2S.Components.PDFView4NET;

// After: IronPDF
using IronPdf;

コア API マッピング

PDFView4NETIronPDF
new PDFDocument(); doc.Load(path)PdfDocument.FromFile(path)
new PDFDocument(); doc.Load(stream)PdfDocument.FromStream(stream)
document.Pages[index]pdf.Pages[index]
document.PageCountpdf.PageCount
document.Print(...)pdf.Print()
document.Close()pdf.Dispose()
PDFView4NETには N/AChromePdfRenderer (HTML to PDF)
PDFView4NETには N/APdfDocument.Merge()
PDFView4NETには N/Apdf.ApplyWatermark()
document.SecurityManagerpdf.SecuritySettings

コード移行の例

例1: URLからPDFへの変換

翻訳前 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET.Win
using O2S.Components.PDFView4NET;
using System;

class Program
{
    static void Main()
    {
        //PDFView4NETcannot fetch a URL and emit a PDF; it can only consume one.
        PDFDocument document = new PDFDocument();
        document.Load("input.pdf");
        Console.WriteLine($"Loaded {document.PageCount} page(s) for view/print.");
        document.Close();
    }
}
C#

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
    }
}

PDFView4NETにはHTML/URLレンダリングサーフェスがありません — O2S.Components.PDFView4NETにないため、URLは最初に別のツールでPDFにレンダリングされてから表示/印刷のために読み込む必要があります。 IronPDFはSaveAs()で保存します。 包括的な例については、HTML to PDF documentationを参照してください。

例2: HTML文字列からPDFへの変換

翻訳前 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET.Win
using O2S.Components.PDFView4NET;
using System;

class Program
{
    static void Main()
    {
        // The HTML string cannot be rendered by PDFView4NET. Assume an upstream
        // tool produced "document.pdf";PDFView4NETcan then display or print it.
        PDFDocument document = new PDFDocument();
        document.Load("document.pdf");
        Console.WriteLine($"Document ready for viewing — {document.PageCount} page(s).");
        document.Close();
    }
}
C#

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("document.pdf");
    }
}

O2S.Components.PDFView4NETには存在しないため、HTML文字列は別の場所でPDFとして作成され、その後ビューアに読み込まれる必要があります。 IronPDFはPdfDocumentを返します。 詳しくは、チュートリアルをご覧ください。

例3: PDFからのテキスト抽出

翻訳前 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET.Win
using O2S.Components.PDFView4NET;
using System;
using System.IO;

class Program
{
    static void Main()
    {
        using (FileStream fs = File.OpenRead("document.pdf"))
        {
            PDFDocument document = new PDFDocument();
            document.Load(fs);
            string text = "";
            for (int i = 0; i < document.PageCount; i++)
            {
                text += document.Pages[i].ExtractText();
            }
            Console.WriteLine(text);
            document.Close();
        }
    }
}

翻訳後(IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        string text = pdf.ExtractAllText();
        Console.WriteLine(text);
    }
}

この例では、重要なAPIの違いを強調しています。 PDFView4NETはPages[i].ExtractText()を連結することを要求します。

IronPDFはこれを劇的に簡素化します: ExtractAllText()は単一のメソッド呼び出しですべてのページからのテキストを抽出します。 手動のストリーム管理も、ループも、文字列の連結もありません。


重要な移行に関する注意事項

HTML レンダリングサーフェス

PDFView4NET には HTML-to-PDF API がありません。 IronPDFはHTML/URL入力のためにChromePdfRendererを導入します:

// IronPDF
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
// or: renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");

ドキュメントの読み込みの変更

// PDFView4NET: instantiate then Load(path) or Load(stream)
PDFDocument document = new PDFDocument();
document.Load("document.pdf");

// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");

ページのアクセス変更

// PDFView4NET: document.PageCount and document.Pages[i]
for (int i = 0; i < document.PageCount; i++)
{
    document.Pages[i].ExtractText();
}

// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);

保存メソッドの変更

//PDFView4NEThas no save-from-HTML path; saving applies after edits on a loaded document.
// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
C#

移行後の新機能

IronPDFに移行すると、PDFView4NETでは提供できない機能が得られます:

PDFマージ

var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");

HTMLによるウォーターマーク

var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark(@"
    <div style='
        font-size: 72pt;
        color: rgba(255, 0, 0, 0.2);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>");
pdf.SaveAs("watermarked.pdf");

パスワード保護

var pdf = PdfDocument.FromFile("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");

フォーム入力

var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.FindFormField("FirstName").Value = "John";
pdf.Form.FindFormField("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");

サーバーサイド処理

PDFView4NETはサーバー環境では動作しません。 IronPDFはこの点で優れています:

// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}

機能比較の概要

フィーチャーPDFView4NETIronPDF
PDFを見るはい(UI)いいえ(ビューアを使用)
PDFを読み込むはいはい
PDF保存制限的はい
HTMLからPDFへなしはい
URLからPDFへなしはい
PDFのマージなしはい
PDFの分割制限的はい
透かしなしはい
ヘッダー/フッターなしはい
パスワード保護なしはい
デジタル署名なしはい
テキスト抽出制限的はい
フォームの入力制限的はい
WinFormsはいはい
WPFはいはい
コンソール制限的はい
ASP.NETなしはい
アジュールなしはい
Dockerなしはい

移行チェックリスト

移行前

  • 表示要件を特定する(IronPDF の機能が UI ベースの PDF 表示を置き換えることができるかどうかを判断する)
  • ドキュメント印刷ワークフロー
  • PDF操作のニーズをリストする
  • 必要に応じてビューアの置き換えを計画する(IronPDF は生成/操作に重点を置いています)
  • IronPDFからIronPDFライセンスキーを取得します

パッケージの変更

  • O2S.Components.PDFView4NET.Win (または.WPF) NuGetパッケージを削除する
  • IronPdf NuGetパッケージをインストールする: dotnet add package IronPdf

コードの変更

  • 名前空間インポートを更新する (using O2S.Components.PDFView4NET;using IronPdf;)
  • HTMLまたはURL入力のためにChromePdfRendererを導入する (PDFView4NETの同等物はありません)
  • new PDFDocument(); document.Load(path) with PdfDocument.FromFile(path)
  • new PDFDocument(); document.Load(stream) with PdfDocument.FromStream(stream)
  • 手動 for (int i = 0; i < document.PageCount; i++) (or pdf.ExtractTextFromPage(i))
  • pdf.Dispose() (またはusingブロック) に置き換える
  • アプリケーションの起動時にライセンスの初期化を追加

移行後

  • PDFの読み込みと保存をテストする
  • テキスト抽出機能の検証
  • HTMLからPDFへの変換テスト
  • サーバーの展開が機能していることを確認する(新機能)
  • 必要に応じてクロスプラットフォームをテストする(新機能)
  • サーバーのみの場合はUI固有のPDFコードを削除します

ご注意: PDFView4NET はその所有者の登録商標です。 このサイトは O2 Solutions と提携しておらず、承認されておらず、スポンサー也されていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
Curtis Chau
テクニカルライター

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

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。