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

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
SHELL

ライセンス構成

// 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.com
$vbLabelText   $csharpLabel

Nutrient.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" .
SHELL

完全な 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.5CSS <コード>不透明度:0.5</コードCSSスタイリング
annotation.FontSize = 48.CSS フォントサイズ: 48pxCSSスタイリング

コード移行の例

例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
$vbLabelText   $csharpLabel

翻訳後(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.com
$vbLabelText   $csharpLabel

awaitPdfProcessor.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
$vbLabelText   $csharpLabel

翻訳後(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.com
$vbLabelText   $csharpLabel

Nutrient.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
$vbLabelText   $csharpLabel

翻訳後(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
$vbLabelText   $csharpLabel

この例では、基本的なアーキテクチャの違いが浮き彫りになっています。 Nutrient.ioは、アノテーションベースのアプローチを使用しています。OpacityFontSizeのようなプロパティを持つTextAnnotationオブジェクトを作成し、await document.AddAnnotationAsync(i, watermark)を呼び出すすべてのページをループします。 そのためには、注釈システムを理解し、自らループを管理する必要があります。

IronPdfはHTMLベースのアプローチを使用しています: ApplyWatermark()メソッドはCSSスタイル付きのHTML文字列を受け入れます。 透かしは、1回の呼び出しですべてのページに自動的に適用されます。 アノテーション固有のオブジェクト・プロパティではなく、おなじみのCSSプロパティ(color, opacityfont-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
$vbLabelText   $csharpLabel

もし非同期操作が必要であれば、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 management
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

構成パターンの変更

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.com
$vbLabelText   $csharpLabel

HTML透かしへの注釈

注釈オブジェクトを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
$vbLabelText   $csharpLabel

ページ番号の取り扱い

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
$vbLabelText   $csharpLabel

トラブルシューティング

問題 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
$vbLabelText   $csharpLabel

問題 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
$vbLabelText   $csharpLabel

課題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
$vbLabelText   $csharpLabel

問題 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
$vbLabelText   $csharpLabel

移行チェックリスト

移行前

  • [コードベース内のすべてのPSPDFKit/Nutrientの使用状況を確認する。
  • [調整が必要と思われる非同期パターンを文書化する。
  • [ ] すべての構成オブジェクトとそのプロパティをリストする
  • [注釈ベースの機能(透かし、ヘッダー)の識別)
  • [フォーム処理要件の確認
  • [IronPDF ライセンスキーの取得

パッケージの変更

  • [ ] PSPDFKit.NET NuGetパッケージを削除する。
  • [Nutrient NuGetパッケージを削除する。
  • [ ] IronPdf NuGetパッケージをインストールします:dotnet add package IronPdf NuGetパッケージをインストールします。
  • [名前空間インポートの更新

コードの変更

  • [ ] 起動時にライセンスキー設定を追加する
  • [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への移行を加速させてください。

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

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

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