C#でKaizen.ioからIronPDFに移行する方法
Kaizen.ioのHTML-to-PDFからIronPDFに移行することで、.NET PDFワークフローをネットワーク遅延やデータプライバシーの懸念のあるクラウド依存のサービスから、データをインフラ内に保持するローカルのインプロセスライブラリに変換します。 このガイドでは、プロ for .NET開発者向けに、外部APIへの依存やリクエストごとの価格設定を排除した、包括的でステップバイステップの移行パスを提供します。
Kaizen.ioからIronPDFへ移行する理由
クラウドベースのAPIの課題
Kaizen.io HTML-to-PDF は、他のクラウドベースの PDF サービスと同様に、本番アプリケーションに影響を与える制限があります:
1.クラウドへの依存:常時インターネット接続と外部サービスの可用性が必要です。 Kaizen.ioサービスにダウンタイムが発生すると、アプリケーションのPDF生成が停止します。
2.データ プライバシーに関する懸念:顧客データ、財務レポート、機密文書などの機密性の高い HTML コンテンツは、処理のためにサードパーティのサーバーに送信する必要があります。
3.ネットワーク遅延: PDF を生成するたびに、100 ~ 500 ミリ秒以上のネットワーク ラウンドトリップ遅延が発生し、アプリケーションの応答時間に大きなオーバーヘッドが追加されます。
4.リクエストごとの価格設定:コストは使用量に応じて直接増減するため、大量の PDF 生成はコストが高くなります。
5.レート制限:トラフィック量が多い期間に API スロットリングが発生すると、最も必要なときに PDF 生成が失敗したり、遅延したりする可能性があります。
6.ベンダー ロックイン: API の変更やサービスの中止のリスクにより、アプリケーションは外部のビジネス上の決定に対して脆弱になります。
Kaizen.ioとIronPDFの比較
| フィーチャー | Kaizen.io | IronPDF |
|---|---|---|
| 処理 | クラウド(外部サーバー) | ローカル(進行中) |
| データプライバシー | 外部送信データ | データはインフラから離れません |
| 遅延 | ネットワークのラウンドトリップ(100-500ms以上) | ローカル処理(50~200ミリ秒) |
| 納期 | 外部サービスに依存 | 100%お客様の管理下 |
| 価格 | 依頼ごとまたはサブスクリプション | 1回限りまたは年間ライセンス |
| オフラインモード | 不可 | 全機能 |
| 料金の上限 | APIスロットリング | 制限なし |
| JavaScript | 限定サポート | Chromiumの完全な実行 |
2025年と2026年まで.NET 10とC# 14の採用を計画しているチームにとって、IronPDFは外部サービスへの依存をなくし、ローカル処理による将来性のある基盤を提供します。
マイグレーションの複雑さの評価
機能別の見積もり作業
| フィーチャー | 移行の複雑さ |
|---|---|
| 基本的なHTMLからPDFへ | 低レベル |
| HTMLファイルからPDFへ | 低レベル |
| URLからPDFへ | 低レベル |
| ヘッダー/フッター | 低レベル |
| ページ設定 | 低レベル |
| APIキー管理 | 低レベル |
パラダイムシフト
この Kaizen.io 移行における基本的な変化は、クラウド API 呼び出しからローカルのインプロセス レンダリングへの変更です。
Kaizen.io: HtmlToPdfConverter → Convert(html) → byte[] (ネットワーク経由)
IronPDF: ChromePdfRenderer → RenderHtmlAsPdf(html) → PdfDocument (ローカル)
始める前に
前提条件
- .NET環境: .NET Framework 4.6.2+ または.NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGetアクセス: NuGetパッケージをインストールする機能
- IronPDFライセンス: IronPDFからライセンスキーを取得します。
NuGetパッケージの変更
# Remove Kaizen.io package
dotnet remove package Kaizen.HtmlToPdf
dotnet remove package Kaizen.IO.HtmlToPdf
# Install IronPDF
dotnet add package IronPdf
# Remove Kaizen.io package
dotnet remove package Kaizen.HtmlToPdf
dotnet remove package Kaizen.IO.HtmlToPdf
# 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";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Kaizen.ioの使用法を特定する
# Find all Kaizen.io references
grep -r "using Kaizen\|HtmlToPdfConverter\|ConversionOptions" --include="*.cs" .
grep -r "ConvertUrl\|ConvertHtml\|Kaizen" --include="*.cs" .
# Find all Kaizen.io references
grep -r "using Kaizen\|HtmlToPdfConverter\|ConversionOptions" --include="*.cs" .
grep -r "ConvertUrl\|ConvertHtml\|Kaizen" --include="*.cs" .
完全な API リファレンス
クラスマッピング
| Kaizen.ioクラス | IronPDF 同等物 |
|---|---|
HtmlToPdfConverter |
ChromePdfRenderer |
ConversionOptions |
ChromePdfRenderOptions |
HeaderOptions |
HtmlHeaderFooter または TextHeaderFooter |
FooterOptions |
HtmlHeaderFooter または TextHeaderFooter |
PageSize |
PdfPaperSize |
Orientation |
PdfPaperOrientation |
メソッドマッピング
| Kaizen.io メソッド | IronPDF 同等物 |
|---|---|
converter.Convert(html) |
renderer.RenderHtmlAsPdf(html) |
converter.ConvertUrl(url) |
renderer.RenderUrlAsPdf(url) |
File.WriteAllBytes(path, bytes) |
pdf.SaveAs(path) |
ConversionOptionsプロパティのマッピング
| Kaizen.io プロパティ | IronPDF 同等物 |
|---|---|
PageSize |
RenderingOptions.PaperSize |
Orientation |
RenderingOptions.PaperOrientation |
MarginTop |
RenderingOptions.MarginTop |
MarginBottom |
RenderingOptions.MarginBottom |
Header.HtmlContent |
RenderingOptions.HtmlHeader.HtmlFragment |
Footer.HtmlContent |
RenderingOptions.HtmlFooter.HtmlFragment |
プレースホルダーのマッピング
| Kaizen.io プレースホルダ | IronPDF プレースホルダー |
|---|---|
{page} |
{page} |
{total} |
{total-pages} |
{date} |
{date} |
{title} |
{html-title} |
コード移行の例
例1: 基本的なHTMLからPDFへ
翻訳前 (Kaizen.io):
using Kaizen.IO;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdfBytes = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdfBytes);
}
}
using Kaizen.IO;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var html = "<html><body><h1>Hello World</h1></body></html>";
var pdfBytes = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdfBytes);
}
}
Imports Kaizen.IO
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
Dim html = "<html><body><h1>Hello World</h1></body></html>"
Dim pdfBytes = converter.Convert(html)
File.WriteAllBytes("output.pdf", pdfBytes)
End Sub
End Class
翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;
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.IO;
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.IO
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
Kaizen.io のアプローチでは、HtmlToPdfConverter を作成し、Convert() を呼び出してバイト配列を取得し、次に File.WriteAllBytes() を使用してバイトをファイルに手動で書き込みます。 Kaizen.ioクラウドサービスへのネットワークラウンドトリップが含まれます。
IronPDF の ChromePdfRenderer はすべてをローカルで処理します。 RenderHtmlAsPdf() メソッドは、便利な SaveAs() メソッドを備えた PdfDocument オブジェクトを返します。手動でのバイト配列処理は必要なく、ネットワーク遅延もありません。 その他のレンダリングオプションについては、HTML to PDF documentationを参照してください。
例2: ページ設定でHTMLファイルをPDFに
翻訳前 (Kaizen.io):
using Kaizen.IO;
using System;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var htmlContent = File.ReadAllText("input.html");
var options = new ConversionOptions
{
PageSize = PageSize.A4,
Orientation = Orientation.Portrait
};
var pdfBytes = converter.Convert(htmlContent, options);
File.WriteAllBytes("document.pdf", pdfBytes);
}
}
using Kaizen.IO;
using System;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var htmlContent = File.ReadAllText("input.html");
var options = new ConversionOptions
{
PageSize = PageSize.A4,
Orientation = Orientation.Portrait
};
var pdfBytes = converter.Convert(htmlContent, options);
File.WriteAllBytes("document.pdf", pdfBytes);
}
}
Imports Kaizen.IO
Imports System
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
Dim htmlContent = File.ReadAllText("input.html")
Dim options = New ConversionOptions With {
.PageSize = PageSize.A4,
.Orientation = Orientation.Portrait
}
Dim pdfBytes = converter.Convert(htmlContent, options)
File.WriteAllBytes("document.pdf", pdfBytes)
End Sub
End Class
翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
pdf.SaveAs("document.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait;
var pdf = renderer.RenderHtmlFileAsPdf("input.html");
pdf.SaveAs("document.pdf");
}
}
Imports IronPdf
Imports System
Imports System.IO
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Portrait
Dim pdf = renderer.RenderHtmlFileAsPdf("input.html")
pdf.SaveAs("document.pdf")
End Sub
End Class
Kaizen.io のアプローチでは、File.ReadAllText() を使用して HTML ファイルの内容を手動で読み取り、別の ConversionOptions オブジェクトを作成し、両方を Convert() メソッドに渡して、結果のバイトを手動でファイルに書き込む必要があります。
IronPDF は、ファイルを直接読み取る専用の RenderHtmlFileAsPdf() メソッドを提供するため、手動でファイルを読み取る必要はありません。 構成はレンダラーの RenderingOptions プロパティで設定され、すべての設定が 1 か所にまとめられます。 PdfPaperSize.A4 および PdfPaperOrientation.Portrait 列挙型は、Kaizen.io の同等のものから直接マップされます。
例3: ヘッダーとフッター付きのURLからPDFへ
翻訳前 (Kaizen.io):
using Kaizen.IO;
using System;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var options = new ConversionOptions
{
Header = new HeaderOptions { HtmlContent = "<div style='text-align:center'>Company Header</div>" },
Footer = new FooterOptions { HtmlContent = "<div style='text-align:center'>Page {page} of {total}</div>" },
MarginTop = 20,
MarginBottom = 20
};
var pdfBytes = converter.ConvertUrl("https://example.com", options);
File.WriteAllBytes("webpage.pdf", pdfBytes);
}
}
using Kaizen.IO;
using System;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var options = new ConversionOptions
{
Header = new HeaderOptions { HtmlContent = "<div style='text-align:center'>Company Header</div>" },
Footer = new FooterOptions { HtmlContent = "<div style='text-align:center'>Page {page} of {total}</div>" },
MarginTop = 20,
MarginBottom = 20
};
var pdfBytes = converter.ConvertUrl("https://example.com", options);
File.WriteAllBytes("webpage.pdf", pdfBytes);
}
}
Imports Kaizen.IO
Imports System
Imports System.IO
Module Program
Sub Main()
Dim converter As New HtmlToPdfConverter()
Dim options As New ConversionOptions With {
.Header = New HeaderOptions With {.HtmlContent = "<div style='text-align:center'>Company Header</div>"},
.Footer = New FooterOptions With {.HtmlContent = "<div style='text-align:center'>Page {page} of {total}</div>"},
.MarginTop = 20,
.MarginBottom = 20
}
Dim pdfBytes = converter.ConvertUrl("https://example.com", options)
File.WriteAllBytes("webpage.pdf", pdfBytes)
End Sub
End Module
翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.TextHeader.CenterText = "Company Header";
renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}";
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("webpage.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.TextHeader.CenterText = "Company Header";
renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}";
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("webpage.pdf");
}
}
Imports IronPdf
Imports System
Imports System.IO
Module Program
Sub Main()
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.TextHeader.CenterText = "Company Header"
renderer.RenderingOptions.TextFooter.CenterText = "Page {page} of {total-pages}"
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End Module
この例は、いくつかの重要な移行の違いを示しています。 Kaizen.io では、ConversionOptions 内にネストされた HeaderOptions および FooterOptions オブジェクトが必要であり、各オブジェクトには HtmlContent プロパティが必要です。IronPDFは、専用の LeftText、および RightText プロパティを使用して、よりクリーンな TextHeader および TextFooter 構成を提供します。
重要な注意:プレースホルダーの構文が異なります。 Kaizen.io は合計ページ数に {total} を使用し、IronPDFは{total-pages} を使用します。 これは最も一般的な移行の問題です。コードベースで {total} を検索し、{total-pages} に置き換えてください。
IronPDF の RenderUrlAsPdf() メソッドは、Chromium エンジンを介して完全なJavaScript実行で任意の URL を直接レンダリングします。回避策は必要ありません。 URLからPDFへの変換とヘッダーとフッターについては、こちらをご覧ください。
重要な移行に関する注意事項
プレースホルダーの構文の変更
ヘッダーとフッターを移行する際に最も重要な変更は、プレースホルダーの構文です:
// Kaizen.io placeholders:
"Page {page} of {total}"
//IronPDFplaceholders:
"Page {page} of {total-pages}"
// Kaizen.io placeholders:
"Page {page} of {total}"
//IronPDFplaceholders:
"Page {page} of {total-pages}"
' Kaizen.io placeholders:
"Page {page} of {total}"
' IronPDF placeholders:
"Page {page} of {total-pages}"
完全なプレースホルダ・マッピング:。
{page}→{page}(同じ){total}→{total-pages}(違います!){title}→{html-title}(違います!){date}→{date}(同じ){time}→{time}(同じ)
返品タイプの変更
Kaizen.io は byte[] を直接返します。IronPDFはPdfDocument オブジェクトを返します:
// Kaizen.io returns byte[]
byte[] pdfBytes = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdfBytes);
//IronPDFreturns PdfDocument
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf"); // Direct save
byte[] bytes = pdf.BinaryData; // Or get bytes if needed
// Kaizen.io returns byte[]
byte[] pdfBytes = converter.Convert(html);
File.WriteAllBytes("output.pdf", pdfBytes);
//IronPDFreturns PdfDocument
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf"); // Direct save
byte[] bytes = pdf.BinaryData; // Or get bytes if needed
' Kaizen.io returns byte()
Dim pdfBytes As Byte() = converter.Convert(html)
File.WriteAllBytes("output.pdf", pdfBytes)
' IronPDF returns PdfDocument
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf") ' Direct save
Dim bytes As Byte() = pdf.BinaryData ' Or get bytes if needed
APIキー管理の削除
Kaizen.ioは、リクエストごとのAPIキー認証が必要です。 IronPdfはアプリケーション起動時に一度だけ設定されたライセンスキーを使用します:
// DELETE this Kaizen.io pattern:
var converter = new HtmlToPdfConverter("YOUR_API_KEY");
// IronPDF: Set once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer(); // No API key needed
// DELETE this Kaizen.io pattern:
var converter = new HtmlToPdfConverter("YOUR_API_KEY");
// IronPDF: Set once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer(); // No API key needed
' DELETE this Kaizen.io pattern:
Dim converter = New HtmlToPdfConverter("YOUR_API_KEY")
' IronPDF: Set once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer = New ChromePdfRenderer() ' No API key needed
ネットワーク エラー処理の削除
リトライロジック、レートリミットの処理、ネットワークタイムアウトコードは削除してください-IronPDFはローカルで処理します:
// DELETE this Kaizen.io pattern:
int retries = 3;
while (retries > 0)
{
try
{
return converter.Convert(html);
}
catch (RateLimitException)
{
retries--;
Thread.Sleep(1000);
}
}
// IronPDF: Just call the method
return renderer.RenderHtmlAsPdf(html).BinaryData;
// DELETE this Kaizen.io pattern:
int retries = 3;
while (retries > 0)
{
try
{
return converter.Convert(html);
}
catch (RateLimitException)
{
retries--;
Thread.Sleep(1000);
}
}
// IronPDF: Just call the method
return renderer.RenderHtmlAsPdf(html).BinaryData;
' DELETE this Kaizen.io pattern:
Dim retries As Integer = 3
While retries > 0
Try
Return converter.Convert(html)
Catch ex As RateLimitException
retries -= 1
Thread.Sleep(1000)
End Try
End While
' IronPDF: Just call the method
Return renderer.RenderHtmlAsPdf(html).BinaryData
トラブルシューティング
問題 1: HtmlToPdfConverter が見つかりません
問題: HtmlToPdfConverter クラスはIronPDFに存在しません。
解決策: ChromePdfRenderer に置き換えます。
// Kaizen.io
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
// Kaizen.io
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
' Kaizen.io
Dim converter As New HtmlToPdfConverter()
' IronPDF
Dim renderer As New ChromePdfRenderer()
課題2: ConversionOptionsが見つかりません
問題: ConversionOptions クラスはIronPDFに存在しません。
解決策:レンダラーで RenderingOptions を使用します。
// Kaizen.io
var options = new ConversionOptions { PageSize = PageSize.A4 };
converter.Convert(html, options);
// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderHtmlAsPdf(html);
// Kaizen.io
var options = new ConversionOptions { PageSize = PageSize.A4 };
converter.Convert(html, options);
// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderHtmlAsPdf(html);
' Kaizen.io
Dim options As New ConversionOptions With {.PageSize = PageSize.A4}
converter.Convert(html, options)
' IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderHtmlAsPdf(html)
課題3:ページ番号が機能しない
問題:フッターにページ数ではなくリテラル {total} が表示されます。
解決策:プレースホルダー構文を更新します。
// Kaizen.io syntax (won't work)
"Page {page} of {total}"
//IronPDFsyntax
"Page {page} of {total-pages}"
// Kaizen.io syntax (won't work)
"Page {page} of {total}"
//IronPDFsyntax
"Page {page} of {total-pages}"
課題4: 変換メソッドが見つかりません
問題: Convert() メソッドは ChromePdfRenderer には存在しません。
解決策: RenderHtmlAsPdf() を使用します。
// Kaizen.io
var pdfBytes = converter.Convert(html);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var pdfBytes = pdf.BinaryData;
// Kaizen.io
var pdfBytes = converter.Convert(html);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var pdfBytes = pdf.BinaryData;
' Kaizen.io
Dim pdfBytes = converter.Convert(html)
' IronPDF
Dim pdf = renderer.RenderHtmlAsPdf(html)
Dim pdfBytes = pdf.BinaryData
課題5:最初のレンダリングが遅い
問題:最初の PDF 生成には 1 ~ 3 秒かかります。
解決策:IronPDFは、初めて使用するときに Chromium を初期化します。 アプリケーション起動時のウォームアップ
// In Program.cs or Startup.cs:
new ChromePdfRenderer().RenderHtmlAsPdf("<html></html>");
// In Program.cs or Startup.cs:
new ChromePdfRenderer().RenderHtmlAsPdf("<html></html>");
' In Program.vb or Startup.vb:
Call New ChromePdfRenderer().RenderHtmlAsPdf("<html></html>")
移行チェックリスト
移行前
- Kaizen.io のすべての
usingステートメントを識別します - ドキュメント
ConversionOptions使用された設定 - ノートのヘッダー/フッターテンプレートとプレースホルダー
- APIキーの場所を一覧表示する(削除対象)
- 再試行/レート制限ロジックを確認する(削除する)
- IronPDFライセンスキーを取得する
パッケージの変更
Kaizen.HtmlToPdfパッケージを削除しますIronPdfNuGetパッケージをインストールします:dotnet add package IronPdf- 名前空間のインポートを更新する
コードの変更
- 起動時にライセンスキー設定を追加する
HtmlToPdfConverterをChromePdfRendererに置き換えますConversionOptionsをRenderingOptionsに変換しますConvert()をRenderHtmlAsPdf()に更新しますConvertUrl()をRenderUrlAsPdf()に更新します- プレースホルダー構文を更新 (
{total}→{total-pages}) File.WriteAllBytes()をpdf.SaveAs()に置き換えます- APIキー設定を削除する
- 再試行/レート制限ロジックを削除
- API呼び出しのネットワークエラー処理を削除
テスティング
- すべてのPDF生成パスをテストする
- ヘッダー/フッターのレンダリングを確認する
- プレースホルダーのレンダリングを確認する
- 余白とページサイズを検証する
- オフライン機能をテストする (新機能!)
- ベンチマークパフォーマンスの向上
移行後
- 設定からKaizen.io APIキーを削除する
- 環境変数を更新する
- レート制限設定を削除する
- 更新監視/アラート

