C#でPdfPigからIronPDFに移行する方法
PdfPigからIronPdfへの移行:完全なC#移行ガイド
PdfPigからIronPdfに移行することで、PDFの機能が閲覧のみのライブラリから、作成、操作、テキスト抽出、セキュリティ機能を扱う包括的なPDFソリューションに拡張されます。 このガイドでは、既存の抽出ワークフローを維持しながら、PdfPig では提供できない PDF 生成、HTML 変換、文書操作、セキュリティ機能を追加する完全な移行パスをステップごとに説明します。
なぜPdfPigからIronPDFに移行するのか
PdfPigについて
PdfPigは、C#用に特別に設計されたオープンソースのPDF読み取り・抽出ライブラリです。 評判の高いApache PDFBoxプロジェクトの一部門として、このライブラリは、開発者が驚くべき精度でPDFのコンテンツにアクセスすることを可能にします。PdfPigは抽出機能では優れていますが、市販されているより包括的なライブラリと比較すると、その範囲は大きく制限されています。
PdfPig は、PDF ファイルからテキスト、画像、フォームデータ、メタデータを抽出するための信頼性の高いツールを開発者に提供します。 そのため、主に文書分析やデータマイニングに重点を置いたアプリケーションに適しています。 しかし、PdfPigの機能は基本的に既存のドキュメントの解析に限られています。
読解のみの制限
PdfPigはPDFの読み取りに特化しています。 PdfPigは、お客様のアプリケーションが抽出を超えて成長する必要がある場合、お手伝いすることができません:
1.PDF生成はできません:HTML、URL、またはプログラムからPDFを作成することはできません。
2.HTMLからPDFへの変換はできません:PdfPigはPDF読み取り/解析ライブラリであり、PDF生成ライブラリではありません。 HTMLからPDFへの変換には、別のライブラリを使用する必要があります。
3.ドキュメントを操作しないこと:PDFのマージ、分割、修正はできません。
4.セキュリティ機能はありません:パスワード、暗号化、デジタル署名を追加できません。
5.ウォーターマーク/スタンプは不可:既存の文書に視覚的なオーバーレイを追加することはできません。
6.フォーム入力はできません:プログラムで PDF フォームを埋めることはできません。
PdfPigとIronPdfの比較
| フィーチャー | PdfPig | IronPDF |
|---|---|---|
| ライセンス | オープンソース(Apache 2.0) | 商用 |
| PDFの読み取り/抽出。 | 優秀 | 優秀 |
| PDFジェネレーション。 | 制限的 | 包括的 |
| HTMLからPDFへ | サポート対象外 | サポート対象 |
| テキスト抽出。 | 優秀 | 優秀 |
| PDF操作 | サポートされていません | マージ、分割、回転 |
| ウォーターマーク。 | サポートされていません | フルサポート |
| セキュリティ/暗号化 | サポートされていません | フルサポート |
| サポートとドキュメンテーション | コミュニティサポート | 専用サポート |
| ページ索引。 | 1ベース | 0ベース |
IronPDFはPDFの作成、閲覧、編集、署名のための機能一式をサポートしています。 この汎用性により、開発者は最初から最後までPDFファイルを管理することができます。 2025年と2026年まで.NET 10とC# 14の採用を計画しているチームにとって、IronPDFはPdfPigの読み取り機能を超えた完全なPDFライフサイクル・ソリューションを提供します。
始める前に
前提条件
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パッケージの変更
# Remove PdfPig
dotnet remove package PdfPig
# Install IronPDF
dotnet add package IronPdf# Remove PdfPig
dotnet remove package PdfPig
# Install IronPDF
dotnet add package IronPdfライセンス構成
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";IRON VB CONVERTER ERROR developers@ironsoftware.comPdfPigの使用法を特定する
# FindPdfPigusage
grep -r "UglyToad\.PdfPig\|PdfDocument\.Open\|GetPages\(\)" --include="*.cs" .
# Find page index references (may need 1→0 conversion)
grep -r "GetPage(\|NumberOfPages" --include="*.cs" .# FindPdfPigusage
grep -r "UglyToad\.PdfPig\|PdfDocument\.Open\|GetPages\(\)" --include="*.cs" .
# Find page index references (may need 1→0 conversion)
grep -r "GetPage(\|NumberOfPages" --include="*.cs" .完全な API リファレンス
名前空間の変更
// Before: PdfPig
using UglyToad.PdfPig;
using UglyToad.PdfPig.Content;
using UglyToad.PdfPig.DocumentLayoutAnalysis.WordExtractor;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;// Before: PdfPig
using UglyToad.PdfPig;
using UglyToad.PdfPig.Content;
using UglyToad.PdfPig.DocumentLayoutAnalysis.WordExtractor;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;IRON VB CONVERTER ERROR developers@ironsoftware.comドキュメント読み込みマッピング
| PdfPig | IronPDF | ノート |
|---|---|---|
PdfDocument.Open(パス)。 | PdfDocument.FromFile(パス)。 | ファイルから読み込む |
PdfDocument.Open(bytes). | <コード>PdfDocument.FromBinaryData(bytes)</コード><コード>PdfDocument.FromBinaryData(bytes) | バイトから読み込む |
PdfDocument.Open(stream)を実行します。 | <コード>PdfDocument.FromStream(stream)</コード><コード>PdfDocument.FromStream(stream) | ストリームから読み込む |
using (var doc = ...). | var pdf = ...。 | IronPDFを使用する必要はありません。 |
ページ アクセスとプロパティのマッピング
| PdfPig | IronPDF | ノート |
|---|---|---|
| <コード>ドキュメント.ページ数</コード | <コード>pdf.PageCount</コード | 総ページ数 |
document.GetPages()。 | <コード>pdf.Pages</コード | ページコレクション |
| <コード>document.GetPage(1)</コード | <コード>pdf.Pages[0]</コード | 単一ページ(注:1ベースと0ベース) |
テキスト抽出マッピング
| PdfPig | IronPDF | ノート |
|---|---|---|
| <コード>ページ.テキスト</コード | pdf.Pages[i].Text。 | ページテキスト |
| <コード>page.GetWords()</コード | pdf.ExtractTextFromPage(i)のようにします。 | ページの単語/テキスト |
| (manual loop) | pdf.ExtractAllText()を使用してください。 | すべてのテキストを一度に |
メタデータアクセスマッピング
| PdfPig | IronPDF | ノート |
|---|---|---|
ドキュメント.情報.タイトル | <コード>pdf.MetaData.Title</コード | 文書タイトル |
| <コード>ドキュメント.情報.作成者</コード | <コード>pdf.MetaData.Author</コード | 著者 |
ドキュメント.情報.件名 | <コード>pdf.MetaData.Subject</コード | 対象 |
ドキュメント.インフォメーション.クリエーター | <コード>pdf.MetaData.Creator</コード | クリエイター |
| <コード>ドキュメント.情報.プロデューサー</コード | <コード>pdf.MetaData.Producer</コード | プロデューサー |
PdfPigでは利用できない新機能
| IronPDFの特徴 | 翻訳内容 |
|---|---|
renderer.RenderHtmlAsPdf(html). | HTMLからPDFへの変換 |
renderer.RenderUrlAsPdf(url)のようにします。 | URLからPDFへの変換 |
PdfDocument.Merge(pdfs). | 複数のPDFをマージ |
pdf.ApplyWatermark(html). | 透かしの追加 |
pdf.SecuritySettings.UserPassword。 | パスワード保護 |
| <コード>pdf.Sign(証明書)</コード | デジタル署名 |
コード移行の例
例1: PDFからのテキスト抽出
翻訳前 (PdfPig):
// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
using System.Text;
class Program
{
static void Main()
{
using (var document = PdfDocument.Open("input.pdf"))
{
var text = new StringBuilder();
foreach (var page in document.GetPages())
{
text.AppendLine(page.Text);
}
Console.WriteLine(text.ToString());
}
}
}// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
using System.Text;
class Program
{
static void Main()
{
using (var document = PdfDocument.Open("input.pdf"))
{
var text = new StringBuilder();
foreach (var page in document.GetPages())
{
text.AppendLine(page.Text);
}
Console.WriteLine(text.ToString());
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.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("input.pdf");
string text = pdf.ExtractAllText();
Console.WriteLine(text);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comPdfPigとIronPdfはどちらも優れたテキスト抽出機能を提供します。 主な違いはコードパターンです。 PdfPigは、PdfDocument.Open()によるusingステートメント、GetPages()による手動でのページの繰り返し、各page.Textプロパティからテキストを蓄積するためのStringBuilderを必要とします。
IronPdfはこれを一つの呼び出しに単純化します:PdfDocument.FromFile()はドキュメントをロードし、ExtractAllText()はすべてのテキストコンテンツを一度に返します。 usingステートメントは不要で、手作業による反復も、StringBuilderも必要ありません。 その他のオプションについては、テキスト抽出ドキュメントを参照してください。
例2: HTMLからPDFへの変換
翻訳前 (PdfPig):
//PdfPigdoes not supportHTMLからPDFへconversion
//PdfPigis a PDF reading/parsing library, not a PDF generation library
// You would need to use a different library forHTMLからPDFへconversion//PdfPigdoes not supportHTMLからPDFへconversion
//PdfPigis a PDF reading/parsing library, not a PDF generation library
// You would need to use a different library forHTMLからPDFへconversionIRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML</p>");
pdf.SaveAs("output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML</p>");
pdf.SaveAs("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comこの例は、最も重大な能力ギャップを浮き彫りにしています。PdfPigは、"HTMLからPDFへの変換をサポートしない"、"PDF読み取り/解析ライブラリであり、PDF生成ライブラリではない "と明言しています。PdfPigを使ってHTMLからPDFを作成する必要がある場合は、まったく別のライブラリを使う必要があります。
IronPDFはChromePdfRendererを通してネイティブのHTMLからPDFへの変換を提供します。 RenderHtmlAsPdf()メソッドは、HTML文字列を受け取り、HTML、CSS、JavaScriptの正確なレンダリングのために内部的にChromiumエンジンを使用してPDFドキュメントに変換します。 出来上がったPdfDocumentは、SaveAs()で保存したり、保存する前にさらに操作することができます。 包括的な例については、HTML to PDF documentationを参照してください。
例 3:PDFメタデータを読む
翻訳前 (PdfPig):
// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
class Program
{
static void Main()
{
using (var document = PdfDocument.Open("input.pdf"))
{
var info = document.Information;
Console.WriteLine($"Title: {info.Title}");
Console.WriteLine($"Author: {info.Author}");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Creator: {info.Creator}");
Console.WriteLine($"Producer: {info.Producer}");
Console.WriteLine($"Number of Pages: {document.NumberOfPages}");
}
}
}// NuGet: Install-Package PdfPig
using UglyToad.PdfPig;
using System;
class Program
{
static void Main()
{
using (var document = PdfDocument.Open("input.pdf"))
{
var info = document.Information;
Console.WriteLine($"Title: {info.Title}");
Console.WriteLine($"Author: {info.Author}");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Creator: {info.Creator}");
Console.WriteLine($"Producer: {info.Producer}");
Console.WriteLine($"Number of Pages: {document.NumberOfPages}");
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
var info = pdf.MetaData;
Console.WriteLine($"Title: {info.Title}");
Console.WriteLine($"Author: {info.Author}");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Creator: {info.Creator}");
Console.WriteLine($"Producer: {info.Producer}");
Console.WriteLine($"Number of Pages: {pdf.PageCount}");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("input.pdf");
var info = pdf.MetaData;
Console.WriteLine($"Title: {info.Title}");
Console.WriteLine($"Author: {info.Author}");
Console.WriteLine($"Subject: {info.Subject}");
Console.WriteLine($"Creator: {info.Creator}");
Console.WriteLine($"Producer: {info.Producer}");
Console.WriteLine($"Number of Pages: {pdf.PageCount}");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comどちらのライブラリも、ほぼ同じパターンでメタデータ・アクセスを提供します。 PdfPigはdocument.Informationを通してメタデータにアクセスし、document.NumberOfPagesを通してページ数にアクセスします。 IronPDFはメタデータにpdf.MetaDataを、ページ数にpdf.PageCountを使用します。
PdfDocument.Open()をPdfDocument.FromFile()に、document.Informationをpdf.MetaDataに、document.NumberOfPagesをpdf.PageCountに置き換えるだけです。 using文のラッパーはIronPDFでは必要ないので削除してください。
重要な移行に関する注意事項
ページのインデックス変更
PdfPigは1ベースのインデックスを使用しています; IronPDFは0ベースです:
// PdfPig:1ベースindexing
var firstPage = document.GetPage(1); // First page
// IronPDF:0ベースindexing
var firstPage = pdf.Pages[0]; // First page
// Migration helper
int pdfPigIndex = 1;
int ironPdfIndex = pdfPigIndex - 1;// PdfPig:1ベースindexing
var firstPage = document.GetPage(1); // First page
// IronPDF:0ベースindexing
var firstPage = pdf.Pages[0]; // First page
// Migration helper
int pdfPigIndex = 1;
int ironPdfIndex = pdfPigIndex - 1;IRON VB CONVERTER ERROR developers@ironsoftware.com使用説明文は必須ではありません。
// PdfPig: Requires using for disposal
using (var document = PdfDocument.Open("input.pdf"))
{
// ...
}
// IronPDF: No using required (but can use for cleanup)
var pdf = PdfDocument.FromFile("input.pdf");
// ...
// pdf.Dispose(); // Optional// PdfPig: Requires using for disposal
using (var document = PdfDocument.Open("input.pdf"))
{
// ...
}
// IronPDF: No using required (but can use for cleanup)
var pdf = PdfDocument.FromFile("input.pdf");
// ...
// pdf.Dispose(); // OptionalIRON VB CONVERTER ERROR developers@ironsoftware.comドキュメントの読み込みの変更
// PdfPig: PdfDocument.Open()
using (var document = PdfDocument.Open("input.pdf"))
// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("input.pdf");// PdfPig: PdfDocument.Open()
using (var document = PdfDocument.Open("input.pdf"))
// IronPDF: PdfDocument.FromFile()
var pdf = PdfDocument.FromFile("input.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comメタデータ プロパティ名の変更
// PdfPig: document.Information
var info = document.Information;
// IronPDF: pdf.MetaData
var info = pdf.MetaData;// PdfPig: document.Information
var info = document.Information;
// IronPDF: pdf.MetaData
var info = pdf.MetaData;IRON VB CONVERTER ERROR developers@ironsoftware.comページ数プロパティの変更
// PdfPig: document.NumberOfPages
Console.WriteLine($"Pages: {document.NumberOfPages}");
// IronPDF: pdf.PageCount
Console.WriteLine($"Pages: {pdf.PageCount}");// PdfPig: document.NumberOfPages
Console.WriteLine($"Pages: {document.NumberOfPages}");
// IronPDF: pdf.PageCount
Console.WriteLine($"Pages: {pdf.PageCount}");IRON VB CONVERTER ERROR developers@ironsoftware.com移行後の新機能
IronPDFに移行すると、PdfPigでは提供できない機能が得られます:
PDFマージ
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comウォーターマーク
pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");pdf.ApplyWatermark("<h2 style='color:red;'>CONFIDENTIAL</h2>");IRON VB CONVERTER ERROR developers@ironsoftware.comパスワード保護
pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";pdf.SecuritySettings.UserPassword = "userpassword";
pdf.SecuritySettings.OwnerPassword = "ownerpassword";IRON VB CONVERTER ERROR developers@ironsoftware.comデジタル署名
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningContact = "support@company.com",
SigningReason = "Document Approval"
};
pdf.Sign(signature);var signature = new PdfSignature("certificate.pfx", "password")
{
SigningContact = "support@company.com",
SigningReason = "Document Approval"
};
pdf.Sign(signature);IRON VB CONVERTER ERROR developers@ironsoftware.com機能比較の概要
| フィーチャー | PdfPig | IronPDF |
|---|---|---|
| テキスト抽出 | ✓ | ✓ |
| メタデータアクセス | ✓ | ✓ |
| 画像抽出 | ✓ | ✓ |
| PDF作成 | 制限的 | ✓ |
| HTMLからPDFへ | ✗ | ✓ |
| URLからPDFへ | ✗ | ✓ |
| PDFのマージ | ✗ | ✓ |
| PDFの分割 | ✗ | ✓ |
| 透かし | ✗ | ✓ |
| フォーム入力 | ✗ | ✓ |
| パスワード保護 | ✗ | ✓ |
| デジタル署名 | ✗ | ✓ |
| ワードポジションデータ | ✓ | ✗ |
移行チェックリスト
移行前
- [ ] コードベース内のすべてのPdfPigの使用状況の確認
- [単語レベルのポジションデータが必要かどうかを確認してください(ハイブリッドアプローチを検討してください)。
- [すべてのページ索引参照に注意してください(1-baseを0-baseに変換する必要があります)。
- [ ] IronPDFライセンスキーの保存を計画する(環境変数を推奨)
- [ ] まずはIronPDFトライアルライセンスでテストしてください。
パッケージの変更
- [ ]
PdfPigNuGet パッケージを削除します:dotnet remove package PdfPigを削除してください。 - [ ]
IronPdfNuGetパッケージをインストールします:dotnet add package IronPdfNuGetパッケージをインストールします。
コードの変更
- [ ] 名前空間のインポートを更新する (
using UglyToad.PdfPig;→using IronPdf;) - [ ]
PdfDocument.Open()をPdfDocument.FromFile()に置き換えてください。 - [ ]
document.Informationをpdf.MetaDataに置き換えてください。 - [ ]
document.NumberOfPagesをpdf.PageCountに置き換えてください。 - [ページインデックスを1ベースから0ベースに変換してください。
- [
usingステートメントを削除する。 - [ ] アプリケーション起動時にIronPdfライセンスキーを追加する
移行後
- [テストテキスト抽出出力が期待に一致
- [すべてのPDF生成シナリオのテスト
- [必要に応じて、新しい機能(マージ、透かし、セキュリティ)を追加してください。
- [Linux にデプロイする場合は、Linux の依存関係をインストールしてください。
結論
PdfPigからIronPdfに移行することで、PDFの機能が閲覧専用から完全なPDFライフサイクル・ソリューションに拡張されます。 PdfPigがその読み取りと抽出の領域で強力であるのに対して、IronPdfは汎用性と包括的なPDF管理で優位に立っています。
この移行における主な変更点は以下のとおりです: 1.ドキュメントの読み込み:PdfDocument.Open() → PdfDocument.FromFile() 2.メタデータ・アクセス:document.Information → pdf.MetaData です。 3.ページ数:document.NumberOfPages →<コード>pdf.PageCount</コードです。 4.ページインデックス: 1ベース → 0ベース 5.廃棄パターン:必須 using → 任意 6.新機能:HTMLからPDF、PDFマージ、透かし、セキュリティ、電子署名など
PdfPigとIronPdfのどちらを選択するかは、プロジェクトの要件に大きく依存します。 費用対効果の高いオープンソースライセンスで、確かな抽出と読み取りができることが第一のニーズであれば、PdfPigをお使いください。 HTMLからPDFへの変換を含む包括的なPDFライフサイクルサポートが必要で、プロフェッショナルなサポートに支えられた堅牢なPDF作成・編集機能が必要なプロジェクトにはIronPDFをご利用ください。
IronPDFドキュメント、チュートリアル、APIリファレンスをご覧いただき、PdfPigへの移行を加速させてください。






