比較

GrabzItとIronPDFの比較:技術比較ガイド

.NET開発者がPDF生成ソリューションを評価するとき、GrabzItはスクリーンショットとPDFをキャプチャするためのクラウドベースのサービスとして際立っています。 GrabzItは迅速な統合を提供しますが、テキストを選択できない画像ベースのPDFを作成し、処理のためにすべてのコンテンツを外部サーバーに送信する必要があります。 IronPDFは別の選択肢を提供します。それは、選択可能で検索可能なテキストを含む真のベクターPDFを生成するインプロセスライブラリで、外部依存なしにすべてローカルで処理されます。

この比較では、.NET PDFのニーズに対して、プロの開発者やアーキテクトが十分な情報を得た上で決定できるように、関連する技術的な側面から両方のソリューションを見ていきます。

GrabzItを理解する

GrabzItは、スクリーンショットとPDFキャプチャサービスに特化した有料のSaaSです。 開発者は、クラウドAPIを通じて、ウェブページやHTMLコンテンツをPDFに変換することができます。 このサービスは、認証のためにアプリケーションキーとシークレットで初期化されたGrabzItClientを使用します。

GrabzItは、HTML文字列変換のためのHTMLToPDF()、WebページキャプチャのためのURLToPDF()、画像生成のためのHTMLToImage()などのメソッドを提供します。 構成は、CustomIdPageSizeなどのプロパティを持つPDFOptionsや、FormatWidthHeightプロパティを持つImageOptionsなどのオプションクラスを使用します。 結果は、同期ファイル出力の場合はSaveTo()を使って、非同期処理の場合はコールバックURL付きのSave()を使って保存されます。

GrabzItの主な特徴は、画像ベースのPDFを作成することです。 これらのPDFのテキストは選択できず、テキスト検索にはOCR処理が必要です。 すべてのコンテンツはGrabzItのサーバーに送信され処理されるため、プライバシーへの配慮とネットワーク遅延が発生します。

IronPDFの理解

IronPDFはインプロセスで動作する.NETライブラリで、選択可能で検索可能なテキストを含む真のベクターPDFを生成します。 ライブラリは、外部サーバーに依存することなく、すべてのコンテンツをローカルで処理します。

IronPDFはRenderHtmlAsPdf()RenderUrlAsPdf()のようなメソッドを持つ主要なレンダリングクラスとしてChromePdfRendererを使用します。 設定は、RenderingOptionsプロパティを通して処理されます。 画像変換については、レンダリングされたPDFはToBitmap()を使って変換することができます。 ドキュメントはSaveAs()で保存され、すべての操作は同期的に行われます。

IronPDFはベクターベースのPDFを生成し、テキストはOCRを必要とせず、ネイティブで選択・検索が可能です。 ファイルサイズは画像ベースのPDFよりも小さく、処理はローカルで行われ、一般的な待ち時間は100~500ms程度です。

アーキテクチャと処理モデルの比較

これらのソリューションの基本的な違いは、処理アーキテクチャと出力形式にあります。

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

GrabzItのクラウドベースのアーキテクチャは、すべてのPDF生成が外部サーバーへのHTTPコールを必要とすることを意味します。 このため、ネットワーク遅延、可用性に関する懸念、速度制限に関する考慮事項が発生します。 IronPdfのインプロセスアプローチはこのようなインフラ依存を排除します。

コードの比較:一般的なPDF操作

HTMLからPDFへの変換

最も基本的な操作は、アーキテクチャとAPIの違いを示します。

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

GrabzItは、アプリケーションキーとシークレットクレデンシャルでGrabzItClientを作成し、CustomIdのようなプロパティでPDFOptionsを設定し、HTMLコンテンツとオプションでHTMLToPDF()を呼び出し、SaveTo()で保存する必要があります。 コンテンツは、処理のためにGrabzItのサーバーに送信されます。

IronPDFはChromePdfRendererを作成し、RenderHtmlAsPdf()をHTML文字列で直接呼び出し、SaveAs()で保存します。 操作はローカルで処理され、外部認証は必要ありません。 出来上がったPDFには、選択・検索可能な真のベクトルテキストが含まれています。

高度なHTMLレンダリングオプションについては、HTMLからPDFへの変換ガイドをご覧ください。

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

GrabzItは、PDFOptions.PageSize = PageSize.A4によってページサイズを設定し、URLとオプションを使ってURLToPDF()を呼び出します。 ウェブページはGrabzItのサーバーに取り込まれ、画像ベースのPDFとして返されます。

