比較

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

.NET 開発者が PDF 生成ソリューションを評価する場合、Web ベースのエディターを備えたクラウドベースのテンプレート ドリブン API オプションとしてCraftMyPDFが際立っています。 しかし、外部サーバーへのデータ転送、ネットワーク遅延、PDF ごとの価格設定など、クラウドのみのアーキテクチャの制限により、多くのチームはオンプレミスの代替手段を検討しています。 IronPDFはネイティブのChromiumレンダリングと外部依存のないローカルPDF生成を提供します。

この比較では、関連する技術的側面にわたって両方のアプローチを検討し、プロの開発者やアーキテクトが .NET PDF のニーズに応じて情報に基づいた決定を下せるよう支援します。

CraftMyPDFを理解する

CraftMyPDF は、Web ベースのドラッグ アンド ドロップ テンプレート エディターを使用して PDF ドキュメントを作成できるように設計されたクラウド ベースの API です。 このサービスは、ユーザーがブラウザで直接PDFテンプレートをデザインすることを可能にし、レイアウトコンポーネント、高度な書式設定、式、JSONペイロードからのデータバインディングをサポートします。

API は REST エンドポイントを介して動作し、開発者はレンダリングのために HTML テンプレートとデータをCraftMyPDFのサーバーに送信する必要があります。 同社の文書によると、PDF生成の待ち時間は、複雑さや現在のサーバー負荷にもよりますが、文書1件あたり1.5~30秒です。

しかし、CraftMyPDFのクラウドオンリーアーキテクチャにはいくつかの制限があります。 標準的なHTML/CSSテンプレートを直接使用することはできません。 クラウド専用であるため、オンプレミスでの導入オプションはなく、機密文書を扱う組織にとってはコンプライアンス上の懸念が生じます。 このサービスは、PDFごとの価格設定によるサブスクリプションモデルで運営されています。

IronPDFの理解

IronPDFは埋め込みChromiumレンダリングエンジンを使ってPDFをローカルに生成する.NETライブラリです。このライブラリはHTML、CSS、JavaScriptを、開発者がChromeブラウザで見るのと同じレンダリング品質でPDFに変換し、印刷に最適化された出力ではなく、ピクセルパーフェクトな画面レンダリングを提供します。

IronPDFは完全にオンプレミスで運用されるため、ドキュメントデータが組織のインフラから出ることはありません。 このライブラリは、外部APIコール、インターネット接続、テンプレートエディターのサブスクリプションを必要としません。 1回限りの永久ライセンスが、PDFごとの継続的なコストに取って代わります。

アーキテクチャと展開の比較

これらの.NET PDFソリューションの基本的な違いは、そのアーキテクチャアプローチにあります。

アスペクトCraftMyPDFIronPDF
データロケーションクラウド(データがシステムを離れる)オンプレミス(データが外に出ることはありません)
レイテンシーについて1.PDF1枚あたり5~30秒ミリ秒
価格についてPDFごとの購読1回限りの永久ライセンス
テンプレートシステム独自のドラッグ&ドロップのみあらゆるHTML/CSS/JavaScript
アウトプット品質印刷に最適化ピクセルパーフェクトな画面レンダリング
オフラインで動作します。いいえ(インターネットが必要です)はい
コンプライアンスデータリースの構成SOC2/HIPAAフレンドリー
レンダリングエンジンクラウドレンダラーローカルChromium

CraftMyPDFは、すべてのHTMLテンプレートとJSONデータペイロードをサーバーに送信する必要があります。 請求書、契約書、医療記録、または機密性の高いビジネスデータについては、HIPAA、GDPR、SOC2 コンプライアンスの問題が生じます。 IronPDFはすべてをローカルで処理します。

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

HTMLからPDFへの変換

HTMLコンテンツをPDFに変換すると、基本的なアーキテクチャの違いがわかります。

クラフトマイPDF:

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

