フッターコンテンツにスキップ
移行ガイド

C#でPDFView4NETからIronPDFへ移行する方法

PDFView4NETからIronPDFに移行することで、PDFワークフローはUIに特化した閲覧コンポーネントから包括的なPDF生成・操作ライブラリへと変わります。 このガイドは、PDFView4NETが提供できないサーバーサイド処理、Webアプリケーションサポート、完全なPDFライフサイクル管理機能を可能にする、完全でステップバイステップの移行パスを提供します。

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

PDFView4NETを理解する

PDFView4NETは、主にC#でのPDF表示機能に重点を置く開発者に人気のある選択肢です。 PDFView4NETは、Windowsフォーム(WinForms)とWindows Presentation Foundation(WPF)アプリケーション用に調整された堅牢なPDF表示コントロールを提供します。 このライブラリは、シームレスなPDF表示体験を提供することに重点を置いているため、デスクトップアプリケーション開発に最適です。

PDFView4NETはその長所にもかかわらず、制限があるため、開発者は特定のUIコンポーネントに制約されることなく、作成、表示、操作機能を含むオールインワンのPDFソリューションを提供するIronPDFのような、より包括的なライブラリを検討するよう促されるかもしれません。

表示のみの制限

PDFView4NETは、主にWinFormsとWPFアプリケーション用のUI表示コンポーネントです。 PDFを作成したり操作したりすることよりも、PDFを表示することに重点を置いています。 移行する主な理由

1.表示のみの制限:PDFView4NETは PDF の作成用ではなく、表示用に設計されています。

  1. UI フレームワークの依存関係:WinFormsまたはWPFコンテキストが必要です。 WinFormsまたはWPF環境が必要なため、コンソールアプリケーションやWebサービスなど、PDFView4NETがサポートしていない他のコンテキストでの使用が制限される可能性があります。

  2. HTML から PDF への変換不可: HTML または URL を PDF に変換できません。 このライブラリは閲覧に特化しており、PDFファイルを作成したり操作したりする機能は組み込まれていません。

4.操作の制限:IronPDFの完全な機能セットと比較すると、基本的な編集機能です。

5.サーバー側のサポートなし: Web サービスまたはアジュールFunctions では実行できません。

6.レガシー テクノロジー:開発と最新機能の更新があまり活発ではありません。

PDFView4NETとIronPDFの比較

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

IronPDFはその汎用性と包括的な機能セットで他とは一線を画しており、C#でPDFを扱うための総合的なアプローチを必要とする開発者にとって特に魅力的です。 ライブラリはPDFの作成、表示、編集などをサポートし、PDFView4NETの表示機能をはるかに超えるユースケースに対応します。

2025年、2026年まで.NET 10とC# 14の採用を計画しているチームにとって、IronPDFは文脈に依存しないため、Webアプリケーション、サービス、コンソールアプリケーションなどさまざまな文脈で使用できます。 この柔軟性は、クロスプラットフォームのサポートや多様なデプロイシナリオを必要とするプロジェクトにとって非常に重要です。


始める前に

前提条件

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

NuGetパッケージの変更


<PackageReference Include="O2S.Components.PDFView4NET" Version="*" Remove />

<PackageReference Include="IronPdf" Version="2024.*" />

<PackageReference Include="O2S.Components.PDFView4NET" Version="*" Remove />

<PackageReference Include="IronPdf" Version="2024.*" />
XML

CLI経由でも可:

dotnet remove package O2S.Components.PDFView4NET
dotnet add package IronPdf
dotnet remove package O2S.Components.PDFView4NET
dotnet add package IronPdf
SHELL

ライセンス構成

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

完全な API リファレンス

名前空間の変更

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

// After: IronPDF
using IronPdf;
// Before: PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using O2S.Components.PDFView4NET.Printing;

// After: IronPDF
using IronPdf;
$vbLabelText   $csharpLabel

コア API マッピング

