C#でGrabzItからIronPDFに移行する方法
GrabzItからIronPDFへの移行:完全なC#移行ガイド
GrabzItからIronPDFへの移行は、コールバックが複雑なクラウドベースのスクリーンショットキャプチャサービスから、選択可能で検索可能なテキストを含む真のベクターPDFを生成するインプロセスライブラリへと、あなたの.NET PDFワークフローを変えます。 このガイドでは、プロの.NET開発者向けに、外部サーバーへの依存、コールバックハンドラ、キャプチャごとの価格設定を排除した、包括的でステップバイステップの移行パスを提供します。
なぜGrabzItからIronPDFへ移行するのか
GrabzItアーキテクチャの問題
GrabzItは、クラウドベースのスクリーンショットとPDFキャプチャサービスです。迅速な統合には便利ですが、基本的なアーキテクチャ上の制限があります:
1.画像ベースのPDF:GrabzItは、テキストを選択できないスクリーンショットベースのPDFを作成します。 これは、テキスト操作やアクセシビリティを必要とするあらゆるユースケースにおける基本的な制限です。
2.外部処理:すべてのコンテンツは、処理のためにGrabzItのサーバーに送信されます-機密データのプライバシーとコンプライアンスの懸念を作成します。 お客様のHTMLコンテンツは、お客様のインフラストラクチャから離脱します。
3.コールバックの複雑さ:GrabzItは、Webhook処理インフラストラクチャを必要とする非同期コールバックモデルを使用しています。 結果を受け取るためにエンドポイントを設定する必要があり、アーキテクチャが複雑になります。
4.キャプチャごとの価格設定:使用ごとの課金モデルは、規模が大きくなると高額になる可能性があります。 PDFの生成にはコストがかかります。
5.テキスト検索なし: PDFは画像ベースなので、テキスト検索と抽出はOCRなしでは機能しません。
6.ファイルサイズが大きい: 画像ベースのPDFは、ベクターベースのPDFよりもかなり大きく、5~10倍のサイズになることがよくあります。
7.ネットワーク依存:インターネット接続なしではPDFを生成できないため、オフラインシナリオは不可能です。
8.レイテンシー:PDFを生成するたびに、外部サーバーへのネットワークのラウンドトリップが必要となり、500ms~5sのレイテンシーが追加されます。
GrabzItとIronPDFの比較
| アスペクト | GrabzIt | IronPDF |
|---|---|---|
| PDFタイプ | 画像ベース(スクリーンショット) | 真のベクトルPDF |
| テキストの選択 | 不可 | 全文選択 |
| テキスト検索 | OCRが必要 | ネイティブ検索可能 |
| 処理場所 | 外部サーバー | ローカル/プロセス |
| プライバシー | 外部送信データ | データはローカルのまま |
| 遅延 | ネットワーク・ラウンドトリップ(500ms~5s) | ローカル処理(~100ms) |
| 価格モデル | キャプチャ | 開発者ライセンス |
| オフライン機能 | なし | はい |
| ファイルサイズ | 大規模(画像データ) | 小(ベクトルデータ) |
| 要コールバック | はい(非同期) | いいえ(同期/非同期) |
| CSS/JSサポート | 制限的 | フルChromiumエンジン |
2025年、2026年まで.NET 10とC# 14の採用を計画しているチームにとって、IronPDFは最新の.NETパターンとネイティブに統合されたローカル処理で、将来を見据えた基盤を提供します。
マイグレーションの複雑さの評価
機能別の見積もり作業
| フィーチャー | 移行の複雑さ | ノート |
|---|---|---|
| HTMLからPDFへ | 低レベル | メソッドの直接置換 |
| URLからPDFへ | 低レベル | メソッドの直接置換 |
| HTMLから画像へ | 低レベル | PDFをレンダリングして変換 |
| ページサイズ/余白 | 低レベル | プロパティのマッピング |
| コールバックハンドラ | 低レベル | 完全に削除する |
| 透かし | 低レベル | HTMLベースのアプローチ |
| ヘッダー/フッター | 中規模 | テンプレートからHTMLへの変換 |
| 認証キー | 低レベル | GrabzItのキーを削除する |
パラダイムシフト
このGrabzItの移行における基本的なシフトは、コールバックベースの非同期クラウド処理からプロセス内同期生成への移行です:
GrabzIt: HTMLを送信 → コールバックを待つ → 結果をサーバーから取得
IronPDF: HTMLをレンダリング → すぐにPDFを取得始める前に
前提条件
1..NETバージョン: IronPDFは.NET Framework 4.6.2+と.NET Core 3.1+ / .NET 5/6/7/8/9+をサポートしています。 2.ライセンスキー:ironpdf.comからIronPDFライセンスキーを取得してください。 3.インフラストラクチャの削除を計画してください:廃止のためのコールバックハンドラとウェブフックエンドポイントの文書化
すべてのGrabzItの使用法を特定する。
# FindGrabzItclient usage
grep -r "GrabzItClient\|GrabzIt\." --include="*.cs" .
# Find callback handlers
grep -r "GrabzIt\|grabzit" --include="*.ashx" --include="*.aspx" --include="*.cs" .
# Find configuration
grep -r "APPLICATION_KEY\|APPLICATION_SECRET\|grabzit" --include="*.config" --include="*.json" .# FindGrabzItclient usage
grep -r "GrabzItClient\|GrabzIt\." --include="*.cs" .
# Find callback handlers
grep -r "GrabzIt\|grabzit" --include="*.ashx" --include="*.aspx" --include="*.cs" .
# Find configuration
grep -r "APPLICATION_KEY\|APPLICATION_SECRET\|grabzit" --include="*.config" --include="*.json" .NuGetパッケージの変更
# Remove GrabzIt
dotnet remove package GrabzIt
# Install IronPDF
dotnet add package IronPdf# Remove GrabzIt
dotnet remove package GrabzIt
# Install IronPDF
dotnet add package IronPdfクイック スタート マイグレーション
ステップ 1: ライセンス構成の更新
翻訳前 (GrabzIt):
GrabzItは、クライアントのインスタンス化ごとにアプリケーションキーとシークレットを必要とします:
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
// Then create renderer without credentials
var renderer = new ChromePdfRenderer();// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
// Then create renderer without credentials
var renderer = new ChromePdfRenderer();IRON VB CONVERTER ERROR developers@ironsoftware.comステップ 2: 名前空間インポートを更新する
// Before (GrabzIt)
using GrabzIt;
using GrabzIt.Parameters;
// After (IronPDF)
using IronPdf;// Before (GrabzIt)
using GrabzIt;
using GrabzIt.Parameters;
// After (IronPDF)
using IronPdf;IRON VB CONVERTER ERROR developers@ironsoftware.com完全な API リファレンス
GrabzItClientからIronPDFへのマッピング
| GrabzItメソッド | IronPDF 同等物 | ノート |
|---|---|---|
new GrabzItClient(key, secret). | new ChromePdfRenderer(). | 認証不要 |
HTMLToPDF(html)を使用してください。 | renderer.RenderHtmlAsPdf(html). | PDFを直接返す |
URLToPDF(url)のようにします。 | renderer.RenderUrlAsPdf(url)のようにします。 | PDFを直接返す |
HTMLToImage(html)のようにします。 | <コード>pdf.ToBitmap()</コード | レンダリング→変換 |
Save(callbackUrl)を実行します。 | pdf.SaveAs(path)のようにします。 | 即戦力 |
SaveTo(ファイルパス)。 | pdf.SaveAs(filePath). | 同じ機能 |
| <コード>GetResult(id)<コード></コード | 該当なし | コールバック不要 |
| <コード>GetStatus(id)</コード | 該当なし | 同期操作 |
PDFOptionsからRenderingOptionsへのマッピング。
| GrabzIt PDFオプション | IronPDF プロパティ | ノート |
|---|---|---|
ページサイズ (A4, レター) | <コード>RenderingOptions.PaperSize</コード | PdfPaperSize列挙型を使用してください。 |
| <コード>カスタムID</コード | 該当なし | 不要 |
| <コード>マージントップ</コード | RenderingOptions.MarginTop。 | 同じ単位(mm) |
| <コード>マージンボトム</コード | RenderingOptions.MarginBottom。 | 同じ単位(mm) |
ImageOptionsからIronPDFへのマッピング
| GrabzIt ImageOptions | IronPDF 同等物 | ノート |
|---|---|---|
| <コード>フォーマット</コード> (png, jpg) | bitmap.Save(path, ImageFormat.Png). | ToBitmap()の後 |
| <コード>幅</コード | RenderingOptions.ViewPortWidth。 | ビューポート幅 |
| <コード>高さ</コード | RenderingOptions.ViewPortHeight。 | ビューポートの高さ |
コード移行の例
例1: HTMLからPDFへの変換
翻訳前 (GrabzIt):
// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;
class Program
{
static void Main()
{
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var options = new PDFOptions();
options.CustomId = "my-pdf";
grabzIt.HTMLToPDF("<html><body><h1>Hello World</h1></body></html>", options);
grabzIt.SaveTo("output.pdf");
}
}// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;
class Program
{
static void Main()
{
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var options = new PDFOptions();
options.CustomId = "my-pdf";
grabzIt.HTMLToPDF("<html><body><h1>Hello World</h1></body></html>", options);
grabzIt.SaveTo("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
pdf.SaveAs("output.pdf");
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
pdf.SaveAs("output.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comこの違いは大きい:GrabzItはAPI認証情報(YOUR_APPLICATION_KEY, YOUR_APPLICATION_SECRET)を必要とし、カスタムIDを持つPDFOptionsオブジェクトを作成し、結果は外部サーバーを通して送信される画像ベースのPDFです。 IronPDFのChromePdfRendererは選択可能なテキストを含む真のベクターPDFをローカルに生成します。 その他のレンダリングオプションについては、HTML to PDF documentationを参照してください。
例2: URLからPDFへの変換
翻訳前 (GrabzIt):
// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;
class Program
{
static void Main()
{
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var options = new PDFOptions();
options.PageSize = PageSize.A4;
grabzIt.URLToPDF("https://www.example.com", options);
grabzIt.SaveTo("webpage.pdf");
}
}// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;
class Program
{
static void Main()
{
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var options = new PDFOptions();
options.PageSize = PageSize.A4;
grabzIt.URLToPDF("https://www.example.com", options);
grabzIt.SaveTo("webpage.pdf");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
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;
using System;
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.comGrabzItは、オプションオブジェクトを通してPageSize.A4を設定し、外部サーバーと認証する必要があります。 IronPDFのRenderUrlAsPdf()メソッドはURLを直接受け取り、CSSとJavaScriptを完全にサポートしたChromiumエンジンを使ってローカルにレンダリングします。 URLからPDFへの変換の詳細については、こちらをご覧ください。
例3: HTMLから画像への変換
翻訳前 (GrabzIt):
// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;
class Program
{
static void Main()
{
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var options = new ImageOptions();
options.Format = ImageFormat.png;
options.Width = 800;
options.Height = 600;
grabzIt.HTMLToImage("<html><body><h1>Hello World</h1></body></html>", options);
grabzIt.SaveTo("output.png");
}
}// NuGet: Install-Package GrabzIt
using GrabzIt;
using GrabzIt.Parameters;
using System;
class Program
{
static void Main()
{
var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET");
var options = new ImageOptions();
options.Format = ImageFormat.png;
options.Width = 800;
options.Height = 600;
grabzIt.HTMLToImage("<html><body><h1>Hello World</h1></body></html>", options);
grabzIt.SaveTo("output.png");
}
}IRON VB CONVERTER ERROR developers@ironsoftware.com翻訳後(IronPDF):。
// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Drawing;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
var images = pdf.ToBitmap();
images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Drawing;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>");
var images = pdf.ToBitmap();
images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comGrabzItは、フォーマット、幅、高さを設定するためのImageOptionsを備えた専用のHTMLToImage()メソッドを提供します。 IronPDFはまずRenderHtmlAsPdf()でHTMLをPDFにレンダリングし、次にToBitmap()でビットマップに変換することで同じ結果を得ます。 このアプローチでは、1回のレンダー操作でPDFと画像の両方の出力が得られます。
重要な移行に関する注意事項
コールバックは必要ありません。
最も重要なアーキテクチャの変更は、コールバック・ハンドラを完全に削除することです:
// GrabzIt: Async callback pattern
grabzIt.HTMLToPDF(html, options);
grabzIt.Save("https://myserver.com/grabzit-callback"); // Wait for callback...
// Callback handler (separate endpoint)
public class GrabzItHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string id = context.Request.QueryString["id"];
GrabzItClient grabzIt = new GrabzItClient("APP_KEY", "APP_SECRET");
GrabzItFile file = grabzIt.GetResult(id);
file.Save("output.pdf");
}
}
// IronPDF: Synchronous - result immediately available
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf"); // Done! なし callback needed.// GrabzIt: Async callback pattern
grabzIt.HTMLToPDF(html, options);
grabzIt.Save("https://myserver.com/grabzit-callback"); // Wait for callback...
// Callback handler (separate endpoint)
public class GrabzItHandler : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string id = context.Request.QueryString["id"];
GrabzItClient grabzIt = new GrabzItClient("APP_KEY", "APP_SECRET");
GrabzItFile file = grabzIt.GetResult(id);
file.Save("output.pdf");
}
}
// IronPDF: Synchronous - result immediately available
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf"); // Done! なし callback needed.IRON VB CONVERTER ERROR developers@ironsoftware.com移行後、すべてのGrabzItコールバックハンドラ(.ashxファイル、ハンドラエンドポイント、Webhook設定)を削除してください。
真のベクター PDF
GrabzItは、テキストを選択できない画像ベースのPDFを作成します。 IronPDFは真のベクターPDFを生成します:
// With IronPDF, text extraction works natively
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText(); // Works without OCR!// With IronPDF, text extraction works natively
var pdf = PdfDocument.FromFile("document.pdf");
string text = pdf.ExtractAllText(); // Works without OCR!IRON VB CONVERTER ERROR developers@ironsoftware.com詳細については、テキスト抽出ドキュメントを参照してください。
ファイルサイズの縮小
ベクターベースのPDFは通常、GrabzItの画像ベースのPDFよりも5~10倍小さくなります。 これにより、ストレージコスト、ダウンロード時間、電子メール添付の実現性が向上します。
API認証情報の削除
GrabzItは、すべての操作にAPI認証情報を必要とします:
// Remove these from configuration
// YOUR_APPLICATION_KEY
// YOUR_APPLICATION_SECRET// Remove these from configuration
// YOUR_APPLICATION_KEY
// YOUR_APPLICATION_SECRETIRON VB CONVERTER ERROR developers@ironsoftware.comIronPDFはアプリケーション起動時に設定される単一のライセンスキーを使用します。
トラブルシューティング
問題 1: GrabzItClient が見つかりません。
問題:GrabzIt を削除した後、GrabzItClient参照がコンパイル エラーを引き起こします。
解決策:ChromePdfRendererに置き換えてください:
// Remove:
// var grabzIt = new GrabzItClient("KEY", "SECRET");
// Replace with:
var renderer = new ChromePdfRenderer();// Remove:
// var grabzIt = new GrabzItClient("KEY", "SECRET");
// Replace with:
var renderer = new ChromePdfRenderer();IRON VB CONVERTER ERROR developers@ironsoftware.com問題2: PDFOptionsが見つかりません
問題:PDFOptionsクラスがIronPDFに存在しません。
解決策:RenderingOptionsプロパティを使用します:
// GrabzIt
var options = new PDFOptions();
options.PageSize = PageSize.A4;
// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;// GrabzIt
var options = new PDFOptions();
options.PageSize = PageSize.A4;
// IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;IRON VB CONVERTER ERROR developers@ironsoftware.com問題 3: コールバックハンドラはまだ参照されている
問題:アプリケーションはコールバックエンドポイントを期待します。
解決策:コールバック基盤を完全に削除する。 IronPDFは結果を同期的に返します。
問題4:ImageOptionsが見つかりません
問題:ImageOptionsクラスがIronPDFに存在しません。
解決策:まずPDFにレンダリングし、次に変換します:
// GrabzIt
var options = new ImageOptions();
options.Format = ImageFormat.png;
grabzIt.HTMLToImage(html, options);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var images = pdf.ToBitmap();
images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);// GrabzIt
var options = new ImageOptions();
options.Format = ImageFormat.png;
grabzIt.HTMLToImage(html, options);
// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
var images = pdf.ToBitmap();
images[0].Save("output.png", System.Drawing.Imaging.ImageFormat.Png);IRON VB CONVERTER ERROR developers@ironsoftware.com移行チェックリスト
移行前
- [コードベース内のすべてのGrabzIt APIコールをインベントリ化する。
- [コールバックハンドラとウェブフックエンドポイントの特定
- [現在のGrabzItのオプションとテンプレートの文書化
- [IronPDF ライセンスキーの取得
- [ ] コールバックハンドラの廃止を計画する
コードの移行
- [ ] IronPdf NuGetパッケージをインストールします:
dotnet add package IronPdf<//code>. - [ ]GrabzItNuGet パッケージを削除します:
dotnet remove package GrabzIt. - [ ]
GrabzItClientをChromePdfRendererに置き換えてください。 - [ ]
HTMLToPDF()をRenderHtmlAsPdf()に変換してください。 - [ ]
URLToPDF()をRenderUrlAsPdf()に変換してください。 - [
Save(callback)をSaveAs(path)に置き換えてください。 - [ ]
PDFOptionsからRenderingOptionsにオプションを更新する。
インフラストラクチャの移行
- [ ] コールバックハンドラファイル(
.ashxなど)の削除 - [ ] 設定からGrabzIt APIキーを削除する
- [ウェブフックURL設定の削除
- [設定にIronPDFライセンスキーを追加する
- [ポーリング/ステータスチェックコードの削除
テスティング
- [HTMLからPDFへの変換テスト
- [テストURLからPDFへの変換
- [出力されたPDFでテキストが選択可能であることを確認してください。
- [テキスト抽出のテスト(OCRなし)
- [ファイルサイズが小さいことを確認してください。
- [ネットワーク遅延のないパフォーマンステスト
移行後
- [ ] GrabzItの購読をキャンセルする
- [アーカイブコールバックハンドラコード
- [ドキュメントの更新
- [GrabzIt関連のエラーの監視
結論
GrabzItからIronPDFへの移行は.NETアプリケーションにいくつかの重要な改善をもたらします。 画像ベースのスクリーンショットの代わりに、選択可能で検索可能なテキストを含む真のベクターPDFが得られます。 ローカル処理により、外部サーバーへの依存、プライバシーの懸念、ネットワーク遅延を排除します。 同期APIはコールバックの複雑さを完全に取り除き、ウェブフックハンドラやステータスポーリングのコードを削除します。
この移行における主な変更点は以下のとおりです: 1.PDFタイプ:画像ベースのスクリーンショット → 真のベクターPDF 2.処理: 外部サーバー → ローカル・インプロセス 3.アーキテクチャ:非同期コールバック → 同期結果 4.ファイルサイズ:大きな画像データ → 小さなベクトルデータ 5.テキスト:OCRが必要 → ネイティブ検索可能
IronPDFドキュメント、チュートリアル、APIリファレンスを参照し、GrabzItへの移行を加速させてください。