class Program
{
    static void Main()
    {
        var client = new RestClient("https://api.craftmypdf.com/v1/create");
        var request = new RestRequest(Method.POST);
        request.AddHeader("X-API-KEY", "your-api-key");
        request.AddJsonBody(new
        {
            template_id = "your-template-id",
            data = new
            {
                html = "<h1>Hello World</h1><p>This is a PDF from HTML</p>"
            }
        });

        var response = client.Execute(request);
        File.WriteAllBytes("output.pdf", response.RawBytes);
    }
}
// NuGet: Install-Package RestSharp
using System;
using RestSharp;
using System.IO;

class Program
{
    static void Main()
    {
        var client = new RestClient("https://api.craftmypdf.com/v1/create");
        var request = new RestRequest(Method.POST);
        request.AddHeader("X-API-KEY", "your-api-key");
        request.AddJsonBody(new
        {
            template_id = "your-template-id",
            data = new
            {
                html = "<h1>Hello World</h1><p>This is a PDF from HTML</p>"
            }
        });

        var response = client.Execute(request);
        File.WriteAllBytes("output.pdf", response.RawBytes);
    }
}
$vbLabelText   $csharpLabel

IronPDF:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML</p>");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using System;
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>This is a PDF from HTML</p>");
        pdf.SaveAs("output.pdf");
    }
}
$vbLabelText   $csharpLabel

CraftMyPDFは、RESTクライアントの設定、APIキーヘッダの追加、テンプレートIDを含むJSONボディの構築、HTTPリクエストの実行、レスポンスの処理、ファイルへの生バイトの書き込みを必要とします。 IronPdfはChromePdfRendererを作成し、RenderHtmlAsPdf()を呼び出し、保存します。

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

URLからPDFへの変換

ウェブページをPDF文書としてキャプチャする場合も、同様の複雑さの違いが見られます。

クラフトマイPDF:

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

class Program
{
    static void Main()
    {
        var client = new RestClient("https://api.craftmypdf.com/v1/create");
        var request = new RestRequest(Method.POST);
        request.AddHeader("X-API-KEY", "your-api-key");
        request.AddJsonBody(new
        {
            template_id = "your-template-id",
            data = new
            {
                url = "https://example.com"
            },
            export_type = "pdf"
        });

        var response = client.Execute(request);
        File.WriteAllBytes("webpage.pdf", response.RawBytes);
    }
}
// NuGet: Install-Package RestSharp
using System;
using RestSharp;
using System.IO;

class Program
{
    static void Main()
    {
        var client = new RestClient("https://api.craftmypdf.com/v1/create");
        var request = new RestRequest(Method.POST);
        request.AddHeader("X-API-KEY", "your-api-key");
        request.AddJsonBody(new
        {
            template_id = "your-template-id",
            data = new
            {
                url = "https://example.com"
            },
            export_type = "pdf"
        });

        var response = client.Execute(request);
        File.WriteAllBytes("webpage.pdf", response.RawBytes);
    }
}
$vbLabelText   $csharpLabel

IronPDF:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using System;
using IronPdf;

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

CraftMyPDFは、異なるJSONペイロード構造を持つ同じRESTクライアントのセットアップを必要とします。 IronPDFのRenderUrlAsPdf()はChromiumを使ってURLを直接レンダリングします。

URL レンダリングの詳細については、URL to PDF documentationを参照してください。

ヘッダーとフッターの追加

ドキュメントのヘッダーとフッターは、APIの設計の違いを示しています。

クラフトマイPDF:

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

class Program
{
    static void Main()
    {
        var client = new RestClient("https://api.craftmypdf.com/v1/create");
        var request = new RestRequest(Method.POST);
        request.AddHeader("X-API-KEY", "your-api-key");
        request.AddJsonBody(new
        {
            template_id = "your-template-id",
            data = new
            {
                html = "<h1>Document Content</h1>",
                header = "<div>Page Header</div>",
                footer = "<div>Page {page} of {total_pages}</div>"
            }
        });

        var response = client.Execute(request);
        File.WriteAllBytes("document.pdf", response.RawBytes);
    }
}
// NuGet: Install-Package RestSharp
using System;
using RestSharp;
using System.IO;