IronPDFはURL文字列で直接RenderUrlAsPdf()を呼び出します。 ページサイズはrenderer.RenderingOptions.PaperSizeで設定できます。 ページはIronPDFの組み込みChromiumエンジンを使ってローカルでレンダリングされ、選択可能なテキストを含むベクターPDFが作成されます。

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 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
$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);
    }
}
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
$vbLabelText   $csharpLabel

GrabzItは、FormatWidthHeightプロパティを設定するためのImageOptionsを備えた専用のHTMLToImage()メソッドを持っています。 画像はGrabzItのサーバーで生成されます。

IronPDFはまずRenderHtmlAsPdf()を使ってHTMLをPDFにレンダリングし、次にToBitmap()を使ってビットマップに変換します。 個々の画像は、標準のSystem.Drawingメソッドを使用して保存されます。 この2段階のアプローチは、すべての処理をローカルに保ちながら、同じ結果をもたらします。

PDF操作についてはIronPDFチュートリアルをご覧ください。

APIマッピングリファレンス

GrabzItの移行を評価したり、機能を比較したりする開発者のために、このマッピングは同等の操作を示しています:

コア メソッド マッピング

GrabzItメソッドIronPDF 同等物
new GrabzItClient(key, secret).new ChromePdfRenderer().
HTMLToPDF(html)を使用してください。renderer.RenderHtmlAsPdf(html).
HTMLToPDF(html, オプション).最初にRenderingOptionsを設定します。
URLToPDF(url)のようにします。renderer.RenderUrlAsPdf(url)のようにします。
URLToPDF(url, オプション)</code最初にRenderingOptionsを設定します。
HTMLToImage(html)のようにします。pdf.ToBitmap()</code
Save(callbackUrl)を実行します。pdf.SaveAs(path)またはpdf.BinaryData
SaveTo(ファイルパス)pdf.SaveAs(filePath).
GetResult(id)</code該当なし
GetStatus(id)</code該当なし

PDFOptionsからRenderingOptionsへのマッピング。

GrabzIt PDFオプションIronPDF プロパティ
マージントップ</codeRenderingOptions.MarginTop
マージンボトム</codeRenderingOptions.MarginBottom
マージンレフト</codeRenderingOptions.MarginLeft(レンダリングオプション.マージンレフト)。
マージンライト</codeRenderingOptions.MarginRight</code
ページサイズ (A4, レター)RenderingOptions.PaperSize</code
オリエンテーション</codeRenderingOptions.PaperOrientation</code
ブラウザ幅</codeRenderingOptions.ViewPortWidth
ブラウザハイト</codeRenderingOptions.ViewPortHeight
遅延</codeRenderingOptions.RenderDelayとなります。
CustomWaterMark</codepdf.ApplyWatermark()</code
パスワード</codepdf.SecuritySettings.UserPassword
IncludeBackground</codeRenderingOptions.PrintHtmlBackgroundsを使用してください。
テンプレートID</codeRenderingOptions.HtmlHeader/Footer</code

ImageOptionsからIronPDFへのマッピング

GrabzIt ImageOptionsIronPDF 同等物
フォーマット (png, jpg)bitmap.Save(path, ImageFormat.Png).
幅</codeRenderingOptions.ViewPortWidth
高さ</codeRenderingOptions.ViewPortHeight

機能比較の概要

フィーチャーGrabzItIronPDF
真のベクターPDF❌ (イメージベース)
選択可能なテキスト
検索可能なテキスト(ネイティブ)❌ (OCRが必要)
ローカル処理❌ (外部サーバー)
オフライン機能
同期操作⚠️ (コールバックモデル)
要認証✅ (キー/秘密)
HTMLからPDFへ
URLからPDFへ
HTMLから画像へ✅ (ネイティブ)✅ (ToBitmap経由)
テキスト抽出❌ (OCRなし)

チームがGrabzItからIronPDFへの移行を検討するとき

開発チームがGrabzItからIronPDFへの移行を評価する理由はいくつかあります:

画像ベースのPDFの制限: GrabzItは、テキストが選択できないスクリーンショットベースのPDFを作成します。 テキスト選択、コピー/貼り付け機能、アクセシビリティへの準拠を必要とするアプリケーションでは、これは重要な制限となります。 IronPdfは完全に選択可能で検索可能なテキストを持つ真のベクターPDFを生成します。

