比較

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

.NET開発者がPDFドキュメントを作成する必要がある場合、PDFBoltのようなクラウドベースのサービスを使うか、IronPDFのようなセルフホストライブラリを選ぶかという重要な決断に直面します。 この分析では、開発者、アーキテクト、意思決定者がPDF生成のニーズに適したツールを選択できるよう、重要な技術的側面から両方の選択肢を検討します。

PDFBoltとは何ですか?

PDFBoltは、外部サーバーを介してPDFを生成するクラウドベースのREST APIサービスです。 開発者はHTMLコンテンツやURLをHTTP POSTリクエストでPDFBoltのAPIエンドポイントに送り、コンテンツを非表示のChromiumブラウザで処理し、生成されたPDFを返します。

クラウドベースのセットアップは迅速な統合を提供し、開発者はAPIキーを取得して、任意の言語の標準HTTPクライアント(例:C#ではHttpClient、Pythonではrequests、Node.jsではfetch)を使用してHTTPリクエストを作成します。 PDFBoltは、レンダリングインフラストラクチャを管理し、ローカルのPDF生成リソースの必要性を取り除きます。

しかし、この利便性はトレードオフを伴います。 すべてのドキュメントはPDFBoltのEUベースのサーバー(ドイツ)を通過します。 無料のティアは月に100件のドキュメントに制限されており、より高いボリュームのための有料購読プランも利用可能です。 また、すべてのPDF生成作業にはネットワーク接続が必須です。

IronPDFとは何ですか?

IronPDFは、サーバー上でローカルにPDF生成を行う、セルフホスト型 for .NETライブラリです。 ChromePdfRenderer クラスは、埋め込まれた Chromium エンジンを使用して、外部ネットワーク呼び出しなしで HTML、CSS、JavaScript を高品質の PDF ドキュメントに変換します。

ライブラリは、アプリケーションのインフラストラクチャ内ですべてのドキュメントを処理します。 お客様のサーバーからデータが出ることはなく、ドキュメント生成に使用制限はありません。 一度ライセンスを取得すれば、ドキュメントごとのコストはかからず、無制限にPDFを作成できます。

IronPDFは同期と非同期の両方のメソッドを提供し、基本的な生成だけでなく、PDFのマージ、透かし、テキスト抽出、セキュリティ設定など、一般的にクラウドAPIでは提供できない幅広い機能を提供します。

アーキテクチャの比較

PDFBoltとIronPDFの主な違いは、文書処理がどこで行われるかです。 この違いは、データのプライバシーから運用の信頼性まで、あらゆることに影響します。

フィーチャーPDFBoltIronPDF
ホスティングクラウド専用(EUサーバー)セルフホスト
データロケーション外部サーバー(ドイツ)サーバーのみ
プライバシーについて外部で処理された文書完全なデータプライバシー—ローカル処理、第三者への転送なし
使用制限クォータベース(プランにより100~50,000/月)無制限
インターネットが必要です。はい、常になし
レイテンシーについてネットワーク往復が含まれますローカル処理
オフライン操作不可完全サポート
C#インテグレーションHttpClientを介したREST APIライブラリの直接統合
コストモデルドキュメントのクォータによる月次購読1回限りの購入またはサブスクリプション

機密文書(契約書、医療記録、財務データ)を扱うアプリケーションにおいて、データがインフラストラクチャを離れることが問題になります。 IronPDFはすべてをローカルで処理するため、ドキュメントの内容が外部に送信されることはありません。 これにより、GDPR、HIPAA、およびSOC2への準拠が簡素化されます。第三者のデータプロセッサが関与せず、監査するデータ転送もないためです。

基本的なHTMLからPDFへの変換

両方のツールはHTMLからPDFへの変換を扱いますが、根本的に異なるアプローチがあります。PDFBoltはREST API呼び出しを介し、IronPDFはC#ライブラリを介します。

PDFBoltのHTMLからPDFへのアプローチ:

// REST API: requires an API key from pdfbolt.com
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.IO;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY");

        var html = "<html><body><h1>Hello World</h1></body></html>";
        var base64Html = Convert.ToBase64String(Encoding.UTF8.GetBytes(html));

        var response = await client.PostAsJsonAsync(
            "https://api.pdfbolt.com/v1/direct",
            new { html = base64Html });
        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}
// REST API: requires an API key from pdfbolt.com
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.IO;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY");

        var html = "<html><body><h1>Hello World</h1></body></html>";
        var base64Html = Convert.ToBase64String(Encoding.UTF8.GetBytes(html));

        var response = await client.PostAsJsonAsync(
            "https://api.pdfbolt.com/v1/direct",
            new { html = base64Html });
        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}