class Program
{
    static void Main()
    {
        var client = new RestClient("https://api.craftmypdf.com/v1/create");
        var request = new RestRequest(Method.POST);
        request.AddHeader("X-API-KEY", "your-api-key");
        request.AddJsonBody(new
        {
            template_id = "your-template-id",
            data = new
            {
                html = "<h1>Document Content</h1>",
                header = "<div>Page Header</div>",
                footer = "<div>Page {page} of {total_pages}</div>"
            }
        });

        var response = client.Execute(request);
        File.WriteAllBytes("document.pdf", response.RawBytes);
    }
}
$vbLabelText   $csharpLabel

IronPDF:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Page Header"
        };
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}"
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Document Content</h1>");
        pdf.SaveAs("document.pdf");
    }
}
// NuGet: Install-Package IronPdf
using System;
using IronPdf;
using IronPdf.Rendering;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Page Header"
        };
        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}"
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Document Content</h1>");
        pdf.SaveAs("document.pdf");
    }
}
$vbLabelText   $csharpLabel

CraftMyPDFは、APIに送信されるJSONデータペイロード内にヘッダー/フッターコンテンツを埋め込みます。 IronPDFはRenderingOptions.TextHeaderRenderingOptions.TextFooterプロパティをTextHeaderFooterオブジェクトと一緒に使用し、ネットワーク転送なしでタイプされた設定を提供します。

メソッド マッピング リファレンス

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

CraftMyPDFIronPDF
POST /v1/create.renderer.RenderHtmlAsPdf(html).
X-API-KEYヘッダーLicense.LicenseKey = "...".
<コード>テンプレートID</コード標準HTML文字列
{%name%}プレースホルダ$"{name}" C#補間
POST /v1/mergePdfDocument.Merge(pdfs).
POST /v1/add-watermarkpdf.ApplyWatermark(html).
Webhookコールバック不要
料金制限該当なし

コンフィギュレーション マッピング

CraftMyPDF オプションIronPDF 同等物
page_size:"A4"PaperSize = PdfPaperSize.A4.
オリエンテーション:"ランドスケープ"用紙の向き = 横
<コード>margin_top: 20マージントップ = 20
<コード>ヘッダー</コード<コード>HtmlHeader</コード
<コード>フッター</コード<コード>HtmlFooter</コード
<コード>async: true*Async()メソッドを使用する

機能比較の概要

フィーチャーCraftMyPDFIronPDF
HTMLからPDFへAPIテンプレート経由ネイティブ
URLからPDFへAPI経由ネイティブ
カスタムテンプレート専用エディタのみあらゆるHTML
CSS3のサポート制限的フル
JavaScriptレンダリング制限的フル
PDFのマージ/分割API経由ネイティブ
フォーム入力API経由ネイティブ
デジタル署名API経由ネイティブ
透かしAPI経由ネイティブ
オフラインでの作業
セルフホスト

コスト比較

価格モデルは、コスト構造に対する根本的に異なるアプローチを表しています。

CraftMyPDFの費用(月額):

  • Liteプラン: 1,200のPDFで月額19ドル
  • Professional: 5,000 PDFで月額49ドル
  • エンタープライズ: 15,000 PDFで月99ドル
  • 規模としては100,000のPDF = ~$500-600/月

IronPDFコスト(1回のみ):

  • Lite License: $749(1人の開発者、1つのプロジェクト)
  • Professional:1,499ドル(プロジェクト数無制限)
  • 一度お支払いいただくと、永久にPDFを無制限でご利用いただけます。

損益分岐点は、PDFのボリュームにもよりますが、約2~3ヶ月です。

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

開発チームはいくつかの理由からCraftMyPDFからIronPDFへの移行を評価しています:

データ コンプライアンス要件:請求書、契約書、医療記録、財務データなどの機密文書を扱う組織は、この情報をサードパーティのサーバーに送信できません。 CraftMyPDFのクラウドアーキテクチャは、HIPAA、GDPR、SOC2のコンプライアンス要件に抵触します。 IronPDFはすべてをローカルで処理します。