PDFView4NET IronPDF ノート
PDFFile.Open(パス) PdfDocument.FromFile(パス) PDFを読み込む
PDFFile.Open(stream)を実行します。 PdfDocument.FromStream(stream)</code>PdfDocument.FromStream(stream) ストリームから読み込む
pdfFile.GetPage(インデックス) pdf.Pages[index]` アクセスページ
pdfFile.PageCount pdf.PageCount ページ数
PDFPrintDocument pdf.Print() 印刷用PDF
pdfFile.Close()を実行します。 pdf.Dispose() クリーンアップ
HtmlToPdfConverter ChromePdfRenderer HTMLからPDFへ
該当なし PdfDocument.Merge()を使用してください。 PDFのマージ
該当なし pdf.ApplyWatermark()</code> 透かしを入れる
該当なし pdf.SecuritySettings パスワード保護

コード移行の例

例1: URLからPDFへの変換

翻訳前 (PDFView4NET):

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

class Program
{
    static void Main()
    {
        HtmlToPdfConverter converter = new HtmlToPdfConverter();
        converter.NavigateUri = new Uri("https://example.com");
        converter.ConvertHtmlToPdf();
        converter.SavePdf("output.pdf");
    }
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdfConverter converter = new HtmlToPdfConverter();
        converter.NavigateUri = new Uri("https://example.com");
        converter.ConvertHtmlToPdf();
        converter.SavePdf("output.pdf");
    }
}
$vbLabelText   $csharpLabel

翻訳後(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");
    }
}
// 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");
    }
}
$vbLabelText   $csharpLabel

PDFView4NETは、NavigateUriプロパティにUriオブジェクトを設定したHtmlToPdfConverterを使用し、次にConvertHtmlToPdf()を呼び出し、次にSavePdf()を呼び出します。 IronPDFは、RenderUrlAsPdf()で文字列URLを直接受け取り、SaveAs()で保存したPdfDocumentを返すChromePdfRendererに単純化します。 IronPDFのアプローチは、よりきれいな構文と最新の.NETアプリケーションとのより良い統合を提供します。 包括的な例については、HTML to PDF documentationを参照してください。

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

翻訳前 (PDFView4NET):

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

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        HtmlToPdfConverter converter = new HtmlToPdfConverter();
        converter.HtmlContent = htmlContent;
        converter.ConvertHtmlToPdf();
        converter.SavePdf("document.pdf");
    }
}
// NuGet: Install-Package O2S.Components.PDFView4NET
using O2S.Components.PDFView4NET;
using O2S.Components.PDFView4NET.HtmlToPdf;
using System;

class Program
{
    static void Main()
    {
        string htmlContent = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        HtmlToPdfConverter converter = new HtmlToPdfConverter();
        converter.HtmlContent = htmlContent;
        converter.ConvertHtmlToPdf();
        converter.SavePdf("document.pdf");
    }
}
$vbLabelText   $csharpLabel

翻訳後(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");
    }
}
// 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");
    }
}
$vbLabelText   $csharpLabel

PDFView4NETは、HtmlContentプロパティを使用してHTML文字列を設定し、ConvertHtmlToPdf()の後にSavePdf()を呼び出す必要があります。 IronPDFはより流暢なAPIを提供し、RenderHtmlAsPdf()はHTML文字列を直接受け取り、PdfDocumentを返します。 メソッド名はより直感的です:RenderHtmlAsPdf vs ConvertHtmlToPdf です。 詳しくは、チュートリアルをご覧ください。

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

翻訳前 (PDFView4NET):

// NuGet: Install-Package O2S.Components.PDFView4NET
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(fs);
            string text = "";
            for (int i = 0; i < document.Pages.Count; i++)
            {
                text += document.Pages[i].ExtractText();
            }
            Console.WriteLine(text);
        }
    }
}
// NuGet: Install-Package O2S.Components.PDFView4NET
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(fs);
            string text = "";
            for (int i = 0; i < document.Pages.Count; i++)
            {
                text += document.Pages[i].ExtractText();
            }
            Console.WriteLine(text);
        }
    }
}
$vbLabelText   $csharpLabel

翻訳後(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);
    }
}
// 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);
    }
}
$vbLabelText   $csharpLabel

この例では、重要なAPIの違いを強調しています。PDFView4NETでは、手動で FileStream を作成し、ストリームで PDFDocument をインスタンス化し、document.Pages.Count をループし、各ページについて Pages[i].ExtractText() を連結する必要があります。

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


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

コンバータ クラスの変更

PDFView4NETはHtmlToPdfConverterを使用しています; IronPDFはChromePdfRendererを使用しています:

// PDFView4NET
HtmlToPdfConverter converter = new HtmlToPdfConverter();

// IronPDF
var renderer = new ChromePdfRenderer();
// PDFView4NET
HtmlToPdfConverter converter = new HtmlToPdfConverter();

// IronPDF
var renderer = new ChromePdfRenderer();
$vbLabelText   $csharpLabel

プロパティベースの API とメソッドベースの API

PDFView4NETは変換前にプロパティを設定します:

// PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent;
converter.NavigateUri = new Uri(url);
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");

// IronPDF: Method parameters with fluent API
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");
// PDFView4NET: Set properties, then convert
converter.HtmlContent = htmlContent;
converter.NavigateUri = new Uri(url);
converter.ConvertHtmlToPdf();
converter.SavePdf("output.pdf");

// IronPDF: Method parameters with fluent API
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("output.pdf");
$vbLabelText   $csharpLabel

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

// PDFView4NET: Requires FileStream
using (FileStream fs = File.OpenRead("document.pdf"))
{
    PDFDocument document = new PDFDocument(fs);
}

// IronPDF: Direct file path
var pdf = PdfDocument.FromFile("document.pdf");
// PDFView4NET: Requires FileStream
using (FileStream fs = File.OpenRead("document.pdf"))
{
    PDFDocument document = new PDFDocument(fs);
}

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

ページのアクセス変更

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

// IronPDF: pdf.PageCount and Pages[i] or ExtractAllText()
string text = pdf.ExtractAllText();
// Or per-page: pdf.ExtractTextFromPage(0);
// PDFView4NET: document.Pages.Count and Pages[i]
for (int i = 0; i < document.Pages.Count; i++)
{
    document.Pages[i].ExtractText();
}

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

保存メソッドの変更

// PDFView4NET: SavePdf()
converter.SavePdf("output.pdf");

// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
// PDFView4NET: SavePdf()
converter.SavePdf("output.pdf");

// IronPDF: SaveAs()
pdf.SaveAs("output.pdf");
$vbLabelText   $csharpLabel

移行後の新機能

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");
var pdf1 = PdfDocument.FromFile("chapter1.pdf");
var pdf2 = PdfDocument.FromFile("chapter2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_book.pdf");
$vbLabelText   $csharpLabel

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.ApplyWatermark(@"
    <div style='
        font-size: 72pt;
        color: rgba(255, 0, 0, 0.2);
        transform: rotate(-45deg);
    '>
        CONFIDENTIAL
    </div>");
pdf.SaveAs("watermarked.pdf");
$vbLabelText   $csharpLabel

パスワード保護

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("document.pdf");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SaveAs("protected.pdf");
$vbLabelText   $csharpLabel

フォーム入力

var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("FirstName").Value = "John";
pdf.Form.GetFieldByName("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");
var pdf = PdfDocument.FromFile("form.pdf");
pdf.Form.GetFieldByName("FirstName").Value = "John";
pdf.Form.GetFieldByName("LastName").Value = "Doe";
pdf.SaveAs("filled_form.pdf");
$vbLabelText   $csharpLabel

サーバーサイド処理

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");
}
// ASP.NET Core
[HttpGet]
public IActionResult GeneratePdf()
{
    var renderer = new ChromePdfRenderer();
    var pdf = renderer.RenderHtmlAsPdf(GetReportHtml());
    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}
$vbLabelText   $csharpLabel

機能比較の概要

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

移行チェックリスト

移行前

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

パッケージの変更

  • O2S.Components.PDFView4NET NuGet パッケージを削除します
  • IronPdf NuGet パッケージをインストールします: dotnet add package IronPdf

コードの変更

  • 名前空間のインポートを更新します ( using O2S.Components.PDFView4NET;using IronPdf; ) -HtmlToPdfConverter`ChromePdfRendererに置き換える
  • converter.HtmlContent + ConvertHtmlToPdf()renderer.RenderHtmlAsPdf(html)に置き換えます。
  • converter.NavigateUri + ConvertHtmlToPdf()renderer.RenderUrlAsPdf(url)に置き換えます
  • converter.SavePdf()pdf.SaveAs()に置き換えます
  • PDFDocument(stream)PdfDocument.FromFile(path)に置き換えます
  • 手動ページループ抽出をpdf.ExtractAllText()に置き換えます
  • アプリケーションの起動時にライセンスの初期化を追加

移行後

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

カーティス・チャウ
テクニカルライター

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

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