移行ガイド C#でGrabzItからIronPDFに移行する方法 カーティス・チャウ 公開日:2026年1月25日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る GrabzItからIronPDFへの移行は、コールバックが複雑なクラウドベースのスクリーンショットキャプチャサービスから、選択可能で検索可能なテキストを含む真のベクターPDFを生成するインプロセスライブラリへと、あなたの.NET PDFワークフローを変えます。 このガイドでは、プロの.NET開発者向けに、外部サーバーへの依存、コールバックハンドラ、キャプチャごとの価格設定を排除した、包括的でステップバイステップの移行パスを提供します。 なぜGrabzItからIronPDFへ移行するのか GrabzItアーキテクチャの問題 GrabzItは、クラウドベースのスクリーンショットとPDFキャプチャサービスです。迅速な統合には便利ですが、基本的なアーキテクチャ上の制限があります: 1.画像ベースの PDF:GrabzItは、テキストを選択できないスクリーンショットベースの PDF (基本的には PDF 形式でラップされた画像) を作成します。 これは、テキスト操作やアクセシビリティを必要とするあらゆるユースケースにおける基本的な制限です。 2.外部処理:すべてのコンテンツは処理のためにGrabzItのサーバーに送信されるため、機密データのプライバシーとコンプライアンスに関する懸念が生じます。 お客様のHTMLコンテンツは、お客様のインフラストラクチャから離脱します。 3.コールバックの複雑さ:GrabzItは、Webhook 処理インフラストラクチャを必要とする非同期コールバック モデルを使用します。 結果を受け取るためにエンドポイントを設定する必要があり、アーキテクチャが複雑になります。 4.キャプチャごとの価格設定:使用量に応じた支払いモデルは規模が大きくなると高額になる可能性があります。 PDFの生成にはコストがかかります。 5.テキスト検索なし: PDF は画像ベースであるため、OCR なしではテキスト検索と抽出は機能しません。つまり、追加の手順とコストがかかります。 6.ファイル サイズが大きい:画像ベースの PDF はベクターベースの PDF よりも大幅に大きく、5 ~ 10 倍になることもあります。 7.ネットワーク依存性:インターネット接続がないと PDF を生成できないため、オフライン シナリオは不可能になります。 8.遅延: PDF を生成するたびに外部サーバーへのネットワーク ラウンドトリップが必要となり、500 ミリ秒~ 5 秒の遅延が発生します。 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を取得 始める前に 前提条件 .NETバージョン: IronPDFは.NET Framework 4.6.2以降および.NET Core 3.1以降 / .NET 5/6/7/8/9以降をサポートしています。 2.ライセンスキー: ironpdf.comからIronPDFライセンスキーを取得します。 3.インフラストラクチャの削除を計画する:廃止のためのコールバックハンドラーとWebhookエンドポイントを文書化する すべての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" . SHELL 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 SHELL クイック スタート マイグレーション ステップ 1: ライセンス構成の更新 翻訳前 (GrabzIt): GrabzItは、クライアントのインスタンス化ごとにアプリケーションキーとシークレットを必要とします: var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET"); var grabzIt = new GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET"); $vbLabelText $csharpLabel 翻訳後(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(); $vbLabelText $csharpLabel ステップ 2: 名前空間インポートを更新する // Before (GrabzIt) using GrabzIt; using GrabzIt.Parameters; // After (IronPDF) using IronPdf; // Before (GrabzIt) using GrabzIt; using GrabzIt.Parameters; // After (IronPDF) using IronPdf; $vbLabelText $csharpLabel 完全な 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)<code> 該当なし コールバック不要 GetStatus(id) 該当なし 同期操作 PDFOptionsからRenderingOptionsへのマッピング GrabzIt PDFオプション IronPDF プロパティ ノート ページサイズ (A4, レター) RenderingOptions.PaperSize PdfPaperSize列挙型を使用してください。 カスタムID 該当なし 不要 マージントップ RenderingOptions.MarginTop。 同じ単位(mm) マージンボトム RenderingOptions.MarginBottom。 同じ単位(mm) ImageOptionsからIronPDFへのマッピング GrabzIt ImageOptions IronPDF 同等物 ノート フォーマット</code> (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"); } } $vbLabelText $csharpLabel 翻訳後(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"); } } $vbLabelText $csharpLabel この違いは大きい: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"); } } $vbLabelText $csharpLabel 翻訳後(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"); } } $vbLabelText $csharpLabel GrabzItは、オプションオブジェクトを通して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"); } } $vbLabelText $csharpLabel 翻訳後(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); } } $vbLabelText $csharpLabel GrabzItは、フォーマット、幅、高さを設定するための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. $vbLabelText $csharpLabel 移行後、すべての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! $vbLabelText $csharpLabel 詳細については、テキスト抽出ドキュメントを参照してください。 ファイルサイズの縮小 ベクターベースの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_SECRET $vbLabelText $csharpLabel IronPDFはアプリケーション起動時に設定される単一のライセンスキーを使用します。 トラブルシューティング 問題 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(); $vbLabelText $csharpLabel 問題2: PDFOptionsが見つかりません 問題:IronPDFにPDFOptionsクラスが存在しません。 解決策: 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; $vbLabelText $csharpLabel 問題 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); $vbLabelText $csharpLabel 移行チェックリスト 移行前 コードベース内のすべてのGrabzIt API呼び出しをインベントリする コールバックハンドラーとWebhookエンドポイントを識別する 現在のGrabzItのオプションとテンプレートを文書化する IronPDFライセンスキーを取得する コールバックハンドラーの廃止を計画する コードの移行 IronPdf NuGet パッケージをインストールします: dotnet add package IronPdf -GrabzItNuGet パッケージを削除します: dotnet remove package GrabzIt GrabzItClient ChromePdfRendererに置き換える HTMLToPDF()をRenderHtmlAsPdf()に変換する URLToPDF()をRenderUrlAsPdf()に変換する Save(callback)をSaveAs(path)に置き換えます PDFOptionsからRenderingOptionsへのオプションの更新 インフラストラクチャの移行 コールバック ハンドラー ファイル ( .ashxなど) を削除します。 設定からGrabzIt APIキーを削除する Webhook URL 設定を削除する IronPDFライセンスキーを設定に追加 ポーリング/ステータスチェックコードを削除する テスティング HTMLからPDFへの変換テスト URLからPDFへの変換テスト 出力PDFでテキストが選択可能であることを確認する テキスト抽出が機能するかテストする(OCRなし) ファイルサイズが小さいことを確認する ネットワーク遅延のないパフォーマンステスト 移行後 GrabzItサブスクリプションをキャンセルする アーカイブコールバックハンドラコード ドキュメントの更新 GrabzIt関連のエラーを監視する カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む 公開日 2026年2月1日 C#でScryber.CoreからIronPDFに移行する方法 この完全なC#ガイドでScryber.CoreからIronPDFへの移行をマスターしてください。カスタムXML/HTMLパースから最新のChromiumレンダラーに切り替えます。HTML変換、URLレンダリング、独自のバインディングを置き換えるコード例を含みます。 詳しく読む 公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む C#でHiQPdfからIronPDFに移行する方法C#でGotenbergからIronPDFに移...
公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む
公開日 2026年2月1日 C#でScryber.CoreからIronPDFに移行する方法 この完全なC#ガイドでScryber.CoreからIronPDFへの移行をマスターしてください。カスタムXML/HTMLパースから最新のChromiumレンダラーに切り替えます。HTML変換、URLレンダリング、独自のバインディングを置き換えるコード例を含みます。 詳しく読む
公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む