C#でPeachPDFからIronPDFに移行する方法
PeachPDFからIronPdfに移行することで、包括的な機能、活発な開発、プロフェッショナルなサポートを備えたエンタープライズグレードのPDF生成にアクセスできます。 このガイドは、基本的なHTMLからPDFへのワークフローを、最新のChromiumレンダリング、高度なセキュリティオプション、および広範な操作機能を備えたフル機能のPDFソリューションに変換する、完全でステップバイステップの移行パスを提供します。
なぜPeachPDFからIronPDFに移行するのか
PeachPDFを理解する
PeachPDFは、HTMLをPDFに変換する必要がある開発者向けに設計された、.NETエコシステムの比較的新しい参入者です。 ライブラリとして、PeachPDFは純粋な.NET実装を約束し、外部プロセスに依存しないことで差別化を図り、.NETがサポートされているプラットフォーム間でシームレスに統合できることを保証します。 この特徴により、PeachPDF は、軽量でマネージドなライブラリソリューションをお探しのプロジェクトにとって魅力的な選択肢となります。
PeachPDFは、その可能性にもかかわらず、まだ開発中であり、エキサイティングな可能性と注目すべき制限の両方が浮き彫りになっています。 PeachPDFは、純粋な.NET Coreを採用しているため、多様な環境での簡単な導入が約束されており、魅力的です。 しかし、ユーザーベースやコミュニティ主導のサポートが少ないため、採用が限られることにもつながります。
PeachPDFの限界について
PeachPDF は比較的新しく、あまり知られていない PDF ライブラリで、確立されたソリューションのような成熟度、機能、サポートがありません。 移行する主な理由
1.機能セットの制限:ピーチPDFには、デジタル署名、PDF/A 準拠、高度なテキスト抽出などの高度な機能が欠けています。
2.小規模なコミュニティ:ドキュメント、例、コミュニティ サポートが限られています。 ユーザーベースが小さいため、コミュニティサポートがまばらで、サポートを得たり、広範なドキュメントを見つけることが困難な場合があります。
3.不確かな将来:実績が確立されていない新しいライブラリには、導入リスクが伴います。
4.基本的な HTML サポート:制限された CSS およびJavaScriptレンダリング機能。
5.エンタープライズ サポートなし:プロフェッショナル サポートや SLA オプションはありません。
PeachPDFとIronPDFの比較
| 機能/特徴 | ピーチPDF | IronPDF |
|---|---|---|
| 実装 | 純粋な.NET | 幅広い互換性で管理 |
| ライセンス | オープンソース (BSD-3 条) | 商用 |
| ユーザーベース | 小規模 | 大規模(40M以上のダウンロード) |
| サポート | コミュニティ主導 | プロフェッショナルな専任サポート |
| HTMLレンダリング。 | 基本 | 完全なChromium |
| CSSサポート | 制限的 | 完全なCSS3 |
| JavaScript(ジャバスクリプト | 基本 | フルES2024 |
| デジタル署名。 | なし | はい |
| PDF/Aコンプライアンス | なし | はい |
| ドキュメント | 制限的 | 広範囲 |
| 開発ステータス | 開発中 | 成熟した安定したリリース |
IronPdfはHTMLからPDFへの変換だけでなく、OCR、透かし、その他の高度な機能をサポートし、より幅広い機能を備えています。 Professionalなサポート体制は、開発者が直面する問題を迅速に解決するための決定的な利点です。
2025年と2026年まで.NET 10とC# 14の採用を計画しているチームに対して、IronPDFは包括的な機能と積極的なメンテナンスを提供し、長期的な安定性と最新の.NETフレームワークとの互換性を保証します。
始める前に
前提条件
- .NET 環境: .NET Framework 4.6.2+ または .NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGetアクセス: NuGetパッケージをインストールする機能
- IronPDFライセンス: ironpdf.comからライセンスキーを取得します。
NuGetパッケージの変更
# Remove PeachPDF
dotnet remove package PeachPDF
# Install IronPDF
dotnet add package IronPdf# Remove PeachPDF
dotnet remove package PeachPDF
# Install IronPDF
dotnet add package IronPdfライセンス構成
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";PeachPDFの使用方法を特定する
# AuditピーチPDFusage in codebase
grep -r "using PeachPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|Convert\|ConvertUrl" --include="*.cs" .# AuditピーチPDFusage in codebase
grep -r "using PeachPDF" --include="*.cs" .
grep -r "HtmlToPdfConverter\|Convert\|ConvertUrl" --include="*.cs" .完全な API リファレンス
名前空間の変更
// Before: PeachPDF
using PeachPDF;
using System.IO;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;// Before: PeachPDF
using PeachPDF;
using System.IO;
// After: IronPDF
using IronPdf;
using IronPdf.Rendering;コア API マッピング
| ピーチPDF | IronPDF | ノート |
|---|---|---|
new HtmlToPdfConverter(). | new ChromePdfRenderer(). | レンダラーの作成 |
converter.Convert(html). | renderer.RenderHtmlAsPdf(html). | HTMLからPDFへ |
converter.ConvertUrl(url). | renderer.RenderUrlAsPdf(url)のようにします。 | URLからPDFへ |
| <コード>converter.Header</コード | renderer.RenderingOptions.HtmlHeader。 | ヘッダーコンテンツ |
| <コード>コンバーター.フッター</コード | renderer.RenderingOptions.HtmlFooter。 | フッターコンテンツ |
File.WriteAllBytes(path, pdf). | pdf.SaveAs(path)のようにします。 | ファイルを保存 |
pdf (byte[]) | <コード>pdf.BinaryData</コード | バイト |
PdfReader.LoadFromFile(path)を実行します。 | PdfDocument.FromFile(パス)。 | PDFを読み込む |
document.MergeWith(other)を使用してください。 | PdfDocument.Merge(pdfs). | PDFのマージ |
コード移行の例
例1: HTML文字列からPDFへの変換
翻訳前 (PeachPDF):
using PeachPDF;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdf);
}
}using PeachPDF;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdf);
}
}翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}この例は、2つのライブラリの基本的な違いを示しています。 PeachPDFは、バイト[]を返すConvert()メソッドを持つHtmlToPdfConverterを使用しており、保存にはFile.WriteAllBytes()が必要です。 IronPDFは組み込みのSaveAs()メソッドを持つPdfDocumentオブジェクトを返すRenderHtmlAsPdf()を持つChromePdfRendererを使用します。
PeachPDFのバイト配列が最終的な出力であるのに対し、IronPdfのアプローチの主な利点は、保存する前にPdfDocumentオブジェクトをさらに操作(透かしの追加、結合、セキュリティ設定)できることです。 IronPDFのアプローチは、よりきれいな構文と最新の.NETアプリケーションとのより良い統合を提供します。 包括的な例については、HTML to PDF documentationを参照してください。
例2: URLからPDFへの変換
翻訳前 (PeachPDF):
using PeachPDF;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var url = "https://www.example.com";
var pdf = converter.ConvertUrl(url);
File.WriteAllBytes("webpage.pdf", pdf);
}
}using PeachPDF;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var url = "https://www.example.com";
var pdf = converter.ConvertUrl(url);
File.WriteAllBytes("webpage.pdf", pdf);
}
}翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var url = "https://www.example.com";
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var url = "https://www.example.com";
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
}
}PeachPDFはConvertUrl()を使用し、IronPDFはRenderUrlAsPdf()を使用します。 IronPDFのメソッド名はより説明的で、URLがPDFとしてレンダリングされることを明示的に示しています。 どちらのライブラリもURLからPDFへの変換を同様に扱いますが、IronPDFの完全なChromiumエンジンは複雑なCSSやJavaScriptを含む最新のウェブページの優れたレンダリングを提供します。 詳しくは、チュートリアルをご覧ください。
例3: ヘッダーとフッターを追加する
翻訳前 (PeachPDF):
using PeachPDF;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.Header = "<div style='text-align:center'>My Header</div>";
converter.Footer = "<div style='text-align:center'>Page {page}</div>";
var html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = converter.Convert(html);
File.WriteAllBytes("document.pdf", pdf);
}
}using PeachPDF;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.Header = "<div style='text-align:center'>My Header</div>";
converter.Footer = "<div style='text-align:center'>Page {page}</div>";
var html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = converter.Convert(html);
File.WriteAllBytes("document.pdf", pdf);
}
}翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>My Header</div>" };
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>Page {page}</div>" };
var html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("document.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>My Header</div>" };
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center'>Page {page}</div>" };
var html = "<html><body><h1>Document Content</h1></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("document.pdf");
}
}この例は、重要なアーキテクチャの違いを示しています。ピーチPDFはヘッダーとフッターに単純な文字列プロパティ (converter.Header と converter.Footer) を使用します。 IronPDFはRenderingOptions.HtmlHeaderとRenderingOptions.HtmlFooterに割り当てられたHtmlHeaderFooterオブジェクトを使用します。
HtmlHeaderFooterオブジェクトはヘッダー/フッターのサイズをコントロールするためのMaxHeightのような追加プロパティを含むことができます。どちらのライブラリもページ番号のプレースホルダとして{page}を使うことに注意してください。 IronPDFは総ページ数の{total-pages}<//code>もサポートしています。
IronPDFに必要な追加の名前空間に注意してください:using IronPdf.Rendering;はHtmlHeaderFooterクラスに必要です。
重要な移行に関する注意事項
コンバータ クラスの変更
PeachPDFはHtmlToPdfConverterを使用しています; IronPDFはChromePdfRendererを使用しています:
// PeachPDF
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();// PeachPDF
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();返品タイプの変更
PeachPDF は byte[] を返します; IronPDFはPdfDocumentを返します:
// PeachPDF: Returns byte array
byte[] pdf = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdf);
// IronPDF: Returns PdfDocument object
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or get bytes: byte[] bytes = pdf.BinaryData;// PeachPDF: Returns byte array
byte[] pdf = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdf);
// IronPDF: Returns PdfDocument object
PdfDocument pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or get bytes: byte[] bytes = pdf.BinaryData;ヘッダー/フッターのプロパティの変更
// PeachPDF: Simple string properties
converter.Header = "<div>Header</div>";
converter.Footer = "<div>Footer</div>";
// IronPDF: HtmlHeaderFooter objects
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div>Header</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div>Footer</div>"
};// PeachPDF: Simple string properties
converter.Header = "<div>Header</div>";
converter.Footer = "<div>Footer</div>";
// IronPDF: HtmlHeaderFooter objects
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
HtmlFragment = "<div>Header</div>"
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<div>Footer</div>"
};メソッド名の変更
| ピーチPDF | IronPDF |
|---|---|
| <コード>変換(html)</コード | RenderHtmlAsPdf(html)を使用してください。 |
ConvertUrl(url)を使用してください。 | RenderUrlAsPdf(url)を使用してください。 |
| <コード>File.WriteAllBytes()</コード | <コード>SaveAs()</コード |
移行後の新機能
IronPdfに移行すると、PeachPDFでは提供できない機能が得られます:
PDFマージ
var pdf1 = PdfDocument.FromFile("doc1.pdf");
var pdf2 = PdfDocument.FromFile("doc2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");var pdf1 = PdfDocument.FromFile("doc1.pdf");
var pdf2 = PdfDocument.FromFile("doc2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");HTMLによるウォーターマーク
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>");
pdf.SaveAs("watermarked.pdf");var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<div style='color: red; font-size: 48pt;'>DRAFT</div>");
pdf.SaveAs("watermarked.pdf");パスワード保護
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SaveAs("protected.pdf");var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential</h1>");
pdf.SecuritySettings.OwnerPassword = "owner123";
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.NoPrint;
pdf.SaveAs("protected.pdf");デジタル署名
using IronPdf.Signing;
var pdf = PdfDocument.FromFile("document.pdf");
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningReason = "Document Approval",
SigningLocation = "New York"
};
pdf.Sign(signature);
pdf.SaveAs("signed.pdf");using IronPdf.Signing;
var pdf = PdfDocument.FromFile("document.pdf");
var signature = new PdfSignature("certificate.pfx", "password")
{
SigningReason = "Document Approval",
SigningLocation = "New York"
};
pdf.Sign(signature);
pdf.SaveAs("signed.pdf");非同期オペレーション
var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>");
pdf.SaveAs("async_output.pdf");var renderer = new ChromePdfRenderer();
var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Async PDF</h1>");
pdf.SaveAs("async_output.pdf");機能比較の概要
| フィーチャー | ピーチPDF | IronPDF |
|---|---|---|
| HTMLからPDFへ | 基本 | 完全なChromium |
| URLからPDFへ | 制限的 | はい |
| CSSグリッド/フレックスボックス | なし | はい |
| JavaScript | 制限的 | フルES2024 |
| PDFのマージ | はい | はい |
| PDFの分割 | 制限的 | はい |
| 透かし | 制限的 | フルHTML |
| ヘッダー/フッター | 基本 | フルHTML |
| デジタル署名 | なし | はい |
| PDF/A | なし | はい |
| フォーム入力 | 制限的 | はい |
| テキスト抽出 | 基本 | はい |
| 画像抽出 | なし | はい |
| 非同期サポート | 制限的 | はい |
| クロスプラットフォーム | 不明 | はい |
よくある移行の問題
課題1: 異なるAPIパターン
問題: PeachPDFはバイト配列出力のコンバーターパターンを使用しています; IronPDFはPdfDocument出力のレンダラパターンを使用します。
ソリューション:
//ピーチPDFpattern
var converter = new HtmlToPdfConverter();
var pdf = converter.Convert(html);
File.WriteAllBytes(path, pdf);
//IronPDFpattern
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(path);//ピーチPDFpattern
var converter = new HtmlToPdfConverter();
var pdf = converter.Convert(html);
File.WriteAllBytes(path, pdf);
//IronPDFpattern
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs(path);課題2: 保存方法の違い
問題: PeachPDFはFile.WriteAllBytes()を必要とします; IronPDFにはSaveAs()が組み込まれています。
解決策: File.WriteAllBytes("path", pdf) を pdf.SaveAs("path") に置き換えてください。
課題3: ヘッダー/フッターオブジェクト
問題 PeachPDFは文字列プロパティを使用します; IronPDFはオブジェクトプロパティを使用します。
解決策: HtmlFragmentプロパティを使用して、HtmlHeaderFooterオブジェクトでHTML文字列をラップします。
移行チェックリスト
移行前
- コードベースでのPeachPDFの使用状況を監査する
- カスタム構成を文書化する
- すべてのヘッダー/フッターの実装をメモします
- ironpdf.comからIronPDFライセンスキーを取得します
- まずはIronPDFの試用ライセンスでテストしてください
パッケージの変更
PeachPDFNuGetパッケージを削除するIronPdfNuGet パッケージをインストールします:dotnet add package IronPdf
コードの変更
- 名前空間のインポートを更新します (
using PeachPDF;→using IronPdf;) - ヘッダー/フッター機能のために
using IronPdf.Rendering;を追加します HtmlToPdfConverterChromePdfRendererに置き換えるconverter.Convert(html)をrenderer.RenderHtmlAsPdf(html)に置き換えますconverter.ConvertUrl(url)をrenderer.RenderUrlAsPdf(url)に置き換えますFile.WriteAllBytes(path, pdf)をpdf.SaveAs(path)に置き換えます -<コード>converter.Header</コード/FooterRenderingOptions.HtmlHeader/HtmlFooterオブジェクトに置き換えます- アプリケーションの起動時にライセンスの初期化を追加
移行後
- HTMLレンダリング品質をテストする
- PDF出力が期待値と一致していることを確認
- ページ番号付きのヘッダー/フッターのレンダリングをテストする
- 必要に応じて新しい機能(セキュリティ、透かし、結合)を追加します