外部処理に関する懸念: GrabzItに送信されたすべてのコンテンツは、外部サーバーで処理されます。 機密データを扱うアプリケーションの場合、プライバシーやコンプライアンスに配慮する必要があります。 IronPdfはすべてをローカルで処理し、データをあなたのインフラ内に保ちます。

コールバックアーキテクチャの複雑さ: GrabzItの非同期コールバックモデルでは、ウェブフック処理インフラ、コールバックエンドポイント、ステータスポーリング、結果取得ロジックが必要です。 IronPDFは結果を即座に返す同期オペレーションを提供し、コールバックハンドラーのコードを完全に排除します。

規模に応じたキャプチャごとの価格設定: GrabzItの使用ごとの課金モデルは、PDF生成量が増えるにつれて高額になる可能性があります。 IronPdfの開発者ごとのライセンスは、ボリュームに関係なく予測可能なコストを提供します。

テキスト検索の要件:GrabzItPDFは画像ベースなので、テキスト検索と抽出には個別のOCR処理が必要です。IronPDFPDFはネイティブで検索可能で、テキスト抽出はpdf.ExtractAllText()で直接行えます。

ファイルサイズに関する懸念 GrabzItからの画像ベースのPDFは、ベクターベースのPDFよりもかなり大きい(5~10倍)です。 多くのPDFを生成するアプリケーションや、ストレージに制約のあるアプリケーションでは、この差は相当なものです。

ネットワーク依存性: GrabzItはインターネット接続なしではPDFを生成できません。 IronPDFはオフラインで動作するため、切断された環境で動作するアプリケーションには不可欠です。

長所と考慮点

GrabzItの強み

  • クイックセットアップ: ローカルに依存しないAPIキー統合
  • 言語にとらわれない: HTTPコールができる言語であれば、どの言語でも動作します。
  • ローカルリソースなし:処理はGrabzItのインフラストラクチャ上で行われます。

GrabzItに関する考察

  • 画像ベースのPDF:テキストはOCRなしでは選択も検索もできません。
  • 外部処理: サードパーティのサーバーに送信されるデータ。
  • コールバックの複雑さ:ウェブフックインフラストラクチャが必要です。
  • キャプチャあたりのコスト: 価格設定はボリュームに比例します。
  • 必要なネットワーク: オフライン機能はありません。
  • ファイルサイズが大きい: 画像データはファイルサイズを大幅に増加させます。
  • レイテンシー: ネットワークのラウンドトリップは、リクエストごとに500ms-5sを追加します。

IronPDFの強み

  • 真のベクターPDF: 選択可能、検索可能なテキスト
  • ローカル処理:データはインフラストラクチャ内にとどまります。
  • 同期操作: コールバックハンドラは必要ありません。
  • より小さなファイル: ベクターデータはファイルサイズを5~10倍に縮小します。
  • テキスト抽出: OCRなしのネイティブテキスト抽出
  • オフライン対応:インターネット接続なしで動作します。
  • 包括的なリソース: 豊富なチュートリアルドキュメント

IronPDFについての考察

  • ローカルリソース:処理にローカルのCPU/メモリを使用します。
  • 商用ライセンス: 本番使用時に必要です。

結論

GrabzItとIronPDFは.NETアプリケーションでのPDF生成において根本的に異なるアプローチを表しています。 GrabzItのクラウドベースのスクリーンショットサービスは、外部APIコールによって画像ベースのPDFを作成するため、認証、コールバック処理、出力でテキストが選択できないことを受け入れる必要があります。

IronPDFは、選択可能で検索可能なテキストを含む真のベクターPDFを生成するインプロセスの代替手段を提供します。 このライブラリは、外部依存関係、コールバックインフラ、ネットワーク遅延を排除し、ネイティブテキスト抽出をサポートする小さなファイルを生成します。

組織が.NET 10、C# 14、2026年までのアプリケーション開発を計画する中で、画像ベースのクラウドPDFと真のベクターローカルPDFのどちらを選択するかは、ドキュメントの使いやすさ、アクセシビリティ、インフラの複雑さに大きく影響します。 選択可能なテキスト、データプライバシー、簡素化されたアーキテクチャを必要とするチームは、IronPDFがこれらの要件に効果的に対応することがわかります。

無料トライアルでIronPDFの評価を開始し、包括的なドキュメントを参照して、特定の要件への適合性を評価してください。