Imports System
Imports System.Net.Http
Imports System.Net.Http.Json
Imports System.IO
Imports System.Text
Imports System.Threading.Tasks

Module Program
    Async Function Main() As Task
        Dim client As New HttpClient()
        client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY")

        Dim html As String = "<html><body><h1>Hello World</h1></body></html>"
        Dim base64Html As String = Convert.ToBase64String(Encoding.UTF8.GetBytes(html))

        Dim response = Await client.PostAsJsonAsync(
            "https://api.pdfbolt.com/v1/direct",
            New With {.html = base64Html})
        Dim pdfBytes = Await response.Content.ReadAsByteArrayAsync()
        File.WriteAllBytes("output.pdf", pdfBytes)
    End Function
End Module
$vbLabelText   $csharpLabel

IronPDFのHTMLからPDFへのアプローチ:

// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.IO;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var html = "<html><body><h1>Hello World</h1></body></html>";
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System.IO

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim html = "<html><body><h1>Hello World</h1></body></html>"
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

PDFBoltの直接APIエンドポイントは、HTTPレスポンスボディで生のPDFバイナリデータを返し、File.WriteAllBytes()で保存できます。 IronPDFのRenderHtmlAsPdf()は、SaveAs()のような便利なメソッドと、代替出力処理のためのBinaryDataStreamのようなプロパティを持つPdfDocumentオブジェクトを返します。

IronPDF のHTML からPDFへの変換プロセスは完全にローカルで実行され、各変換に待ち時間を追加するネットワークのラウンドトリップはありません。

URLからPDFへの変換

ウェブページのPDFへの変換は、メソッドの命名と処理に顕著な違いがあるものの、同様のパターンに従います。

PDFBolt URL-to-PDF アプローチ:

// REST API: requires an API key from pdfbolt.com
using System.Net.Http;
using System.Net.Http.Json;
using System.IO;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY");

        var response = await client.PostAsJsonAsync(
            "https://api.pdfbolt.com/v1/direct",
            new { url = "https://www.example.com" });
        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        File.WriteAllBytes("webpage.pdf", pdfBytes);
    }
}
// REST API: requires an API key from pdfbolt.com
using System.Net.Http;
using System.Net.Http.Json;
using System.IO;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY");

        var response = await client.PostAsJsonAsync(
            "https://api.pdfbolt.com/v1/direct",
            new { url = "https://www.example.com" });
        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        File.WriteAllBytes("webpage.pdf", pdfBytes);
    }
}
Imports System.Net.Http
Imports System.Net.Http.Json
Imports System.IO
Imports System.Threading.Tasks

Module Program
    Async Function Main() As Task
        Dim client As New HttpClient()
        client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY")

        Dim response = Await client.PostAsJsonAsync(
            "https://api.pdfbolt.com/v1/direct",
            New With {.url = "https://www.example.com"})
        Dim pdfBytes = Await response.Content.ReadAsByteArrayAsync()
        File.WriteAllBytes("webpage.pdf", pdfBytes)
    End Function
End Module
$vbLabelText   $csharpLabel

IronPDF URL-to-PDF アプローチ:

// NuGet: Install-Package IronPdf
using IronPdf;

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;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")
        pdf.SaveAs("webpage.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDFは専用のRenderUrlAsPdf メソッドを提供し、実行される操作を明確に示します。 結果のPdfDocumentオブジェクトは、保存、バイナリデータへのアクセス、さらなる操作のために同じ豊富なインターフェースを提供します。

ページサイズと余白のカスタマイズ

プロフェッショナルな文書では、特定のページ寸法や余白構成が求められることがよくあります。 両方のツールは、異なる設定パターンでこれらのカスタマイズをサポートしています。

PDFBoltページ構成:

// REST API: requires an API key from pdfbolt.com
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.IO;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY");

        var html = File.ReadAllText("input.html");
        var base64Html = Convert.ToBase64String(Encoding.UTF8.GetBytes(html));

        var response = await client.PostAsJsonAsync(
            "https://api.pdfbolt.com/v1/direct",
            new
            {
                html = base64Html,
                format = "A4",
                margin = new { top = "20mm", bottom = "20mm" }
            });
        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}
