C#でPDFBoltからIronPDFへ移行する方法
PDFBoltからIronPDFへの移行:完全なC#移行ガイド
PDFBoltからIronPDFへの移行は、あなたの.NET PDFワークフローを、外部ドキュメント処理によるクラウドオンリーのSaaSサービスから、完全なデータプライバシーと無制限のローカル生成によるセルフホストライブラリに移行します。 このガイドは、PDFBoltが提供できないPDF操作機能へのアクセスを得ながら、ネットワーク依存、使用制限、外部データ転送を排除する、包括的でステップバイステップの移行パスを提供します。
なぜPDFBoltからIronPDFへ移行するのか
クラウドのみの問題
PDFBoltは、外部サーバーでドキュメントを処理するクラウド専用のSaaSプラットフォームです。 迅速なプロトタイプには便利ですが、このアーキテクチャーは本番アプリケーションには大きな課題をもたらします:
1.クラウドのみの処理:すべてのドキュメントは外部サーバーを通過します。
2.データプライバシーリスク:機密文書(契約書、医療記録、財務データ)を外部に送信する必要があります。 機密情報を扱う企業には、正当な懸念があります。
3.利用制限: 無料ティアでは、1ヶ月あたり100ドキュメントが上限です。 本番作業では、ドキュメントごとに料金を支払う必要があります。
4.ネットワーク依存: インターネットの停止やPDFBoltのダウンタイムは、PDF生成が完全に停止することを意味します。
5.レイテンシー:ネットワークのラウンドトリップは、ローカル処理と比較して、すべての変換に数秒を追加します。
6.コンプライアンス問題:GDPR、HIPAA、SOC2監査は、外部文書処理によって複雑になります。
7.APIキーのセキュリティ:APIキーが流出すると、アカウントに課金される不正使用につながる可能性があります。
8.ベンダーロックイン: PDFBoltが条件を変更したり、シャットダウンしたりすると、アプリケーションは失敗します。
PDFBoltとIronPDFの比較
| 懸念事項 | PDFBolt | IronPDF |
|---|---|---|
| データロケーション | 外部サーバー | サーバーのみ |
| 使用制限 | 100ドル(無料)、その後1ドキュメントあたり | 無制限 |
| インターネットが必要です。 | はい、常に | なし |
| レイテンシーについて | ネットワーク往復 | ミリ秒 |
| コンプライアンス。 | 複雑(外部処理) | シンプル(ローカル処理) |
| コストモデル | ドキュメント単位 | 単発または年間 |
| オフライン操作。 | 不可能 | 完全サポート |
| APIの主なリスク | リーク = 課金 | ライセンスキー、課金リスクなし |
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 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";IRON VB CONVERTER ERROR developers@ironsoftware.comPDFBoltの使い方を特定する
# 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(). | メインレンダラー |
| <コード>ページサイズ</コード | <コード>PdfPaperSize</コード | 用紙サイズの列挙 |
| (byte[]を返す) | <コード>PdfDocument</コード | リッチドキュメントオブジェクト |
変換メソッドのマッピング
| PDFBolt | IronPDF | ノート |
|---|---|---|
converter.ConvertHtmlString(html). | renderer.RenderHtmlAsPdf(html). | PdfDocument を返します。 |
converter.ConvertUrl(url). | renderer.RenderUrlAsPdf(url)のようにします。 | PdfDocument を返します。 |
出力メソッドのマッピング
| 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<//code>. | 単位:ミリメートル |
converter.MarginBottom = 20. | renderer.RenderingOptions.MarginBottom = 20<//code>. | 単位:ミリメートル |
converter.MarginLeft = 15. | renderer.RenderingOptions.MarginLeft = 15<//code>. | 単位:ミリメートル |
converter.MarginRight = 15. | renderer.RenderingOptions.MarginRight = 15<//code>. | 単位:ミリメートル |
ヘッダー/フッター プレースホルダー マッピング
| PDFBolt | IronPDF | ノート |
|---|---|---|
| <コード>{ページ番号}</コード | <コード>{ページ}</コード | 現在のページ |
{totalPages}<//code> | <コード>{総ページ数}</コード | 総ページ数 |
{date}<//code> | {date}<//code> | 同じ |
| <コード>{タイトル}</コード | {html-title}<//code> | 文書タイトル |
コード移行の例
例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);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(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");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comここでの基本的な違いは、戻り値の型と保存パターンです。 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);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(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");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comURL変換のための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);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(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");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comこの例は、ページ構成の違いを示しています。 PDFBoltは、コンバーターオブジェクトに直接プロパティを設定します(converter.PageSize, converter.MarginTop)。 IronPDFはレンダラー上でRenderingOptionsオブジェクトを使用します(renderer.RenderingOptions.PaperSize, 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;IRON VB CONVERTER ERROR developers@ironsoftware.comクラス名の変更
主なクラス名は、コンバーターに焦点を当てたものからレンダラーに焦点を当てたものに変わります:
// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();// PDFBolt
var converter = new HtmlToPdfConverter();
// IronPDF
var renderer = new ChromePdfRenderer();IRON VB CONVERTER ERROR developers@ironsoftware.com構成パターンの変更
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;IRON VB CONVERTER ERROR developers@ironsoftware.comAPIキー消去
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();IRON VB CONVERTER ERROR developers@ironsoftware.comネットワーク エラー処理の削除
ローカル処理のため、ネットワークエラーが発生しません:
// 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 entirelyIRON VB CONVERTER ERROR developers@ironsoftware.com新しい機能が利用可能です。
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");IRON VB CONVERTER ERROR developers@ironsoftware.comトラブルシューティング
問題 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();IRON VB CONVERTER ERROR developers@ironsoftware.com問題 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);IRON VB CONVERTER ERROR developers@ironsoftware.com課題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);IRON VB CONVERTER ERROR developers@ironsoftware.com問題 4: PageSize Enum が見つかりません
.問題:PageSize列挙型が存在しません。
ソリューション: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;IRON VB CONVERTER ERROR developers@ironsoftware.com課題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>");IRON VB CONVERTER ERROR developers@ironsoftware.com移行チェックリスト
移行前
- [ ] コードベース内のすべてのPDFBoltの使い方をインベントリ化する。
- [現在のページ構成設定(PageSize、マージン)を文書化する。)
- [削除すべきAPIキー管理コードの特定
- [ ] 削除する料金制限やネットワークエラー処理をリストアップしてください。
- [IronPDF ライセンスキーの取得
パッケージの変更
- [ ]
PDFBoltNuGet パッケージを削除する。 - [ ]
IronPdfNuGetパッケージをインストールします:dotnet add package IronPdfNuGetパッケージをインストールします。 - [
using IronPdf;名前空間を追加してください。 - [
using IronPdf.Rendering;for paper size enumsを追加してください。
コードの変更
- [ ] 起動時にライセンスキー設定を追加する
- [ ]
HtmlToPdfConverterをChromePdfRendererに置き換えてください。 - [ ]
ConvertHtmlString()をRenderHtmlAsPdf()に置き換えてください。 - [ ]
ConvertUrl()をRenderUrlAsPdf()に置き換えてください。 - [ ]
File.WriteAllBytes()をpdf.SaveAs()に置き換えてください。 - [ ]
PageSizeをRenderingOptions.PaperSizeに更新してください。 - [ ] marginプロパティを
RenderingOptions.MarginTopなどに更新してください。 - [API キー管理コードの削除
- [料金制限処理コードの削除
- [ネットワークエラー処理の削除
移行後
- [設定ファイルからAPIキーを削除する
- [ ] シークレットマネージャーからAPIキーを削除する
- [PDF 出力を比較するすべてのテストを実行してください。
- [ページサイズと余白が正しく表示されることを確認してください。
- [新しい機能(透かし、セキュリティ、マージ)の追加を検討してください。)
結論
PDFBoltからIronPDFに移行することで、PDF生成は外部のクラウドサービスからローカル処理に移行し、データプライバシーの懸念、使用制限、ネットワーク依存がなくなります。 移行は、PDFBoltが提供できないPDF操作機能を追加しながら、無制限のローカル生成で有料ドキュメントモデルを置き換えます。
この移行における主な変更点は以下のとおりです: 1.データの場所: 外部サーバー → あなたのサーバーのみ 2.用途:ドキュメントごとの制限 → 無制限 3.クラス:HtmlToPdfConverter → ChromePdfRenderer 4.メソッド:ConvertHtmlString()/ConvertUrl() → RenderHtmlAsPdf()/RenderUrlAsPdf()。 5.出力:byte[] + File.WriteAllBytes() → PdfDocument.SaveAs(). 6.コンフィグ:直接プロパティ → RenderingOptionsプロパティ 7.認証:リクエストごとにAPIキー → 起動時に一度だけライセンスキー
IronPDFドキュメント、チュートリアル、APIリファレンスをご覧いただき、PDFBoltへの移行を加速させてください。






