C#でNutrient.ioからIronPDFに移行する方法
Nutrient.ioからIronPDFへの移行:完全なC#移行ガイド
Nutrient.io(旧PSPDFKit)からIronPDFへの移行は、非同期ファーストのパターンを持つ複雑なドキュメントインテリジェンスプラットフォームから、簡単な同期APIを持つPDFライブラリへ移行することで、.NET PDFワークフローを簡素化します。このガイドでは、すべての重要なPDF機能を維持しながらプラットフォームのオーバーヘッドを排除する、包括的でステップバイステップの移行パスを提供します。
Nutrient.ioからIronPDFに移行する理由
プラットフォームの複雑性の問題
Nutrient.io(旧PSPDFKit)は、PDF SDKから包括的な "ドキュメントインテリジェンスプラットフォーム "へと進化しました。この変革は、機能の幅を広げる一方で、単に信頼性の高いPDF操作が必要なチームにとっては大きな課題をもたらします:
1.プラットフォームの過剰エンジニアリング:かつてはPDF SDKであったものが、現在ではAI機能やドキュメントワークフロー機能を備えた完全なドキュメントインテリジェンスプラットフォームとなっており、単純なPDFタスクには不要かもしれません。
2.企業向け価格設定: Nutrient.ioは、営業に問い合わせる必要がある不透明な価格設定の大企業向けです。 そのため、小規模から中規模のチームにとっては障壁となり、予算計画も難しくなります。
3.ブランドの混乱: PSPDFKit → Nutrientの移行により、両方の名前への参照が存在するドキュメンテーションの問題が発生しました。パッケージ名はまだ PSPDFKit を使用している可能性があり、移行中の移行経路は不明確なままです。
4.Async-First Complexity: Nutrient.ioでは、すべてasync/awaitパターンが必要です。 単純な操作であっても、初期化にはPdfProcessor.CreateAsync()が必要であり、基本的なタスクには非同期メソッドが必要で、同期ワークフローにはオーバーヘッドが追加されます。
5.重い依存関係:フルプラットフォームは、より大きなパッケージフットプリント、より多くの初期化時間、および追加の設定により、より多くのリソースを必要とします。
Nutrient.ioとIronPDFの比較
| アスペクト | Nutrient.io (PSPDFKit) | IronPDF |
|---|---|---|
| フォーカス | ドキュメントインテリジェンスプラットフォーム | PDFライブラリ |
| 価格 | エンタープライズ(営業担当) | 透明性のある出版物 |
| アーキテクチャ | 複雑なプラットフォーム | シンプルなライブラリ |
| APIスタイル | 非同期ファースト | 非同期オプション付き同期 |
| 依存関係 | 重い | 軽量 |
| 構成 | 複雑な設定オブジェクト | わかりやすいプロパティ |
| 学習曲線 | Steep(プラットフォーム) | ジェントル(ライブラリ) |
| 対象ユーザー | エンタープライズ | すべてのチームサイズ |
2025年、2026年まで.NET 10とC# 14の導入を計画しているチームにとって、IronPDFは完全なドキュメントインテリジェンスプラットフォームのオーバーヘッドなしにきれいに統合する、よりシンプルな基盤を提供します。
始める前に
前提条件
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 Nutrient/PSPDFKit packages
dotnet remove package PSPDFKit.NET
dotnet remove package PSPDFKit.PDF
dotnet remove package Nutrient
dotnet remove package Nutrient.PDF
# Install IronPDF
dotnet add package IronPdf# Remove Nutrient/PSPDFKit packages
dotnet remove package PSPDFKit.NET
dotnet remove package PSPDFKit.PDF
dotnet remove package Nutrient
dotnet remove package Nutrient.PDF
# 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.comNutrient.ioの使用方法を確認する
# Find all Nutrient/PSPDFKit references
grep -r "PSPDFKit\|Nutrient\|PdfProcessor\|PdfConfiguration" --include="*.cs" .# Find all Nutrient/PSPDFKit references
grep -r "PSPDFKit\|Nutrient\|PdfProcessor\|PdfConfiguration" --include="*.cs" .完全な API リファレンス
初期化マッピング
| Nutrient.io (PSPDFKit) | IronPDF | ノート |
|---|---|---|
PdfProcessor.CreateAsync()を待ちます。 | new ChromePdfRenderer(). | 非同期は不要 |
プロセッサ.Dispose() | (自動または手動) | よりシンプルなライフサイクル |
new PdfConfiguration { ... } | renderer.RenderingOptions。 | プロパティベース |
ドキュメント読み込みマッピング
| Nutrient.io (PSPDFKit) | IronPDF | ノート |
|---|---|---|
awaitプロセッサ.OpenAsync(path)。 | PdfDocument.FromFile(パス)。 | デフォルトで同期 |
Document.LoadFromStream(stream)(ドキュメント.ロードフロムストリーム)。 | <コード>PdfDocument.FromStream(stream)</コード><コード>PdfDocument.FromStream(stream) | ストリームサポート |
Document.LoadFromBytes(bytes)を実行します。 | new PdfDocument(bytes). | バイト配列 |
PDF生成マッピング
| Nutrient.io (PSPDFKit) | IronPDF | ノート |
|---|---|---|
await processor.GeneratePdfFromHtmlStringAsync(html). | renderer.RenderHtmlAsPdf(html). | 同期方法 |
await processor.GeneratePdfFromUrlAsync(url). | renderer.RenderUrlAsPdf(url)のようにします。 | 直接URL |
await processor.GeneratePdfFromFileAsync(path). | renderer.RenderHtmlFileAsPdf(path)のようにします。 | HTMLファイル |
ドキュメント操作マッピング
| Nutrient.io (PSPDFKit) | IronPDF | ノート |
|---|---|---|
awaitプロセッサ.MergeAsync(docs)。 | PdfDocument.Merge(pdfs). | 同期 |
| <コード>document.PageCount</コード | <コード>pdf.PageCount</コード | 同じパターン |
await document.SaveAsync(path). | pdf.SaveAs(path)のようにします。 | 同期 |
| <コード>document.ToBytes()</コード | <コード>pdf.BinaryData</コード | バイト配列 |
注釈と透かしのマッピング
| Nutrient.io (PSPDFKit) | IronPDF | ノート |
|---|---|---|
await document.AddAnnotationAsync(index, annotation). | pdf.ApplyWatermark(html). | HTMLベース |
new TextAnnotation("text"). | 透かしのHTML | 柔軟性 |
| <コード>annotation.Opacity = 0.5 | CSS <コード>不透明度:0.5</コード | CSSスタイリング |
annotation.FontSize = 48. | CSS フォントサイズ: 48px | CSSスタイリング |
コード移行の例
例1: HTMLからPDFへの変換
翻訳前 (Nutrient.io):
// NuGet: Install-Package PSPDFKit.Dotnet
using PSPDFKit.Pdf;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
using var processor = await PdfProcessor.CreateAsync();
var document = await processor.GeneratePdfFromHtmlStringAsync(htmlContent);
await document.SaveAsync("output.pdf");
}
}// NuGet: Install-Package PSPDFKit.Dotnet
using PSPDFKit.Pdf;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
using var processor = await PdfProcessor.CreateAsync();
var document = await processor.GeneratePdfFromHtmlStringAsync(htmlContent);
await document.SaveAsync("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var htmlContent = "<html><body><h1>Hello World</h1></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comawaitPdfProcessor.CreateAsync()でPdfProcessorを作成し、await processor.GeneratePdfFromHtmlStringAsync()を呼び出し、最後にawait document.SaveAsync()を呼び出します。 メソッド全体はasync Taskとマークされなければならず、プロセッサは適切な処理のためにusingステートメントを必要とします。
IronPDFはこれを劇的に簡素化します。 ChromePdfRendererを作成し、RenderHtmlAsPdf()を呼び出し、SaveAs()で保存します。 async/awaitは不要で、プロセッサのライフサイクルを管理する必要もなく、単純な操作に``ブロックを使用する必要もありません。 このパターンは、PDFワークフローに非同期パターンを必要としない開発者にとっては、より直感的です。 その他のレンダリングオプションについては、HTML to PDF documentationを参照してください。
例2: 複数のPDFをマージする
翻訳前 (Nutrient.io):
// NuGet: Install-Package PSPDFKit.Dotnet
using PSPDFKit.Pdf;
using System.Threading.Tasks;
using System.Collections.Generic;
class Program
{
static async Task Main()
{
using var processor = await PdfProcessor.CreateAsync();
var document1 = await processor.OpenAsync("document1.pdf");
var document2 = await processor.OpenAsync("document2.pdf");
var mergedDocument = await processor.MergeAsync(new List<PdfDocument> { document1, document2 });
await mergedDocument.SaveAsync("merged.pdf");
}
}// NuGet: Install-Package PSPDFKit.Dotnet
using PSPDFKit.Pdf;
using System.Threading.Tasks;
using System.Collections.Generic;
class Program
{
static async Task Main()
{
using var processor = await PdfProcessor.CreateAsync();
var document1 = await processor.OpenAsync("document1.pdf");
var document2 = await processor.OpenAsync("document2.pdf");
var mergedDocument = await processor.MergeAsync(new List<PdfDocument> { document1, document2 });
await mergedDocument.SaveAsync("merged.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
class Program
{
static void Main()
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;
class Program
{
static void Main()
{
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.comNutrient.ioのマージ操作では、await PdfProcessor.CreateAsync()でプロセッサを作成し、別々のawait processor.OpenAsync()呼び出しで各ドキュメントを開き、List<PdfDocument>を作成し、そのリストでawait processor.MergeAsync()を呼び出し、最後にawait mergedDocument.SaveAsync()を呼び出す必要があります。 これは、基本的なマージのための5つの非同期操作です。
IronPDFはこれを4つの同期行に減らします: PdfDocument.FromFile()で各PDFをロードし、静的なPdfDocument.Merge()メソッドでマージし、保存します。 プロセッサのライフサイクルがなく、リスト作成が不要で(ドキュメントを直接渡すことができます)、非同期のオーバーヘッドがありません。 PDFのマージと分割については、こちらをご覧ください。
例3: 透かしを追加する
翻訳前 (Nutrient.io):
// NuGet: Install-Package PSPDFKit.Dotnet
using PSPDFKit.Pdf;
using PSPDFKit.Pdf.Annotation;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var processor = await PdfProcessor.CreateAsync();
var document = await processor.OpenAsync("document.pdf");
for (int i = 0; i < document.PageCount; i++)
{
var watermark = new TextAnnotation("CONFIDENTIAL")
{
Opacity = 0.5,
FontSize = 48
};
await document.AddAnnotationAsync(i, watermark);
}
await document.SaveAsync("watermarked.pdf");
}
}// NuGet: Install-Package PSPDFKit.Dotnet
using PSPDFKit.Pdf;
using PSPDFKit.Pdf.Annotation;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var processor = await PdfProcessor.CreateAsync();
var document = await processor.OpenAsync("document.pdf");
for (int i = 0; i < document.PageCount; i++)
{
var watermark = new TextAnnotation("CONFIDENTIAL")
{
Opacity = 0.5,
FontSize = 48
};
await document.AddAnnotationAsync(i, watermark);
}
await document.SaveAsync("watermarked.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<h1 style='color:gray;opacity:0.5;'>CONFIDENTIAL</h1>",
50,
VerticalAlignment.Middle,
HorizontalAlignment.Center);
pdf.SaveAs("watermarked.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;
class Program
{
static void Main()
{
var pdf = PdfDocument.FromFile("document.pdf");
pdf.ApplyWatermark("<h1 style='color:gray;opacity:0.5;'>CONFIDENTIAL</h1>",
50,
VerticalAlignment.Middle,
HorizontalAlignment.Center);
pdf.SaveAs("watermarked.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comこの例では、基本的なアーキテクチャの違いが浮き彫りになっています。 Nutrient.ioは、アノテーションベースのアプローチを使用しています。OpacityやFontSizeのようなプロパティを持つTextAnnotationオブジェクトを作成し、await document.AddAnnotationAsync(i, watermark)を呼び出すすべてのページをループします。 そのためには、注釈システムを理解し、自らループを管理する必要があります。
IronPdfはHTMLベースのアプローチを使用しています: ApplyWatermark()メソッドはCSSスタイル付きのHTML文字列を受け入れます。 透かしは、1回の呼び出しですべてのページに自動的に適用されます。 アノテーション固有のオブジェクト・プロパティではなく、おなじみのCSSプロパティ(color, opacity、font-size)によって外観を制御します。 グラデーション、画像、複雑なレイアウトなど、あらゆるHTML/CSSを使用できます。 高度な例については、watermark documentationを参照してください。
重要な移行に関する注意事項
非同期から同期への変換
最も大きな変更点は、不要なasync/awaitパターンを削除したことです:
// Nutrient.io: Async-first
using var processor = await PdfProcessor.CreateAsync();
var document = await processor.GeneratePdfFromHtmlStringAsync(html);
await document.SaveAsync("output.pdf");
// IronPDF:デフォルトで同期(async available when needed)
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");// Nutrient.io: Async-first
using var processor = await PdfProcessor.CreateAsync();
var document = await processor.GeneratePdfFromHtmlStringAsync(html);
await document.SaveAsync("output.pdf");
// IronPDF:デフォルトで同期(async available when needed)
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comもし非同期操作が必要であれば、IronPDFはRenderHtmlAsPdfAsync()のような非同期バリアントを提供します。
プロセッサ ライフサイクルの排除
Nutrient.ioは、プロセッサの作成と廃棄が必要です:
// Nutrient.io: Processor lifecycle management
using var processor = await PdfProcessor.CreateAsync();
// ... use processor ...
// Processor disposed at end of using block
// IronPDF: No processor lifecycle
var renderer = new ChromePdfRenderer();
// Reuse renderer, no complex lifecycle management// Nutrient.io: Processor lifecycle management
using var processor = await PdfProcessor.CreateAsync();
// ... use processor ...
// Processor disposed at end of using block
// IronPDF: No processor lifecycle
var renderer = new ChromePdfRenderer();
// Reuse renderer, no complex lifecycle managementIRON VB CONVERTER ERROR developers@ironsoftware.com構成パターンの変更
Nutrient.ioは設定オブジェクトを使用します; IronPDFはプロパティを使用します:
// Nutrient.io: Config object
var config = new PdfConfiguration
{
PageSize = PageSize.A4,
Margins = new Margins(20, 20, 20, 20)
};
var doc = await processor.GeneratePdfFromHtmlStringAsync(html, config);
// IronPDF: Properties on RenderingOptions
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
var pdf = renderer.RenderHtmlAsPdf(html);// Nutrient.io: Config object
var config = new PdfConfiguration
{
PageSize = PageSize.A4,
Margins = new Margins(20, 20, 20, 20)
};
var doc = await processor.GeneratePdfFromHtmlStringAsync(html, config);
// IronPDF: Properties on RenderingOptions
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
renderer.RenderingOptions.MarginLeft = 20;
renderer.RenderingOptions.MarginRight = 20;
var pdf = renderer.RenderHtmlAsPdf(html);IRON VB CONVERTER ERROR developers@ironsoftware.comHTML透かしへの注釈
注釈オブジェクトをHTML文字列に置き換える:
// Nutrient.io: Annotation object with properties
new TextAnnotation("CONFIDENTIAL") { Opacity = 0.5f, FontSize = 48 }
// IronPDF: HTML with CSS
"<h1 style='opacity:0.5; font-size:48px;'>CONFIDENTIAL</h1>"// Nutrient.io: Annotation object with properties
new TextAnnotation("CONFIDENTIAL") { Opacity = 0.5f, FontSize = 48 }
// IronPDF: HTML with CSS
"<h1 style='opacity:0.5; font-size:48px;'>CONFIDENTIAL</h1>"IRON VB CONVERTER ERROR developers@ironsoftware.comページ番号の取り扱い
Nutrient.ioでは、手動によるページカウントが必要です; IronPDFにはプレースホルダーが組み込まれています:
// Nutrient.io: Manual loop and page counting
for (int i = 0; i < doc.PageCount; i++)
{
var footer = new TextAnnotation($"Page {i + 1} of {doc.PageCount}");
await doc.AddAnnotationAsync(i, footer);
}
// IronPDF: Built-in placeholders
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "Page {page} of {total-pages}"
};// Nutrient.io: Manual loop and page counting
for (int i = 0; i < doc.PageCount; i++)
{
var footer = new TextAnnotation($"Page {i + 1} of {doc.PageCount}");
await doc.AddAnnotationAsync(i, footer);
}
// IronPDF: Built-in placeholders
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = "Page {page} of {total-pages}"
};IRON VB CONVERTER ERROR developers@ironsoftware.comトラブルシューティング
問題 1: PdfProcessor が見つかりません。
問題:PdfProcessorクラスがIronPDFに存在しません。
解決策:ChromePdfRendererを使用してください:
// Nutrient.io
using var processor = await PdfProcessor.CreateAsync();
// IronPDF
var renderer = new ChromePdfRenderer();// Nutrient.io
using var processor = await PdfProcessor.CreateAsync();
// IronPDF
var renderer = new ChromePdfRenderer();IRON VB CONVERTER ERROR developers@ironsoftware.com問題 2: GeneratePdfFromHtmlStringAsync が見つかりません。
問題:非同期 HTML メソッドが存在しない。
解決策:RenderHtmlAsPdf()を使用してください:
// Nutrient.io
var document = await processor.GeneratePdfFromHtmlStringAsync(html);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);// Nutrient.io
var document = await processor.GeneratePdfFromHtmlStringAsync(html);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);IRON VB CONVERTER ERROR developers@ironsoftware.com課題3: テキストアノテーションが見つかりません
問題:注釈クラスはIronPdfには存在しません。
解決策:HTMLベースの透かしを使用する:
// Nutrient.io
var watermark = new TextAnnotation("DRAFT") { Opacity = 0.5 };
await document.AddAnnotationAsync(0, watermark);
// IronPDF
pdf.ApplyWatermark("<div style='opacity:0.5;'>DRAFT</div>");// Nutrient.io
var watermark = new TextAnnotation("DRAFT") { Opacity = 0.5 };
await document.AddAnnotationAsync(0, watermark);
// IronPDF
pdf.ApplyWatermark("<div style='opacity:0.5;'>DRAFT</div>");IRON VB CONVERTER ERROR developers@ironsoftware.com問題 4: MergeAsync が見つかりません。
問題:非同期マージメソッドが存在しない。
ソリューション:静的なPdfDocument.Merge()を使用してください:
// Nutrient.io
var mergedDocument = await processor.MergeAsync(documentList);
// IronPDF
var merged = PdfDocument.Merge(pdf1, pdf2);// Nutrient.io
var mergedDocument = await processor.MergeAsync(documentList);
// IronPDF
var merged = PdfDocument.Merge(pdf1, pdf2);IRON VB CONVERTER ERROR developers@ironsoftware.com移行チェックリスト
移行前
- [コードベース内のすべてのPSPDFKit/Nutrientの使用状況を確認する。
- [調整が必要と思われる非同期パターンを文書化する。
- [ ] すべての構成オブジェクトとそのプロパティをリストする
- [注釈ベースの機能(透かし、ヘッダー)の識別)
- [フォーム処理要件の確認
- [IronPDF ライセンスキーの取得
パッケージの変更
- [ ]
PSPDFKit.NETNuGetパッケージを削除する。 - [
NutrientNuGetパッケージを削除する。 - [ ]
IronPdfNuGetパッケージをインストールします:dotnet add package IronPdfNuGetパッケージをインストールします。 - [名前空間インポートの更新
コードの変更
- [ ] 起動時にライセンスキー設定を追加する
- [
PdfProcessor.CreateAsync()をnew ChromePdfRenderer().に置き換えてください。 - [
processor.GeneratePdfFromHtmlStringAsync()をrenderer.RenderHtmlAsPdf()に置き換えてください。 - [ ]
processor.MergeAsync()をPdfDocument.Merge()に置き換えてください。 - [
TextAnnotation透かしをHTML透かしに変換してください。 - [ ] configオブジェクトを
RenderingOptionsプロパティに置き換えてください。 - [ ]
HtmlHeaderFooterとプレースホルダを使用するようにヘッダー/フッターを更新してください。 - [不要なasync/awaitパターンを削除する。
移行後
- [不要になったasync/awaitを削除してください。
- [PDF 出力を比較する回帰テストの実行
- [ヘッダー/フッターとページ番号の確認
- [ウォーターマークレンダリングのテスト
- [CI/CD パイプラインの更新
結論
Nutrient.ioからIronPDFへの移行は、複雑なドキュメントインテリジェンスプラットフォームをPDFライブラリに置き換えることで、PDFワークフローを簡素化します。 この移行では、非同期処理の複雑さ、プロセッサのライフサイクル管理、注釈ベースのアプローチを排除し、同期APIとHTMLベースのスタイリングを採用します。
この移行における主な変更点は以下のとおりです: 1.アーキテクチャ:ドキュメントインテリジェンスプラットフォーム → フォーカスされたPDFライブラリ 2.APIスタイル:非同期優先 → 非同期オプション付き同期 3.初期化:await PdfProcessor.CreateAsync() → new ChromePdfRenderer(). 4.HTMLからPDFへ:GeneratePdfFromHtmlStringAsync() → RenderHtmlAsPdf() です。 5.マージ:processor.MergeAsync(list) → PdfDocument.Merge(pdf1, pdf2). 6.ウォーターマーク:TextAnnotationオブジェクト → CSSによるHTML文字列 7.ページ番号:手動ループ → {page}と{total-pages}プレースホルダ
IronPDFドキュメント、チュートリアル、APIリファレンスをご覧いただき、Nutrient.ioへの移行を加速させてください。