// REST API: requires an API key from pdfbolt.com
using System;
using System.Net.Http;
using System.Net.Http.Json;
using System.IO;
using System.Text;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        var client = new HttpClient();
        client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY");

        var html = File.ReadAllText("input.html");
        var base64Html = Convert.ToBase64String(Encoding.UTF8.GetBytes(html));

        var response = await client.PostAsJsonAsync(
            "https://api.pdfbolt.com/v1/direct",
            new
            {
                html = base64Html,
                format = "A4",
                margin = new { top = "20mm", bottom = "20mm" }
            });
        var pdfBytes = await response.Content.ReadAsByteArrayAsync();
        File.WriteAllBytes("output.pdf", pdfBytes);
    }
}
Imports System
Imports System.Net.Http
Imports System.Net.Http.Json
Imports System.IO
Imports System.Text
Imports System.Threading.Tasks

Module Program
    Async Function Main() As Task
        Dim client As New HttpClient()
        client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY")

        Dim html As String = File.ReadAllText("input.html")
        Dim base64Html As String = Convert.ToBase64String(Encoding.UTF8.GetBytes(html))

        Dim response As HttpResponseMessage = Await client.PostAsJsonAsync(
            "https://api.pdfbolt.com/v1/direct",
            New With {
                .html = base64Html,
                .format = "A4",
                .margin = New With {.top = "20mm", .bottom = "20mm"}
            })
        Dim pdfBytes As Byte() = Await response.Content.ReadAsByteArrayAsync()
        File.WriteAllBytes("output.pdf", pdfBytes)
    End Function
End Module
$vbLabelText   $csharpLabel

IronPDFページ構成:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System.IO;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        var html = File.ReadAllText("input.html");
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System.IO;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
        renderer.RenderingOptions.MarginTop = 20;
        renderer.RenderingOptions.MarginBottom = 20;
        var html = File.ReadAllText("input.html");
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System.IO

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
        renderer.RenderingOptions.MarginTop = 20
        renderer.RenderingOptions.MarginBottom = 20
        Dim html = File.ReadAllText("input.html")
        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

PDFBoltは、APIリクエストボディのJSONパラメータとして設定を受け入れます(margin)。 IronPDFはRenderingOptionsプロパティを通してすべての設定を一元化し、IDEのオートコンプリートを通して設定を発見できるようにします。

PDFBoltは複数の単位(px、in、cm、mm)でマージンをサポートしますが、IronPDFはミリメートルでマージンを表現します。 両方のツールは、標準の紙サイズをサポートしています。PDFBoltはformat文字列パラメータを介して(例:"A4")、IronPDFはPdfPaperSize列挙型を介して対応しています。

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

PDFBoltからIronPDFへの移行を検討しているチームにとって、APIのマッピングを理解して作業量を見積もることが役立ちます。 PDFBoltはREST APIパラメータ(JSONフィールド)を使用しますが、IronPDFはC#クラスとメソッドを使用します。

コア操作マッピング

