C#でPDFBoltからIronPDFへ移行する方法
PDFBoltからIronPDFへの移行は、あなた for .NET PDFワークフローを、外部ドキュメント処理によるクラウドオンリーのSaaSサービスから、完全なデータプライバシーと無制限のローカル生成によるセルフホストライブラリに移行します。 このガイドは、PDFBoltが提供できないPDF操作機能へのアクセスを得ながら、ネットワーク依存、使用制限、外部データ転送を排除する、包括的でステップバイステップの移行パスを提供します。
なぜPDFBoltからIronPDFへ移行するのか
クラウドのみの問題
PDFBoltは、外部サーバーでドキュメントを処理するクラウド専用のSaaSプラットフォームです。 迅速なプロトタイプには便利ですが、このアーキテクチャーは本番アプリケーションには大きな課題をもたらします:
1.クラウドのみの処理:すべてのドキュメントは外部サーバーを経由します。セルフホストのオプションは利用できないため、データとプロセスをより細かく制御する必要がある企業の妨げになる可能性があります。
2.データ プライバシーのリスク:機密文書 (契約書、医療記録、財務データ) を外部に送信する必要があります。 機密情報を扱う企業には、正当な懸念があります。
3.使用制限:無料利用枠は 1 か月あたり 100 ドキュメントまでに制限されており、大規模な企業には不十分な可能性があります。 本番作業では、ドキュメントごとに料金を支払う必要があります。
4.ネットワーク依存性:インターネットの停止やPDFBoltのダウンタイムが発生すると、PDF の生成が完全に停止します。
5.レイテンシ:ネットワークの往復により、ローカル処理と比較して、すべての変換に数秒が追加されます。
6.コンプライアンスの問題: GDPR、HIPAA、SOC2 監査は、外部の文書処理によって複雑になります。
- API キーのセキュリティ:漏洩した API キーにより、不正使用による料金がアカウントに請求される可能性があります。
8.ベンダー ロックイン:PDFBoltが利用規約を変更したり、サービスを停止したりした場合、アプリケーションは失敗します。
PDFBoltとIronPDFの比較
| 懸念事項 | PDFBolt | IronPDF |
|---|---|---|
| データロケーション | 外部サーバー | サーバーのみ |
| 使用制限 | 100ドル(無料)、その後1ドキュメントあたり | 無制限 |
| インターネットが必要です。 | はい、常に | なし |
| レイテンシーについて | ネットワーク往復 | ミリ秒 |
| コンプライアンス。 | 複雑(外部処理) | シンプル(ローカル処理) |
| コストモデル | ドキュメント単位 | 単発または年間 |
| オフライン操作。 | 不可能 | 完全サポート |
| APIの主なリスク | リーク = 課金 | ライセンスキー、課金リスクなし |
2025年と2026年まで.NET 10とC# 14の導入を計画しているチームにとって、IronPDFは完全なデータプライバシーを保証し、外部クラウドサービスへの依存を排除するセルフホスト基盤を提供します。
始める前に
前提条件
- .NET環境: .NET Framework 4.6.2+ または.NET Core 3.1+ / .NET 5/6/7/8/9+
- NuGetアクセス: NuGetパッケージをインストールする機能
- IronPDFライセンス: IronPDFからライセンスキーを取得します。
NuGetパッケージの変更
# Remove PDFBolt
dotnet remove package PDFBolt
# Install IronPDF
dotnet add package IronPdf
# Remove PDFBolt
dotnet remove package PDFBolt
# 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"
PDFBoltの使い方を特定する
# Find allPDFBoltreferences
grep -r "PDFBolt\|HtmlToPdfConverter\|ConvertHtmlString\|ConvertUrl" --include="*.cs" .
# Find API key references
grep -r "PDFBOLT\|ApiKey" --include="*.cs" --include="*.json" --include="*.config" .
# Find allPDFBoltreferences
grep -r "PDFBolt\|HtmlToPdfConverter\|ConvertHtmlString\|ConvertUrl" --include="*.cs" .
# Find API key references
grep -r "PDFBOLT\|ApiKey" --include="*.cs" --include="*.json" --include="*.config" .
完全な API リファレンス
コア クラス マッピング
| PDFBolt | IronPDF |
|---|---|
new HtmlToPdfConverter() |
new ChromePdfRenderer() |
PageSize |
PdfPaperSize |
| (byte[]を返す) | PdfDocument |
変換メソッドのマッピング
| PDFBolt | IronPDF |
|---|---|
converter.ConvertHtmlString(html) |
renderer.RenderHtmlAsPdf(html) |
converter.ConvertUrl(url) |
renderer.RenderUrlAsPdf(url) |
出力メソッドのマッピング
| PDFBolt | IronPDF |
|---|---|
File.WriteAllBytes(path, pdf) |
pdf.SaveAs(path) |
| (pdfはbyte[]です)。 | pdf.BinaryData |
| (マニュアルの流れ) | pdf.Stream |
ページ構成マッピング
| PDFBolt | IronPDF |
|---|---|
converter.PageSize = PageSize.A4 |
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4 |
converter.MarginTop = 20 |
renderer.RenderingOptions.MarginTop = 20 |
converter.MarginBottom = 20 |
renderer.RenderingOptions.MarginBottom = 20 |
converter.MarginLeft = 15 |
renderer.RenderingOptions.MarginLeft = 15 |
converter.MarginRight = 15 |
renderer.RenderingOptions.MarginRight = 15 |
ヘッダー/フッター プレースホルダー マッピング
| PDFBolt | IronPDF |
|---|---|
{pageNumber} |
{page} |
{totalPages} |
{total-pages} |
{date} |
{date} |
{title} |
{html-title} |
コード移行の例
例1: 基本的なHTMLからPDFへ
翻訳前 (PDFBolt):
// NuGet: Install-Package PDFBolt
using PDFBolt;
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.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
// NuGet: Install-Package PDFBolt
using PDFBolt;
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.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
Imports PDFBolt
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.ConvertHtmlString(html)
File.WriteAllBytes("output.pdf", pdf)
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
ここでの基本的な違いは、戻り値の型と保存パターンです。PDFBoltの HtmlToPdfConverter.ConvertHtmlString() は byte[] を返します。これは、File.WriteAllBytes() を使用して手動でディスクに書き込む必要があります。 これには、System.IO をインポートし、ファイル操作を自分で処理する必要があります。
IronPDF の ChromePdfRenderer.RenderHtmlAsPdf() は、組み込みの SaveAs() メソッドを持つ PdfDocument オブジェクトを返します。 このオブジェクト指向のアプローチは、保存する前にPDFを操作(透かしを追加したり、文書をマージしたり、セキュリティを追加したり)できるという、さらなる利点を提供します。 既存のコードとの互換性のために生のバイトが必要な場合は、pdf.BinaryData を使用します。 その他のレンダリングオプションについては、HTML to PDF documentationを参照してください。
例2: URLからPDFへの変換
翻訳前 (PDFBolt):
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var pdf = converter.ConvertUrl("https://www.example.com");
File.WriteAllBytes("webpage.pdf", pdf);
}
}
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
var pdf = converter.ConvertUrl("https://www.example.com");
File.WriteAllBytes("webpage.pdf", pdf);
}
}
Imports PDFBolt
Imports System.IO
Class Program
Shared Sub Main()
Dim converter = New HtmlToPdfConverter()
Dim pdf = converter.ConvertUrl("https://www.example.com")
File.WriteAllBytes("webpage.pdf", pdf)
End Sub
End Class
翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
pdf.SaveAs("webpage.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End Class
URL 変換のPDFBoltパターンは、HTML 変換と同じアプローチに従います。ConvertUrl() は byte[] を返し、保存には File.WriteAllBytes() が必要です。 PDFBoltは、すでにURLから取得しているにもかかわらず、サーバーへのネットワークラウンドトリップが必要であることに注意してください。
IronPDF の RenderUrlAsPdf() メソッドは、組み込みの SaveAs() メソッドを使用して PdfDocument を返します。 ここでの重要な利点は、IronPdfがURLフェッチとPDFレンダリングをローカルで行うことです。 この単純なケースでは、 IronPDFバージョンでは using System.IO; も必要ないことに注意してください。 URLからPDFへの変換の詳細については、こちらをご覧ください。
例3: カスタムページ設定のHTMLファイル
翻訳前 (PDFBolt):
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
converter.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
// NuGet: Install-Package PDFBolt
using PDFBolt;
using System.IO;
class Program
{
static void Main()
{
var converter = new HtmlToPdfConverter();
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
converter.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
}
}
Imports PDFBolt
Imports System.IO
Class Program
Shared Sub Main()
Dim converter As New HtmlToPdfConverter()
converter.PageSize = PageSize.A4
converter.MarginTop = 20
converter.MarginBottom = 20
Dim html As String = File.ReadAllText("input.html")
Dim pdf As Byte() = converter.ConvertHtmlString(html)
File.WriteAllBytes("output.pdf", pdf)
End Sub
End Class
翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System.IO;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
renderer.RenderingOptions.MarginBottom = 20;
var html = File.ReadAllText("input.html");
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System.IO
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 20
renderer.RenderingOptions.MarginBottom = 20
Dim html = File.ReadAllText("input.html")
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
この例は、ページ構成の違いを示しています。PDFBoltはコンバーター オブジェクトに直接プロパティを設定します (converter.MarginTop)。IronPDFはレンダラーで RenderingOptions オブジェクト (renderer.RenderingOptions.MarginTop) を使用します。
主なマッピング
PageSize.A4→PdfPaperSize.A4(異なる列挙名)MarginTop = 20→RenderingOptions.MarginTop = 20(RenderingOptions 経由)
どちらもマージン値にはミリメートルを使用しているため、既存のマージン値をそのまま転送する必要があります。 PdfPaperSize 列挙型にアクセスするには、IronPdf.Rendering 名前空間が必要です。 その他のページ設定オプションについては、rendering options documentationを参照してください。
重要な移行に関する注意事項
返品タイプの変更
PDFBolt は直接 byte[] を返します。IronPDFはPdfDocument を返します:
//PDFBoltpattern:
byte[] pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
//IronPDFpattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or if you need bytes:
byte[] pdfBytes = renderer.RenderHtmlAsPdf(html).BinaryData;
//PDFBoltpattern:
byte[] pdf = converter.ConvertHtmlString(html);
File.WriteAllBytes("output.pdf", pdf);
//IronPDFpattern:
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// Or if you need bytes:
byte[] pdfBytes = renderer.RenderHtmlAsPdf(html).BinaryData;
'PDFBoltpattern:
Dim pdf As Byte() = converter.ConvertHtmlString(html)
File.WriteAllBytes("output.pdf", pdf)
'IronPDFpattern:
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
' Or if you need bytes:
Dim pdfBytes As Byte() = renderer.RenderHtmlAsPdf(html).BinaryData
クラス名の変更
主なクラス名は、コンバーターに焦点を当てたものからレンダラーに焦点を当てたものに変わります:
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
' PDFBolt
Dim converter As New HtmlToPdfConverter()
' IronPDF
Dim renderer As New ChromePdfRenderer()
構成パターンの変更
PDFBoltはダイレクトプロパティを使用しています;IronPDFはRenderingOptions を使用します:
// PDFBolt: Direct properties
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
// IronPDF: Via RenderingOptions
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
// PDFBolt: Direct properties
converter.PageSize = PageSize.A4;
converter.MarginTop = 20;
// IronPDF: Via RenderingOptions
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 20;
' PDFBolt: Direct properties
converter.PageSize = PageSize.A4
converter.MarginTop = 20
' IronPDF: Via RenderingOptions
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 20
APIキー消去
PDFBoltでは、リクエストごとのAPIキー管理が必要です; IronPDFは1回限りのライセンスキーを使用します:
// PDFBolt: API key per client (security risk if leaked)
var apiKey = config["PDFBolt:ApiKey"];
var client = new Client(apiKey);
// IronPDF: License key once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
// PDFBolt: API key per client (security risk if leaked)
var apiKey = config["PDFBolt:ApiKey"];
var client = new Client(apiKey);
// IronPDF: License key once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
var renderer = new ChromePdfRenderer();
' PDFBolt: API key per client (security risk if leaked)
Dim apiKey = config("PDFBolt:ApiKey")
Dim client = New Client(apiKey)
' IronPDF: License key once at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Dim renderer = New ChromePdfRenderer()
ネットワーク エラー処理の削除
ローカル処理のため、ネットワークエラーが発生しません:
// PDFBolt: Network error handling required
catch (HttpRequestException ex)
catch (TaskCanceledException)
catch (TimeoutException)
// IronPDF: Remove network-specific catches entirely
// PDFBolt: Network error handling required
catch (HttpRequestException ex)
catch (TaskCanceledException)
catch (TimeoutException)
// IronPDF: Remove network-specific catches entirely
新しい機能が利用可能です
IronPDFに移行すると、PDFBoltでは提供できない機能を得ることができます:
// PDF Merging (not available in PDFBolt)
var merged = PdfDocument.Merge(pdf1, pdf2);
// Watermarks (not available in PDFBolt)
pdf.ApplyWatermark("<h1 style='opacity:0.3;'>DRAFT</h1>");
// Password Protection (not available in PDFBolt)
pdf.SecuritySettings.UserPassword = "secret";
// Text Extraction (not available in PDFBolt)
string text = pdf.ExtractAllText();
// PDF to Images (not available in PDFBolt)
pdf.RasterizeToImageFiles("page_*.png");
// PDF Merging (not available in PDFBolt)
var merged = PdfDocument.Merge(pdf1, pdf2);
// Watermarks (not available in PDFBolt)
pdf.ApplyWatermark("<h1 style='opacity:0.3;'>DRAFT</h1>");
// Password Protection (not available in PDFBolt)
pdf.SecuritySettings.UserPassword = "secret";
// Text Extraction (not available in PDFBolt)
string text = pdf.ExtractAllText();
// PDF to Images (not available in PDFBolt)
pdf.RasterizeToImageFiles("page_*.png");
' PDF Merging (not available in PDFBolt)
Dim merged = PdfDocument.Merge(pdf1, pdf2)
' Watermarks (not available in PDFBolt)
pdf.ApplyWatermark("<h1 style='opacity:0.3;'>DRAFT</h1>")
' Password Protection (not available in PDFBolt)
pdf.SecuritySettings.UserPassword = "secret"
' Text Extraction (not available in PDFBolt)
Dim text As String = pdf.ExtractAllText()
' PDF to Images (not available in PDFBolt)
pdf.RasterizeToImageFiles("page_*.png")
トラブルシューティング
問題 1: HtmlToPdfConverter が見つかりません
問題: HtmlToPdfConverter クラスがIronPDFに存在しません。
解決策: ChromePdfRenderer を使用します。
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();
' PDFBolt
Dim converter As New HtmlToPdfConverter()
' IronPDF
Dim renderer As New ChromePdfRenderer()
問題 2: ConvertHtmlString が見つかりません
問題: ConvertHtmlString() メソッドが存在しません。
解決策: RenderHtmlAsPdf() を使用します。
// PDFBolt
var pdf = converter.ConvertHtmlString(html);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
// PDFBolt
var pdf = converter.ConvertHtmlString(html);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
' PDFBolt
Dim pdf = converter.ConvertHtmlString(html)
' IronPDF
Dim pdf = renderer.RenderHtmlAsPdf(html)
課題3:ConvertUrlが見つかりません
問題: ConvertUrl() メソッドが存在しません。
解決策: RenderUrlAsPdf() を使用します。
// PDFBolt
var pdf = converter.ConvertUrl(url);
// IronPDF
var pdf = renderer.RenderUrlAsPdf(url);
// PDFBolt
var pdf = converter.ConvertUrl(url);
// IronPDF
var pdf = renderer.RenderUrlAsPdf(url);
' PDFBolt
Dim pdf = converter.ConvertUrl(url)
' IronPDF
Dim pdf = renderer.RenderUrlAsPdf(url)
問題 4: PageSize Enum が見つかりません.
問題: PageSize enum が存在しません。
解決策: IronPdf.Rendering から PdfPaperSize を使用します。
// PDFBolt
converter.PageSize = PageSize.A4;
// IronPDF
using IronPdf.Rendering;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
// PDFBolt
converter.PageSize = PageSize.A4;
// IronPDF
using IronPdf.Rendering;
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
' PDFBolt
converter.PageSize = PageSize.A4
' IronPDF
Imports IronPdf.Rendering
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
課題5:最初のPDF生成が遅い
問題:初期レンダリングに予想よりも時間がかかります。
解決策: Chromium エンジンは初回使用時に初期化されます。 必要に応じて、事前にウォームアップしてください:
// Warm up during application startup
var renderer = new ChromePdfRenderer();
renderer.RenderHtmlAsPdf("<html><body></body></html>");
// Warm up during application startup
var renderer = new ChromePdfRenderer();
renderer.RenderHtmlAsPdf("<html><body></body></html>");
' Warm up during application startup
Dim renderer As New ChromePdfRenderer()
renderer.RenderHtmlAsPdf("<html><body></body></html>")
移行チェックリスト
移行前
- コードベース内のすべてのPDFBoltの使用状況をインベントリする
- 現在のページ構成設定(ページサイズ、余白)を文書化する
- 削除するAPIキー管理コードを特定する
- 削除するレート制限またはネットワークエラー処理をリストします
- IronPDFライセンスキーを取得する
パッケージの変更
PDFBoltNuGetパッケージを削除しますIronPdfNuGetパッケージをインストールします:dotnet add package IronPdfusing IronPdf;名前空間を追加- 用紙サイズの列挙に
using IronPdf.Rendering;を追加します
コードの変更
- 起動時にライセンスキー設定を追加する
HtmlToPdfConverterをChromePdfRendererに置き換えますConvertHtmlString()をRenderHtmlAsPdf()に置き換えますConvertUrl()をRenderUrlAsPdf()に置き換えますFile.WriteAllBytes()をpdf.SaveAs()に置き換えますPageSizeをRenderingOptions.PaperSizeに更新します- マージンプロパティを
RenderingOptions.MarginTopなどに更新します。 - APIキー管理コードを削除する
- レート制限処理コードを削除
- ネットワークエラー処理を削除
移行後
- 設定ファイルからAPIキーを削除する
- シークレットマネージャーからAPIキーを削除する
- PDF出力を比較するすべてのテストを実行します
- ページのサイズと余白が正しく表示されることを確認する
- 新しい機能(透かし、セキュリティ、マージ)の追加を検討する

