C#でGrabzItからIronPDFに移行する方法
GrabzItからIronPDFへの移行は、コールバックが複雑なクラウドベースのスクリーンショットキャプチャサービスから、選択可能で検索可能なテキストを含む真のベクターPDFを生成するインプロセスライブラリへと、あなた for .NET PDFワークフローを変えます。 このガイドでは、プロ for .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は最新 for .NETパターンとネイティブに統合されたローカル処理で、将来を見据えた基盤を提供します。
マイグレーションの複雑さの評価
機能別の見積もり作業
| フィーチャー | 移行の複雑さ |
|---|---|
| HTMLからPDFへ | 低レベル |
| URLからPDFへ | 低レベル |
| HTMLから画像へ | 低レベル |
| ページサイズ/余白 | 低レベル |
| コールバックハンドラ | 低レベル |
| 透かし | 低レベル |
| ヘッダー/フッター | 中規模 |
| 認証キー | 低レベル |
パラダイムシフト
この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から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" .
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");
Dim grabzIt As New GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET")
翻訳後(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();
' Set once at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY"
' Then create renderer without credentials
Dim renderer As New ChromePdfRenderer()
ステップ 2: 名前空間インポートを更新する
// Before (GrabzIt)
using GrabzIt;
using GrabzIt.Parameters;
// After (IronPDF)
using IronPdf;
// Before (GrabzIt)
using GrabzIt;
using GrabzIt.Parameters;
// After (IronPDF)
using IronPdf;
Imports IronPdf
完全な API リファレンス
GrabzItClientからIronPDFへのマッピング
| GrabzItメソッド | IronPDF 同等物 |
|---|---|
new GrabzItClient(key, secret) |
new ChromePdfRenderer() |
HTMLToPDF(html) |
renderer.RenderHtmlAsPdf(html) |
URLToPDF(url) |
renderer.RenderUrlAsPdf(url) |
HTMLToImage(html) |
pdf.ToBitmap() |
Save(callbackUrl) |
pdf.SaveAs(path) |
SaveTo(filePath) |
pdf.SaveAs(filePath) |
GetResult(id) |
該当なし |
GetStatus(id) |
該当なし |
PDFOptionsからRenderingOptionsへのマッピング
| GrabzIt PDFオプション | IronPDF プロパティ |
|---|---|
PageSize (A4、レター) |
RenderingOptions.PaperSize |
CustomId |
該当なし |
MarginTop |
RenderingOptions.MarginTop |
MarginBottom |
RenderingOptions.MarginBottom |
ImageOptionsからIronPDFへのマッピング
| GrabzIt ImageOptions | IronPDF 同等物 |
|---|---|
Format (png, jpg) |
bitmap.Save(path, ImageFormat.Png) |
Width |
RenderingOptions.ViewPortWidth |
Height |
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");
}
}
Imports GrabzIt
Imports GrabzIt.Parameters
Imports System
Module Program
Sub Main()
Dim grabzIt As New GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET")
Dim options As New PDFOptions()
options.CustomId = "my-pdf"
grabzIt.HTMLToPDF("<html><body><h1>Hello World</h1></body></html>", options)
grabzIt.SaveTo("output.pdf")
End Sub
End Module
翻訳後(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");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>")
pdf.SaveAs("output.pdf")
End Sub
End Class
違いは大きく、GrabzIt は API 資格情報 (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");
}
}
Imports GrabzIt
Imports GrabzIt.Parameters
Imports System
Module Program
Sub Main()
Dim grabzIt As New GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET")
Dim options As New PDFOptions()
options.PageSize = PageSize.A4
grabzIt.URLToPDF("https://www.example.com", options)
grabzIt.SaveTo("webpage.pdf")
End Sub
End Module
翻訳後(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");
}
}
Imports IronPdf
Imports System
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End Class
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");
}
}
Imports GrabzIt
Imports GrabzIt.Parameters
Imports System
Module Program
Sub Main()
Dim grabzIt As New GrabzItClient("YOUR_APPLICATION_KEY", "YOUR_APPLICATION_SECRET")
Dim options As 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")
End Sub
End Module
翻訳後(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);
}
}
Imports IronPdf
Imports System
Imports System.Drawing
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1></body></html>")
Dim images = pdf.ToBitmap()
images(0).Save("output.png", System.Drawing.Imaging.ImageFormat.Png)
End Sub
End Class
GrabzIt は、フォーマット、幅、高さの設定用に、専用の HTMLToImage() メソッドと ImageOptions を提供します。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.
' 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
Implements IHttpHandler
Public Sub ProcessRequest(context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim id As String = context.Request.QueryString("id")
Dim grabzIt As New GrabzItClient("APP_KEY", "APP_SECRET")
Dim file As GrabzItFile = grabzIt.GetResult(id)
file.Save("output.pdf")
End Sub
Public ReadOnly Property IsReusable As Boolean Implements IHttpHandler.IsReusable
Get
Return False
End Get
End Property
End Class
' IronPDF: Synchronous - result immediately available
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf") ' Done! No callback needed.
移行後にすべての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!
Imports IronPdf
' With IronPDF, text extraction works natively
Dim pdf = PdfDocument.FromFile("document.pdf")
Dim text As String = pdf.ExtractAllText() ' Works without OCR!
詳細については、テキスト抽出ドキュメントを参照してください。
ファイルサイズの縮小
ベクターベースの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
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();
' Remove:
' Dim grabzIt = New GrabzItClient("KEY", "SECRET")
' Replace with:
Dim renderer = New ChromePdfRenderer()
問題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;
' GrabzIt
Dim options As New PDFOptions()
options.PageSize = PageSize.A4
' IronPDF
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
問題 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);
' GrabzIt
Dim options As New ImageOptions()
options.Format = ImageFormat.png
grabzIt.HTMLToImage(html, options)
' IronPDF
Dim pdf = renderer.RenderHtmlAsPdf(html)
Dim images = pdf.ToBitmap()
images(0).Save("output.png", System.Drawing.Imaging.ImageFormat.Png)
移行チェックリスト
移行前
- コードベース内のすべてのGrabzIt API呼び出しをインベントリする
- コールバックハンドラーとWebhookエンドポイントを識別する
- 現在のGrabzItのオプションとテンプレートを文書化する
- IronPDFライセンスキーを取得する
- コールバックハンドラーの廃止を計画する
コードの移行
-IronPDFNuGetパッケージをインストールします: 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関連のエラーを監視する

