IRONSOFTWAREHOME
ビデオ

C#でIronPDFを使用してPDFをPDF Aに変換する方法

Curtis Chau
Curtis Chau
Updated: 2026年7月19日

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 を生成できないため、オフライン シナリオは不可能になります。

  1. レイテンシ: 各PDF生成には外部サーバーへのネットワークラウンドトリップが必要で、ローカルプロセスでの生成と比べて顕著なレイテンシを追加します。

GrabzItとIronPDFの比較

アスペクトGrabzItIronPDF
PDFタイプ画像ベース(スクリーンショット)真のベクトルPDF
テキストの選択不可全文選択
テキスト検索OCRが必要ネイティブ検索可能
処理場所外部サーバーローカル/プロセス
プライバシー外部送信データデータはローカルのまま
遅延ネットワーク・ラウンドトリップ(500ms~5s)ローカル処理(~100ms)
価格モデルキャプチャ開発者ライセンス
オフライン機能なしはい
ファイルサイズ大規模(画像データ)小(ベクトルデータ)
要コールバックはい(非同期)いいえ(同期/非同期)
CSS/JSサポート制限的フルChromiumエンジン

IronPDFは、最新 for .NETパターンとネイティブに統合され、完全にインプロセスで動作し、PDFパイプラインからクラウドラウンドトリップを排除します。


マイグレーションの複雑さの評価

機能別の見積もり作業

フィーチャー移行の複雑さ
HTMLからPDFへ低レベル
URLからPDFへ低レベル
HTMLから画像へ低レベル
ページサイズ/余白低レベル
コールバックハンドラ低レベル
透かし低レベル
ヘッダー/フッター中規模
認証キー低レベル

パラダイムシフト

このGrabzIt移行における基本的な変化は、非同期コールバックベースのクラウド処理から同期インプロセス生成への変化です。

GrabzIt:   HTMLを送信 → コールバックを待つ → 結果をサーバーから取得
IronPDF:   HTMLをレンダリング → すぐにPDFを取得
Text

始める前に

前提条件

  1. .NET バージョン: IronPDFは.NET Framework 4.6.2+ と.NET Core 3.1+ / .NET 5+ をサポートします。 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" .
SHELL

NuGetパッケージの変更

# 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");

翻訳後(IronPDF):

// Set once at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

// Then create renderer without credentials
var renderer = new ChromePdfRenderer();

ステップ 2: 名前空間インポートを更新する

// Before (GrabzIt)
using GrabzIt;
using GrabzIt.Parameters;

// After (IronPDF)
using 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、Letter)RenderingOptions.PaperSize
CustomId該当なし
MarginTopRenderingOptions.MarginTop
MarginBottomRenderingOptions.MarginBottom

ImageOptionsからIronPDFへのマッピング

GrabzIt ImageOptionsIronPDF 同等物
Format(png、jpg)bitmap.Save(path, ImageFormat.Png)
WidthRenderingOptions.ViewPortWidth
HeightRenderingOptions.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");
    }
}

翻訳後(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");
    }
}

その違いはかなり大きいです: GrabzItはAPIクレデンシャル(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");
    }
}

翻訳後(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");
    }
}

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");
    }
}

翻訳後(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);
    }
}

GrabzItはフォーマット、幅、高さの設定のためにHTMLToImage()メソッドを専用に提供しています。 IronPDFはまず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コールバックハンドラを削除.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!

詳細については、テキスト抽出ドキュメントを参照してください。

ファイルサイズの縮小

ベクターベースのPDFは通常、GrabzItの画像ベースのPDFよりも5~10倍小さくなります。 これにより、ストレージコスト、ダウンロード時間、電子メール添付の実現性が向上します。

API認証情報の削除

GrabzItは、すべての操作にAPI認証情報を必要とします:

// 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();

問題2: PDFOptionsが見つかりません

問題: PDFOptionsクラスはIronPDFには存在しません。

解決策: RenderingOptionsプロパティを使用します。

// GrabzIt
var options = 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 API呼び出しをインベントリする
  • コールバックハンドラーとWebhookエンドポイントを識別する
  • 現在のGrabzItのオプションとテンプレートを文書化する
  • IronPDFライセンスキーを取得する
  • コールバックハンドラーの廃止を計画する

コードの移行

-IronPDFNuGetパッケージをインストール: dotnet add package IronPdf -GrabzItNuGetパッケージを削除: dotnet remove package GrabzIt

  • ChromePdfRendererに置き換えます
  • RenderHtmlAsPdf()に変換します
  • RenderUrlAsPdf()に変換します
  • SaveAs(path)に置き換えます
  • オプションをRenderingOptionsに更新します

インフラストラクチャの移行

  • コールバックハンドラファイルを削除します(.ashxなど)
  • 設定からGrabzIt APIキーを削除する
  • Webhook URL 設定を削除する
  • IronPDFライセンスキーを設定に追加
  • ポーリング/ステータスチェックコードを削除する

テスティング

  • HTMLからPDFへの変換テスト
  • URLからPDFへの変換テスト
  • 出力PDFでテキストが選択可能であることを確認する
  • テキスト抽出が機能するかテストする(OCRなし)
  • ファイルサイズが小さいことを確認する
  • ネットワーク遅延のないパフォーマンステスト

移行後

  • GrabzItサブスクリプションをキャンセルする
  • アーカイブコールバックハンドラコード
  • ドキュメントの更新
  • GrabzIt関連のエラーを監視する

ご注意: GrabzIt は、それぞれの所有者の登録商標です。 当サイトは、GrabzIt とは提携しておらず、承認または提供されたものではありません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。