PDFBolt(REST API)IronPDF(C#ライブラリ)
POST /v1/direct{"html": "<base64>"}renderer.RenderHtmlAsPdf(html)
POST /v1/direct{"url": "...renderer.RenderUrlAsPdf(url)
レスポンスボディ(生のPDFバイト)pdf.SaveAs(path)
"isEncoded": true(Base64レスポンス)pdf.BinaryData

設定パラメータのマッピング

PDFBolt(JSONパラメータ)IronPDF(C#プロパティ)
"format": "A4"renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
"margin": {"top": "20mm"}renderer.RenderingOptions.MarginTop = 20
"margin": {"bottom": "20mm"}renderer.RenderingOptions.MarginBottom = 20
"margin": {"left": "15mm"}renderer.RenderingOptions.MarginLeft = 15
"margin": {"right": "15mm"}renderer.RenderingOptions.MarginRight = 15

ヘッダー/フッターダイナミックコンテンツマッピング

両方のツールは、異なる構文を用いて、動的コンテンツを持つHTMLベースのヘッダーとフッターをサポートしています。

PDFBolt(HTML内のCSSクラス)IronPDF(プレースホルダー)目的
<span class="pageNumber"></span>{page}現在のページ番号
<span class="totalPages"></span>{total-pages}総ページ数
<span class="date"></span>{date}現在の日付
<span class="title"></span>{html-title}文書タイトル
<span class="url"></span>{url}ページURL

PDFBoltとIronPDFの両方が、CSSスタイリングが施されたHTMLベースのヘッダーとフッターをサポートしています。 PDFBoltのfooterTemplateパラメータはBase64エンコードされたHTMLを受け入れる一方で、IronPDFはHTML文字列を直接そのレンダリングオプションで使用します。

機能の利用可能性の比較

基本的なHTMLからPDFへの変換を超えて、ツールは利用可能な機能において大きく異なります。

フィーチャーPDFBoltIronPDF
HTMLからPDFへ
URLからPDFへ
ヘッダー/フッター✓(HTML)✓(HTML)
ページ数
カスタムページサイズ
マージン
PDFマージ
PDF分割
透かし
パスワード保護
テキスト抽出
PDFから画像へ
フォーム入力
デジタル署名
オフライン作業
無制限処理クォータベース(最大50,000/月)無制限

IronPDFは、マージ、分割、透かし、APIリクエストのステートレスな性質のために一般的にクラウドAPIが提供できないセキュリティ設定を含む、広範なPDF操作機能を提供します。

データ プライバシーとコンプライアンス

アーキテクチャの違いにより、データ処理特性が根本的に異なります:

PDFBoltのデータフロー:

  1. あなたのアプリケーションはHTML/URLをPDFBoltのEUベースのサーバー(ドイツ)に送信します
  2. PDFBoltはそのクラウドインフラストラクチャを使用してドキュメントを処理します 3.ネットワーク経由でPDFを返送
  3. ドキュメントの内容は外部サーバーに送信されて処理されます

IronPDFのデータフロー:。 1.アプリケーションはHTML/URLをローカルで処理します 2.Chromiumエンジンは、PDFを処理中にレンダリングします。 3.PDFデータがお客様のサーバーから離れることはありません。

  1. 第三者データプロセッサの関与がないため、データ処理契約なしで対応できます

IronPDFを使用すると、個人を特定できる情報、保護された健康情報、または機密のビジネスデータを含むドキュメントは、インフラストラクチャを離れません。 ライブラリには、コンプライアンスワークフローを支援する組み込みのセキュリティ機能も含まれています:パスワード保護と暗号化(最大256ビットAES)、PFX/P12証明書とHSMサポートを伴うデジタル署名、恒久的な個人情報削除のためのテキストの削除、および長期アーカイブ要件に対するPDF/A準拠。 エアギャップ環境に対して、IronPDFはインターネット接続ゼロで使用できます。

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

PDFBoltの代替としてIronPDFを評価するチームにはいくつかの要因があります:

データプライバシー要件: GDPRやHIPAA、または内部のデータガバナンス方針の対象となる組織は、ドキュメントがインフラストラクチャを離れないように要求する場合があります。 IronPDFのローカル処理モデルはそのデザインによってこれを満たしています。データが外部に送信されることはなく、組み込みの暗号化と削除の機能がコンプライアンスワークフローを直接サポートします。

使用量の増加: PDFBoltの無料ティアは月に100件のドキュメントに制限されています(それ以上のリクエストはブロックされ、請求されません)。 有料プランは月額19ドル(2,000件のドキュメント)から月額249ドル(50,000件のドキュメント)まであり、有料ティアではオプトインオーバージオプションがあります。 IronPDFにドキュメントのクォータやメーターはありません。一度ライセンスを取得すると、生成は無制限です。

ネットワークの信頼性に関する懸念:クラウドAPIは、すべての操作にネットワーク接続を必要とします。 接続が断続的な環境、または高可用性を必要とする環境で展開されるアプリケーションは、ネットワークの状態に関係なく動作し続けるローカル処理の恩恵を受けます。

レイテンシー感度: PDFBoltの変換には、レンダリング時間に加えてネットワーク往復時間が含まれます。IronPDFはドキュメントをローカルで処理するため、ネットワークのオーバーヘッドを完全に避けます。

機能要件:アプリケーションがPDFマージ、透かし、テキスト抽出、またはセキュリティ設定を必要とする場合、クラウドAPIではこれらの機能を提供できないことがよくあります。 IronPDFの包括的な機能セットは、追加サービスなしでこれらのニーズに対応します。

APIキー管理:クラウドAPIキーは、安全な保存とローテーションの実践が必要です。請求可能なサービスへのアクセスを付与するためです。IronPDFのライセンスキーモデルは、使用ごとの請求の影響なしにローカルで認証します。

インストールの比較

PDFBoltのセットアップ: PDFBoltはパッケージのインストールを必要としません。それはREST APIです。 開発者はpdfbolt.comでサインアップし、APIキーを取得し、言語の標準HTTPクライアントを使用してHTTPリクエストを作成します:

var client = new HttpClient();
client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY");
var client = new HttpClient();
client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY");
Dim client As New HttpClient()
client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY")
$vbLabelText   $csharpLabel

IronPDFのインストール:

Install-Package IronPdf
Install-Package IronPdf
SHELL

IronPDFはアプリケーション起動時にライセンスキーの設定を必要とします:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

PDFBoltは、C#、Node.js、Python、Java、Go、PHP、Rustなど、あらゆるプラットフォームからアクセスできる言語非依存のREST APIです。 IronPDFは、.NET 10およびC# 14をターゲットとするアプリケーションと互換性がある.NET Frameworkおよび最新 for .NETバージョンをサポートする.NETライブラリです。

非同期と同期の考察

PDFBoltのクラウドベースのアーキテクチャは、ネットワーク操作に対して非同期HTTPパターンを使用します。 PDFBoltは3種類のエンドポイントを提供します:直接(同期バイナリレスポンス)、同期(ダウンロードURLを含む同期JSON)、および非同期(webhookベース):

//PDFBoltREST API pattern - async HTTP call
var client = new HttpClient();
client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY");
var response = await client.PostAsJsonAsync(
    "https://api.pdfbolt.com/v1/direct",
    new { html = base64Html });
var pdfBytes = await response.Content.ReadAsByteArrayAsync();
//PDFBoltREST API pattern - async HTTP call
var client = new HttpClient();
client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY");
var response = await client.PostAsJsonAsync(
    "https://api.pdfbolt.com/v1/direct",
    new { html = base64Html });
var pdfBytes = await response.Content.ReadAsByteArrayAsync();
Imports System.Net.Http
Imports System.Net.Http.Headers
Imports System.Threading.Tasks

'PDFBoltREST API pattern - async HTTP call
Dim client As New HttpClient()
client.DefaultRequestHeaders.Add("API-KEY", "YOUR-API-KEY")
Dim response As HttpResponseMessage = Await client.PostAsJsonAsync(
    "https://api.pdfbolt.com/v1/direct",
    New With {.html = base64Html})
Dim pdfBytes As Byte() = Await response.Content.ReadAsByteArrayAsync()
$vbLabelText   $csharpLabel

IronPDFはデフォルトで同期メソッドを提供します。ローカル処理では非同期を必要としないからです:

//IronPDFlocal pattern - sync by default
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
//IronPDFlocal pattern - sync by default
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
'IronPDFlocal pattern - sync by default
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
$vbLabelText   $csharpLabel

非同期パターンの恩恵を受けるアプリケーションのために、IronPDFは非同期メソッドのバリエーションも提供しています:

//IronPDFasync option
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
//IronPDFasync option
var pdf = await renderer.RenderHtmlAsPdfAsync(html);
$vbLabelText   $csharpLabel

パフォーマンスの特徴

ローカルとクラウドの処理は異なる性能プロファイルを作成します:

メトリックPDFBoltIronPDF
処理クラウドレンダリング+ネットワーク転送ローカルレンダリング
ネットワーク依存すべてのリクエストには接続性が必要ですなし
バッチ処理レート制限(プランによって20-150リクエスト/分)レート制限なし
並行リクエストプランに応じて1-20サーバーリソースによって制限されます
オフライン作業不可完全サポート

IronPDFの組み込みChromiumエンジンは初回使用時に初期化のオーバーヘッドがありますが、その後のレンダリングは、クラウドAPI呼び出しに固有のネットワークオーバーヘッドを避けます。 PDFBoltの性能は、ネットワークの状態やドキュメントの複雑さ、現在のサーバーの負荷に依存します。

決定する

PDFBoltとIronPDFのどちらを選択するかは、特定の要件によります:

PDFBoltを検討する場合: プロトタイプのために迅速な統合が必要で、ドキュメントの量がPDFBoltの購読ティアに適合し、クラウドベースのドキュメント処理に慣れており、ネットワーク接続が信頼できる場合。

IronPDFをご検討ください: プライバシーやコンプライアンスのためにローカルデータ処理が必要な場合、毎月100以上のドキュメントを生成する場合、生成以外のPDF操作(マージ、透かし、セキュリティ)が必要な場合、オフライン操作が必要な場合、ユーザーエクスペリエンスのために待ち時間が重要な場合。

2025年に本番アプリケーションを構築し、2026年に向けて計画を立てているチームにとって、IronPDFのセルフホストアーキテクチャは、クラウドAPIにはない運用の独立性と包括的な機能を提供します。

IronPDFを始めよう

IronPDFをPDF生成のニーズに合わせて評価する:

  1. IronPDF NuGetパッケージをインストールします:Install-Package IronPdf 2.基本的な変換パターンについては、HTML to PDFチュートリアルをご覧ください。 3.WebページキャプチャのためのURLからPDFへの変換を探る 4.チュートリアルセクションで包括的な例を確認してください。

IronPDFドキュメントは、一般的なシナリオのための詳細なガイダンスを提供し、APIリファレンスは、利用可能なすべてのクラスとメソッドを文書化しています。