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(JavaScript | 基本 | フルES2024 |
| デジタル署名。 | なし | はい |
| PDF/Aコンプライアンス | なし | はい |
| ドキュメント | 制限的 | 広範囲 |
| 開発ステータス | 開発中 | 成熟した安定したリリース |
IronPdfはHTMLからPDFへの変換だけでなく、OCR、透かし、その他の高度な機能をサポートし、より幅広い機能を備えています。 Professionalなサポート体制は、開発者が直面する問題を迅速に解決するための決定的な利点です。
2025年と2026年まで.NET 10とC# 14の採用を計画しているチームに対して、IronPDFは包括的な機能と積極的なメンテナンスを提供し、長期的な安定性と最新 for .NETフレームワークとの互換性を保証します。
始める前に
前提条件
- .NET環境: .NET Framework 4.6.2+ または.NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGetアクセス: NuGetパッケージをインストールする機能
- IronPDFライセンス: IronPDFからライセンスキーを取得します。
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";
' 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;
Imports IronPdf
Imports IronPdf.Rendering
Imports System.IO
コア API マッピング
| ピーチPDF | IronPDF |
|---|---|
new HtmlToPdfConverter() |
new ChromePdfRenderer() |
converter.Convert(html) |
renderer.RenderHtmlAsPdf(html) |
converter.ConvertUrl(url) |
renderer.RenderUrlAsPdf(url) |
converter.Header |
renderer.RenderingOptions.HtmlHeader |
converter.Footer |
renderer.RenderingOptions.HtmlFooter |
File.WriteAllBytes(path, pdf) |
pdf.SaveAs(path) |
pdf (バイト[]) |
pdf.BinaryData |
PdfReader.LoadFromFile(path) |
PdfDocument.FromFile(path) |
document.MergeWith(other) |
PdfDocument.Merge(pdfs) |
コード移行の例
例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);
}
}
Imports PeachPDF
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
Dim html = "<html><body><h1>Hello World</h1></body></html>"
Dim pdf = converter.Convert(html)
File.WriteAllBytes("output.pdf", pdf)
End Sub
End Class
翻訳後(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");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim html = "<html><body><h1>Hello World</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
この例は、2つのライブラリの基本的な違いを示しています。ピーチPDFは、HtmlToPdfConverter を Convert() メソッドと共に使用し、byte[] を返すため、保存には File.WriteAllBytes() が必要です。IronPDFは、ChromePdfRenderer と RenderHtmlAsPdf() を使用して、組み込みの SaveAs() メソッドを持つ PdfDocument オブジェクトを返します。
IronPDF のアプローチの主な利点: PdfDocument オブジェクトは保存前にさらに操作 (透かしの追加、結合、セキュリティ設定) できるのに対し、PeachPDF のバイト配列は最終出力です。 IronPDFのアプローチは、よりきれいな構文と最新 for .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);
}
}
Imports PeachPDF
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
Dim url = "https://www.example.com"
Dim pdf = converter.ConvertUrl(url)
File.WriteAllBytes("webpage.pdf", pdf)
End Sub
End Class
翻訳後(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");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim url = "https://www.example.com"
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("webpage.pdf")
End Sub
End Class
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);
}
}
Imports PeachPDF
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
converter.Header = "<div style='text-align:center'>My Header</div>"
converter.Footer = "<div style='text-align:center'>Page {page}</div>"
Dim html = "<html><body><h1>Document Content</h1></body></html>"
Dim pdf = converter.Convert(html)
File.WriteAllBytes("document.pdf", pdf)
End Sub
End Class
翻訳後(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");
}
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System
Module Program
Sub Main()
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:center'>My Header</div>"}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {.HtmlFragment = "<div style='text-align:center'>Page {page}</div>"}
Dim html As String = "<html><body><h1>Document Content</h1></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("document.pdf")
End Sub
End Module
この例は、重要なアーキテクチャの違いを示しています。ピーチPDFは、ヘッダーとフッターに単純な文字列プロパティ (converter.Header および converter.Footer) を使用します。IronPDFは、RenderingOptions.HtmlHeader および RenderingOptions.HtmlFooter に割り当てられた HtmlHeaderFooter オブジェクトを使用します。
IronPDFのアプローチはより柔軟性が高く、HtmlHeaderFooter オブジェクトには、ヘッダー/フッターのサイズを制御するための MaxHeight などの追加プロパティを含めることができます。どちらのライブラリも、ページ番号のプレースホルダーとして {page} を使用していることに注意してください。IronPDFは、合計ページ数を示す {total-pages} もサポートしています。
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
Dim converter As New HtmlToPdfConverter()
' IronPDF
Dim renderer As 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: Returns byte array
Dim pdf As Byte() = converter.Convert(html)
File.WriteAllBytes("output.pdf", pdf)
' IronPDF: Returns PdfDocument object
Dim pdfDoc As PdfDocument = renderer.RenderHtmlAsPdf(html)
pdfDoc.SaveAs("output.pdf")
' Or get bytes: Dim bytes As Byte() = pdfDoc.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>"
};
' PeachPDF: Simple string properties
converter.Header = "<div>Header</div>"
converter.Footer = "<div>Footer</div>"
' IronPDF: HtmlHeaderFooter objects
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
.HtmlFragment = "<div>Header</div>"
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
.HtmlFragment = "<div>Footer</div>"
}
メソッド名の変更
| ピーチPDF | IronPDF |
|---|---|
Convert(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");
CONVERTER NOT RUNNING
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");
Dim 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");
Dim renderer As New ChromePdfRenderer()
Dim 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");
Imports IronPdf.Signing
Dim pdf = PdfDocument.FromFile("document.pdf")
Dim signature = New PdfSignature("certificate.pfx", "password") With {
.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");
Dim renderer As New ChromePdfRenderer()
Dim 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);
'ピーチPDFpattern
Dim converter As New HtmlToPdfConverter()
Dim pdf = converter.Convert(html)
File.WriteAllBytes(path, pdf)
'IronPDFpattern
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs(path)
課題2: 保存方法の違い
問題:ピーチPDFには File.WriteAllBytes() が必要です。 IronPDFには SaveAs() が組み込まれています。
解決策: File.WriteAllBytes("path", pdf) を pdf.SaveAs("path") に置き換えます。
課題3: ヘッダー/フッターオブジェクト
問題 PeachPDFは文字列プロパティを使用します; IronPDFはオブジェクトプロパティを使用します。
解決策: HTML 文字列を HtmlHeaderFooter オブジェクトと HtmlFragment プロパティで囲みます。
移行チェックリスト
移行前
- コードベースでのPeachPDFの使用状況を監査する
- カスタム構成を文書化する
- すべてのヘッダー/フッターの実装をメモします
- IronPDFからIronPDFライセンスキーを取得します
- まずはIronPDFの試用ライセンスでテストしてください
パッケージの変更
PeachPDFNuGetパッケージを削除しますIronPdfNuGetパッケージをインストールします:dotnet add package IronPdf
コードの変更
- 名前空間のインポートを更新します (
using PeachPDF;→using IronPdf;) - ヘッダー/フッター機能のために
using IronPdf.Rendering;を追加します HtmlToPdfConverterをChromePdfRendererに置き換えますconverter.Convert(html)をrenderer.RenderHtmlAsPdf(html)に置き換えますconverter.ConvertUrl(url)をrenderer.RenderUrlAsPdf(url)に置き換えますFile.WriteAllBytes(path, pdf)をpdf.SaveAs(path)に置き換えますFooterをHtmlFooterオブジェクトに置き換えます- アプリケーションの起動時にライセンスの初期化を追加
移行後
- HTMLレンダリング品質をテストする
- PDF出力が期待値と一致していることを確認
- ページ番号付きのヘッダー/フッターのレンダリングをテストする
- 必要に応じて新しい機能(セキュリティ、透かし、結合)を追加します