遅延の感度:CraftMyPDFで文書化されている PDF 1 枚あたりの遅延は 1.5 ~ 30 秒で、大量処理やリアルタイムのシナリオではボトルネックが発生します。 IronPDFはネットワークのラウンドトリップなしで数ミリ秒でPDFを生成します。

コストの予測可能性: PDF ごとのサブスクリプション コストは、使用量の増加に伴って予測不能に増加します。 毎月何千ものPDFを生成している組織は、1回限りの永久ライセンスが長期間にわたってより経済的であることに気づきます。

テンプレートの柔軟性:CraftMyPDF独自のドラッグ アンド ドロップ エディターでは、テンプレートのデザイン オプションが制限されます。 既存のHTML/CSS資産や標準的なウェブ開発ツールを使用したいチームは、どんなHTMLでもテンプレートになるIronPdfのアプローチを好みます。

出力品質:クラウド PDF API は多くの場合、印刷出力を最適化し、背景を削減し、色を簡素化します。 IronPdfのChromiumエンジンはピクセルパーフェクトな画面レンダリングを生成します。

オフライン操作:インターネット接続なしでPDFを生成するアプリケーションは、クラウドベースのAPIを使用できません。IronPDFは完全にオフラインで動作します。

アーキテクチャの簡素化: REST クライアント構成、API キー管理、HTTP エラー処理、レート制限ロジック、Webhook ハンドラーを削除すると、コードベースが大幅に簡素化されます。

長所と考慮点

CraftMyPDFの強み

-ユーザーフレンドリーなインターフェース: Webベースのドラッグアンドドロップエディタにより、開発者以外のユーザーでもテンプレートの作成が簡単になります。 -インフラストラクチャ管理不要:クラウドホスティングによりサーバーのメンテナンスが不要になります -クロスプラットフォームAPI:あらゆるプログラミング言語からアクセス可能なREST API

CraftMyPDFについての考察

-テンプレートのロックイン:独自のテンプレートデザイナーを使用する必要があります -クラウドのみ:オンプレミス展開オプションなし -データ転送:すべての文書は外部サーバーで処理されます -遅延: PDF 生成ごとに 1.5~30 秒 -継続費用: PDFごとのサブスクリプション料金 -インターネット依存性:ネットワーク接続が必要

IronPDFの強み

-テンプレートの柔軟性: HTML/CSS/JavaScript はすべてテンプレートになります -オンプレミス展開:データは組織のインフラストラクチャから外に出ることはありません -パフォーマンス:ネットワーク遅延なしでミリ秒単位でPDFを生成 -コスト効率が高い: 1回限りの永久ライセンス -オフライン操作:インターネットは不要

IronPDFについての考察

-開発スキル:テンプレート作成にはC#の知識が必要 -初期設定:クラウド API サブスクリプションに比べて設定が複雑

結論

CraftMyPDFとIronPDFは.NETアプリケーションでのPDF生成において根本的に異なるアプローチを表しています。 CraftMyPDFは、外部データ処理やサブスクリプション価格モデルに慣れている組織に適した、クラウドベースのテンプレート駆動型ソリューションを提供します。

IronPdfは、機密データを組織の境界内に保持し、ネットワーク遅延を排除し、予測可能な1回限りのライセンスコストを提供するオンプレミスPDF生成を提供します。 データコンプライアンス、低レイテンシー、コスト予測可能性、テンプレートの柔軟性を必要とするチームにとって、IronPdfはこれらの特定の要件に対応します。

組織が.NET 10、C# 14、および2026年までのアプリケーション開発を計画する中で、クラウド依存型とセルフホスト型のPDF生成のアーキテクチャの選択は、当面の開発パターンと長期的な運用コストの両方に影響します。 各チームは、データ感度、期待されるボリューム、遅延許容度、予算制約などの具体的な要件を、各アプローチの特徴と照らし合わせて評価する必要があります。

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