製品比較 ActivePDF vs IronPDF: HTMLからPDFへのチュートリアルと包括的な比較 Jacob Mellor 更新日:8月 5, 2025 Download IronPDF NuGet Download テキストの検索と置換 テキストと画像のスタンプ Start Free Trial Copy for LLMs Copy for LLMs Copy page as Markdown for LLMs Open in ChatGPT Ask ChatGPT about this page Open in Gemini Ask Gemini about this page Open in Grok Ask Grok about this page Open in Perplexity Ask Perplexity about this page Share Share on Facebook Share on X (Twitter) Share on LinkedIn Copy URL Email article IronPDFとActivePDFの.NETでのPDF生成の比較 開発者が.NETアプリケーションで強力なPDF生成機能を必要とする場合、IronPDFとActivePDFという重要なソリューションがしばしば浮かび上がります。 両ライブラリともPDFドキュメントの作成、変換、操作に強力な機能を提供しますが、そのアプローチ、価格設定、実装の複雑さに大きな違いがあります。 IronPDFは直感的なAPIデザインとChromeレンダリングエンジンを使用した包括的なHTML-to-PDF変換で際立っています。一方、ActivePDFは、HTML変換用のWebGrabberやドキュメント変換用のDocConverterなど、複数の特化したコンポーネントを通じてエンタープライズ向けのソリューションを提供しています。 この記事は、あなたがPDF処理のニーズに基づいた情報に基づく決定を行うのに役立つ詳細な比較を提供します。 class="product__comprehensive-comparison-table"> class="table-container"> class="table-number">製品比較概要 class="table-title">.NET開発のためのIronPDFとActivePDFの比較 カテゴリー 機能・観点 IronPDF ActivePDF 主な利点 コアアーキテクチャ デザイン哲学 オールインワンライブラリ、開発者に優しい モジュールコンポーネント、エンタープライズに焦点 IronPDF: 簡単な統合 APIの複雑さ RenderHtmlAsPdf()のような直感的なメソッド コンポーネントごとのAPI IronPDF: コード行数が少ない 学習曲線 1-2日通常 1-2週通常 IronPDF: 迅速な採用 プラットフォームサポート クロスプラットフォーム Windows、Linux、macOS、Docker 主にWindows Server IronPDF: 真のクロスプラットフォーム .NETバージョン .NET 10, 9, 8, 7, 6, 5, Core, Framework 4.6.2+ .NET Framework 4.5+, Core 1.0, Standard 1.0 IronPDF: モダン.NETサポート クラウドプラットフォーム Azure、AWS、Google Cloudに最適化 限定的なクラウドサポート IronPDF: クラウドネイティブ対応 HTML to PDF レンダリングエンジン Chrome V8エンジン ネイティブエンジン、IEエンジン IronPDF: モダンレンダリング CSS3/HTML5サポート 完全サポート 部分的サポート IronPDF: モダンウェブ標準 JavaScriptの実行 完全なJavaScriptサポート 限定されたJavaScriptサポート IronPDF: ダイナミックなコンテンツ Webフォント Googleフォント、システムフォント システムフォントのみ IronPDF: タイポグラフィ柔軟性 ドキュメント変換 サポートされる形式 HTML、DOCX、画像、RTF、MD 300+形式 (DocConverter) ActivePDF: より多くの形式 DOCX to PDF 組み込みDocxToPdfRenderer ネイティブオフィス変換 ActivePDF: より良い忠実度 バッチ処理 プログラム的アプローチ ウォッチドフォルダサポート ActivePDF: エンタープライズ自動化 パフォーマンス HTMLレンダリング速度 通常125ms、複雑835ms エンジンによって可変 IronPDF: 一貫したパフォーマンス メモリ使用量 通常10MB未満 サービスベースのオーバーヘッド IronPDF: 低フットプリント スレッドサポート ネイティブasync/await最適化 マルチスレッドサービス IronPDF: より良い.NET統合 PDF機能 フォーム処理 作成、記入、フラット化フォーム 高度なフォーム機能 (ツールキット) ActivePDF: 複雑なフォーム PDF/A準拠 PDF/A-3Bサポート 複数のPDF/Aレベル ActivePDF: 追加の準拠オプション OCR機能 IronOCR統合による 専用OCRコンポーネント 両方: 利用可能なソリューション デジタル署名 統合、視覚的署名 高度な署名オプション ActivePDF: エンタープライズ署名 開発者の体験 ドキュメント 包括的なチュートリアル、例 従来のAPIドキュメント IronPDF: より良い学習資源 コードサンプル 100以上の準備完了サンプル GitHubの基本的なサンプル IronPDF: 豊富な資源 エラーメッセージ 記述的で実行可能 サービスレベルメッセージ IronPDF: より良いデバッグ ライセンスと価格 エントリーレベル Lite: $799(1開発者、1プロジェクト) WebGrabber: コンポーネントごとに,499+ IronPDF: 70%低いエントリー チームライセンス Professional: $2,399(10開発者) 複数のコンポーネントが必要 IronPDF: オールインクルーシブ スイートオプション Iron Suite: $1,498(9製品) スイートオプションなし IronPDF: 卓越した価値 サポート サポート込み はい、24/5エンジニアリングサポート サポートポータルアクセス IronPDF: 直接的なエンジニアリングサポート 応答時間 24-48時間通常 問題によって異なる IronPDF: 予測可能なSLA 最適な用途 ユースケース 現代のウェブアプリ、迅速な開発 エンタープライズ自動化、レガシーシステム コンテキスト依存 プロジェクトタイプ SaaS、ウェブアプリ、マイクロサービス ドキュメント管理、バッチ処理 要件に基づく class="table-note"> 注意。 比較は2025年の現行バージョンを基にしています。ActivePDFは特定のエンタープライズニーズに対してモジュールコンポーネントを提供し、IronPDFは統合ソリューションを提供します。ActivePDFの価格はコンポーネント選択に応じて大きく異なります。 class="learnn-how-section"> class="row"> class="col-sm-6"> IronPDFとActivePDFコンポーネントの比較 IronPDFのC# PDFライブラリを手に入れる IronPDFとActivePDFの機能を比較する URL to PDFのコードを比較する HTML文字列をPDFに変換するコードを比較する ライセンス、無償ソフトウェアオプションなどを比較する class="col-sm-6"> class="download-card"> class="tutorial-segment-title">概観 IronPDF C#ライブラリについて Iron Software is a market-leading component provider offering IronPDFを提供しています。 IronPDFは、さまざまな形式からPDFファイルを生成しつつ、ドキュメントプロパティをプログラム的に完全制御できるオールインクルーシブなソリューションを提供します。 開発者は、IronPDFの一貫した信頼性の高い出力と、最小限のコードで済む直感的なAPIを好みます。 IronPDFは、C#、VB.NET、ASP.NET、MVC、.NET Core、.NET 9、.NET 10をサポートしており、Windows、Linux、macOS、Docker、Azure、AWS、その他のクラウドプラットフォームでシームレスに動作します。 ActivePDFコンポーネントについて ActivePDF(現在はApryseの一部)は、複数の専門コンポーネントを通じてエンタープライズ向けのPDFソリューションを提供しています。 IronPDFの統合アプローチとは異なり、ActivePDFは異なるPDFタスクごとに個別の製品を提供しています: ActivePDF WebGrabberによるHTML to PDF変換 ActivePDF WebGrabberは特にHTMLソース(URL、HTMLファイル、またはHTML文字列)をPDF形式に変換するために設計されています。 ヘッダー、フッター、余白、透かし、ブックマークを含むページプロパティの設定オプションを提供します。 WebGrabberは、ネイティブおよびInternet Explorerレンダリングエンジンの両方をサポートしています。 ActivePDF DocConverterによるドキュメント変換 ActivePDF DocConverterは、Microsoft Officeドキュメント、画像、CADファイルなど300を超えるファイル形式をPDFに変換します。 監視フォルダの自動化、バッチ処理機能、エンタープライズグレードのドキュメント管理機能を特徴としています。 現代のCSSフレームワークレンダリング:Bootstrapとそれ以降 現代のウェブアプリケーションは、レスポンシブなUI開発を保証するために、Bootstrap、Foundation、Tailwind CSSなどのCSSフレームワークにますます依存しています。 PDF生成ライブラリは、プロフェッショナルなドキュメントの品質とデザインの忠実性を維持するために、これらのフレームワークを正確にレンダリングできる必要があります。 IronPDF: 完全なBootstrapと現代のフレームワーク対応 IronPDFのChromiumレンダリングエンジンは、すべての現代的なCSSフレームワークと仕様を完全にサポートしています: Bootstrap 5: フレックスボックスとCSSグリッドの完全なレンダリングとレスポンシブユーティリティ Bootstrap 4: 完全なカードシステム、ナビゲーションコンポーネント、およびフォームレイアウト Tailwind CSS: すべてのユーティリティファーストクラスとレスポンシブバリアントが正しくレンダリングされます Foundation: 完全なグリッドとコンポーネントシステムのサポート 現代のCSS3: フレックスボックス、CSSグリッド、カスタムプロパティ、アニメーション、トランジション、トランスフォーム JavaScriptの実行: 動的コンテンツおよびフレームワークの対話性の完全サポート Validated with production examples: Bootstrap homepage and official templates convert with browser-accurate fidelity. コード例: Bootstrapによるサービス料金表 using IronPdf; var renderer = new ChromePdfRenderer(); string bootstrapPricing = @" <!DOCTYPE html> <html> <head> <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'> </head> <body> <div class='container my-5'> <h1 class='text-center mb-5'>Service Plans</h1> <div class='row g-4'> <div class='col-md-4'> <div class='card h-100 shadow-sm'> <div class='card-header bg-light text-center py-3'> <h3>Starter</h3> </div> <div class='card-body d-flex flex-column'> <div class='text-center mb-4'> <span class='h2'>$29</span> <span class='text-muted'>/month</span> </div> <ul class='list-unstyled flex-grow-1'> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 100 PDF conversions/month</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Basic templates</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Email support</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 5 GB storage</li> <li class='mb-2 text-muted'><i class='bi bi-x-circle'></i> Priority processing</li> </ul> <button class='btn btn-outline-primary w-100 mt-auto'>Get Started</button> </div> </div> </div> <div class='col-md-4'> <div class='card h-100 shadow border-primary'> <div class='position-absolute top-0 start-50 translate-middle'> <span class='badge bg-primary'>Most Popular</span> </div> <div class='card-header bg-primary text-white text-center py-3'> <h3>Professional</h3> </div> <div class='card-body d-flex flex-column'> <div class='text-center mb-4'> <span class='h2'>$99</span> <span class='text-muted'>/month</span> </div> <ul class='list-unstyled flex-grow-1'> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 1,000 PDF conversions/month</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Premium templates</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Priority support</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 50 GB storage</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Priority processing</li> </ul> <button class='btn btn-primary w-100 mt-auto'>Get Started</button> </div> </div> </div> <div class='col-md-4'> <div class='card h-100 shadow-sm'> <div class='card-header bg-dark text-white text-center py-3'> <h3>Enterprise</h3> </div> <div class='card-body d-flex flex-column'> <div class='text-center mb-4'> <span class='h2'>$299</span> <span class='text-muted'>/month</span> </div> <ul class='list-unstyled flex-grow-1'> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Unlimited conversions</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Custom templates</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Dedicated support</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Unlimited storage</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> SLA guarantee</li> </ul> <button class='btn btn-dark w-100 mt-auto'>Contact Sales</button> </div> </div> </div> </div> </div> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(bootstrapPricing); pdf.SaveAs("pricing-table.pdf"); using IronPdf; var renderer = new ChromePdfRenderer(); string bootstrapPricing = @" <!DOCTYPE html> <html> <head> <link href='https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css' rel='stylesheet'> </head> <body> <div class='container my-5'> <h1 class='text-center mb-5'>Service Plans</h1> <div class='row g-4'> <div class='col-md-4'> <div class='card h-100 shadow-sm'> <div class='card-header bg-light text-center py-3'> <h3>Starter</h3> </div> <div class='card-body d-flex flex-column'> <div class='text-center mb-4'> <span class='h2'>$29</span> <span class='text-muted'>/month</span> </div> <ul class='list-unstyled flex-grow-1'> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 100 PDF conversions/month</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Basic templates</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Email support</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 5 GB storage</li> <li class='mb-2 text-muted'><i class='bi bi-x-circle'></i> Priority processing</li> </ul> <button class='btn btn-outline-primary w-100 mt-auto'>Get Started</button> </div> </div> </div> <div class='col-md-4'> <div class='card h-100 shadow border-primary'> <div class='position-absolute top-0 start-50 translate-middle'> <span class='badge bg-primary'>Most Popular</span> </div> <div class='card-header bg-primary text-white text-center py-3'> <h3>Professional</h3> </div> <div class='card-body d-flex flex-column'> <div class='text-center mb-4'> <span class='h2'>$99</span> <span class='text-muted'>/month</span> </div> <ul class='list-unstyled flex-grow-1'> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 1,000 PDF conversions/month</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Premium templates</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Priority support</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> 50 GB storage</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Priority processing</li> </ul> <button class='btn btn-primary w-100 mt-auto'>Get Started</button> </div> </div> </div> <div class='col-md-4'> <div class='card h-100 shadow-sm'> <div class='card-header bg-dark text-white text-center py-3'> <h3>Enterprise</h3> </div> <div class='card-body d-flex flex-column'> <div class='text-center mb-4'> <span class='h2'>$299</span> <span class='text-muted'>/month</span> </div> <ul class='list-unstyled flex-grow-1'> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Unlimited conversions</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Custom templates</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Dedicated support</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> Unlimited storage</li> <li class='mb-2'><i class='bi bi-check-circle text-success'></i> SLA guarantee</li> </ul> <button class='btn btn-dark w-100 mt-auto'>Contact Sales</button> </div> </div> </div> </div> </div> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(bootstrapPricing); pdf.SaveAs("pricing-table.pdf"); IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 出力: Bootstrapのカードグリッド、フレックスボックスレイアウト、バッジ位置、レスポンシブユーティリティを備えたプロフェッショナルな料金表—すべてPDFで正確に保存されています。 ActivePDF WebGrabber: 限定的なモダンフレームワーク対応 ActivePDF WebGrabberはHTML-to-PDF変換を提供しますが、現代的なCSSフレームワークにはかなりの制限がある古いレンダリングエンジンを使用しています: ネイティブエンジン: カスタムレンダリングでCSS3サポートが限定的 Internet Explorerエンジン: レガシーIEレンダリング、モダンCSS機能なし Bootstrap 4/5サポートなし: フレックスボックスとCSSグリッドの機能はサポートされていません Bootstrap 3の制限: テーブルベースのレイアウトのみが信頼性がある JavaScriptの制限: 現代のブラウザと比較してJavaScriptの実行が限定的 ワークアラウンドが必要: 複雑なBootstrapコンポーネントは多くのCSSの修正が必要 開発者から報告された一般的な問題: レイアウト問題を伴ってレンダリングされるBootstrapナビゲーションバー フレックスボックスを使用したカードコンポーネントが正しく表示されない PDF出力で壊れるレスポンシブグリッドシステム 互換性のためにBootstrapコンポーネントを簡素化または書き直す必要がある 開発への影響: 現代のBootstrapバージョン(4+)を使用して構築されたアプリケーションは、ActivePDF WebGrabberを使用すると大量の追加作業が必要になる。 チームは次のいずれかを行う必要があります: PDF生成用に簡略化されたCSSを並行して維持する(二重のメンテナンス負担) ウェブUIをBootstrap 3またはより古いバージョンに制限する(現代的なレスポンシブ機能を犠牲にする) それぞれのBootstrapコンポーネントを手動でテストし修正する(時間がかかり誤りが生じやすい) BootstrapまたはモダンなCSSフレームワークに大きく依存しているプロジェクトでは、Active PDF WebGrabberのレンダリングの制限により、開発コストが大幅に増加し、デザインの柔軟性が損なわれる可能性があります。 包括的なBootstrapフレームワークの互換性についてのガイダンスについては、Bootstrap & Flexbox CSSガイドをご覧ください。 開発者はなぜIronPDFをActivePDFより選ぶのか? IronPDFのレンダリング速度は、静的サイトでのHTML-to-PDF変換を835ミリ秒で完了し、異なるコンテンツタイプにわたる一貫したパフォーマンスを提供します。このライブラリのメモリ使用量は、通常10MB未満で、ヘッダーとフッターをレンダリングする際にメモリ使用量を75%削減しています。 開発者は、ActivePDFのより複雑なマルチステッププロセスと比べて、IronPDFの簡潔なAPI設計がPDF生成をわずか3行のコードで可能にすることを評価しています。 包括的なドキュメントには100以上のコードサンプルと詳細なチュートリアルが含まれており、チームが迅速に始めるのが容易です。 ActivePDFがより良い選択肢となる場合は? ActivePDFは以下を必要とするエンタープライズ環境で優れています: ウォッチドフォルダーを使用した自動化バッチ処理 300+のファイル形式のサポート(DocConverter経由) Windows Serverでのレガシーシステム統合 高度なフォームフィールド操作とXFAフォームサポート アーカイブ要件のための複数のPDF/A準拠レベル 既存のActivePDFインフラストラクチャまたは特定のエンタープライズワークフロー要件を持つ組織は、ActivePDFのモジュールアプローチを高いコストと複雑さにもかかわらず有益だと感じることがあります。 class="tutorial-segment-title">比較 ActivePDF vs IronPDF 機能比較 どのライブラリがより優れたHTML to PDF変換機能を提供しているか? IronPDFは、完全なChrome V8レンダリングエンジンを使用し、HTML5、CSS3、JavaScript、ウェブフォントに対して98%以上のブラウザ忠実性を提供します。 ActivePDF WebGrabberはネイティブおよびInternet Explorerエンジンを提供しますが、JavaScriptの実行とCSS3サポートが制限されています。 ネイティブエンジンはCSSスタイルシートを尊重せず、IEエンジンはもうサポートされていないInternet Explorer 11に依存しており、現代のウェブ標準が欠けています。 ドキュメント形式のサポートについてのライブラリの比較 IronPDFが一般的な形式(HTML、DOCX、画像、RTF、Markdown)に焦点を当てている一方で、ActivePDF DocConverterは、CADファイル、レガシードキュメント形式、および特化したエンタープライズ形式を含む300以上のファイル形式をサポートしています。 これにより、ActivePDFは多様なドキュメントタイプを扱う組織にとってより適しています。 PDFの操作機能についてはどうか? 両ライブラリとも包括的なPDF操作機能を提供しています: IronPDFが提供するもの: HTML/CSSスタイリングによる組み込み透かし 既定のマージフィールド付きヘッダー/フッター用の簡易API 一行コードメソッドでの一般的なタスク 統合されたフォーム作成と記入 視覚的表現を伴うデジタル署名 ActivePDFが提供するもの: 高度なフォームフィールド操作(ツールキット経由) PDF内部のより詳細な制御 エンタープライズグレードの編集機能 複数のPDF/A準拠レベル 特定のタスク向けの専門コンポーネント class="tutorial-segment-title">ステップ1: インストール IronPDFのインストール方法 IronPDFのインストール方法はどれを選べばよいか? IronPDFをインストールする方法は複数あり、NuGetパッケージマネージャが最も便利です: NuGetパッケージマネージャ Visual StudioでNuGetパッケージマネージャを開き、IronPDFを検索します: :InstallCmd :InstallCmd SHELL IronPDF.dllを手動でダウンロードする あるいは、IronPDF.dllをダウンロードし、プロジェクトにその参照を追加します。 インストール後、次を追加してアクセスを検証します: using IronPdf; using IronPdf; Imports IronPdf $vbLabelText $csharpLabel IronPDFは.NET 9および10と、Core、Standard、Framework 4.6.2+を含むすべてのモダン.NETバージョンをサポートしています。 ActivePDFコンポーネントのインストール方法 ActivePDF WebGrabberをインストールするにはどうすればよいか? ActivePDF WebGrabberはより複雑なインストールプロセスを必要とします: ActivePDFのウェブサイトからインストーラーをダウンロードする ActivePDFの営業からライセンスキーをリクエストする(評価キーも利用可能) 管理者権限でインストーラを実行 インストール中にWebGrabberサービスを設定 Windows Server 2012 以降の場合、サービス用の専用ユーザーアカウントを作成 インストール後、以下からWebGrabberの参照を追加します: C:\Program Files\ActivePDF\WebGrabber\bin\APWebGrabber.Net45.dll ActivePDF DocConverterをインストールするにはどうすればよいか? DocConverterは同様のインストールパターンに従います: DocConverterのインストーラーをダウンロードする 管理者権限でインストール ドラッグアンドドロップ変換を使用する場合、監視フォルダを設定 バッチ処理のための構成マネージャを設定 注意: ActivePDFコンポーネントはWindows Serverが必要で、IronPDFのようなクロスプラットフォーム展開をサポートしていません。 class="tutorial-segment-title">ハウツーチュートリアル HTML文字列をPDFファイルに変換 両ライブラリが共通のタスクにどのように対処するかを比較してみましょう: HTML文字列をPDFファイルに変換。 3.1. IronPDFでのHTML文字列 /** * HTML String to PDF * anchor-html-string-with-ironpdf **/ using IronPdf; static void Main(string[] args) { // Create rendering converter var renderer = new ChromePdfRenderer(); // HTML Source string html = "<h1>Hello World!</h1> <h2>Welcome to IronPDF</h2> "; // Convert HTML string to PDF file var pdf = renderer.RenderHtmlAsPdf(html); // Save the file pdf.SaveAs("E:/sample.pdf"); } /** * HTML String to PDF * anchor-html-string-with-ironpdf **/ using IronPdf; static void Main(string[] args) { // Create rendering converter var renderer = new ChromePdfRenderer(); // HTML Source string html = "<h1>Hello World!</h1> <h2>Welcome to IronPDF</h2> "; // Convert HTML string to PDF file var pdf = renderer.RenderHtmlAsPdf(html); // Save the file pdf.SaveAs("E:/sample.pdf"); } ''' ''' * HTML String to PDF ''' * anchor-html-string-with-ironpdf ''' * Imports IronPdf Shared Sub Main(ByVal args() As String) ' Create rendering converter Dim renderer = New ChromePdfRenderer() ' HTML Source Dim html As String = "<h1>Hello World!</h1> <h2>Welcome to IronPDF</h2> " ' Convert HTML string to PDF file Dim pdf = renderer.RenderHtmlAsPdf(html) ' Save the file pdf.SaveAs("E:/sample.pdf") End Sub $vbLabelText $csharpLabel IronPDFのアプローチの主な利点: 変換に必要なコードはわずか3行 エンコーディングとレンダリングの自動ハンドリング Chromeエンジンビルトインにより正確なレンダリングを保証 別々のファイルパスと名前の設定不要 3.2. ActivePDF WebGrabberでのHTML文字列 using APWebGrabber; static void Main(string[] args) { // Instantiate Object WebGrabber wg = new WebGrabber(); // HTML Source string html = "<h1>Hello World!</h1> <h2>Welcome to ActivePDF WebGrabber</h2>"; // Assign source HTML to WebGrabber wg.CreateFromHTMLText = html; // Specify file directory wg.OutputDirectory = "E:/"; // File name wg.NewDocumentName = "sample.pdf"; // Convert source HTML to PDF file wg.ConvertToPDF(); } using APWebGrabber; static void Main(string[] args) { // Instantiate Object WebGrabber wg = new WebGrabber(); // HTML Source string html = "<h1>Hello World!</h1> <h2>Welcome to ActivePDF WebGrabber</h2>"; // Assign source HTML to WebGrabber wg.CreateFromHTMLText = html; // Specify file directory wg.OutputDirectory = "E:/"; // File name wg.NewDocumentName = "sample.pdf"; // Convert source HTML to PDF file wg.ConvertToPDF(); } Imports APWebGrabber Shared Sub Main(ByVal args() As String) ' Instantiate Object Dim wg As New WebGrabber() ' HTML Source Dim html As String = "<h1>Hello World!</h1> <h2>Welcome to ActivePDF WebGrabber</h2>" ' Assign source HTML to WebGrabber wg.CreateFromHTMLText = html ' Specify file directory wg.OutputDirectory = "E:/" ' File name wg.NewDocumentName = "sample.pdf" ' Convert source HTML to PDF file wg.ConvertToPDF() End Sub $vbLabelText $csharpLabel 3.3. 両ライブラリによる高度なHTML文字列の例 両ライブラリがCSSスタイリングを含むより複雑なHTMLをどのように処理するかを見てみましょう: IronPDF高度な例: using IronPdf; var renderer = new ChromePdfRenderer(); // Configure rendering options renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print; renderer.RenderingOptions.PrintHtmlBackgrounds = true; renderer.RenderingOptions.CreatePdfFormsFromHtml = true; string advancedHtml = @" <html> <head> <style> body { font-family: Arial, sans-serif; } .invoice { border: 1px solid #ccc; padding: 20px; } .header { background-color: #f0f0f0; padding: 10px; } </style> </head> <body> <div class='invoice'> <div class='header'> <h1>Invoice #12345</h1> </div> <form> <input type='text' name='customer' placeholder='Customer Name'> </form> </div> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(advancedHtml); pdf.SaveAs("advanced-invoice.pdf"); using IronPdf; var renderer = new ChromePdfRenderer(); // Configure rendering options renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print; renderer.RenderingOptions.PrintHtmlBackgrounds = true; renderer.RenderingOptions.CreatePdfFormsFromHtml = true; string advancedHtml = @" <html> <head> <style> body { font-family: Arial, sans-serif; } .invoice { border: 1px solid #ccc; padding: 20px; } .header { background-color: #f0f0f0; padding: 10px; } </style> </head> <body> <div class='invoice'> <div class='header'> <h1>Invoice #12345</h1> </div> <form> <input type='text' name='customer' placeholder='Customer Name'> </form> </div> </body> </html>"; var pdf = renderer.RenderHtmlAsPdf(advancedHtml); pdf.SaveAs("advanced-invoice.pdf"); Imports IronPdf Private renderer = New ChromePdfRenderer() ' Configure rendering options renderer.RenderingOptions.CssMediaType = PdfCssMediaType.Print renderer.RenderingOptions.PrintHtmlBackgrounds = True renderer.RenderingOptions.CreatePdfFormsFromHtml = True Dim advancedHtml As String = " <html> <head> <style> body { font-family: Arial, sans-serif; } .invoice { border: 1px solid #ccc; padding: 20px; } .header { background-color: #f0f0f0; padding: 10px; } </style> </head> <body> <div class='invoice'> <div class='header'> <h1>Invoice #12345</h1> </div> <form> <input type='text' name='customer' placeholder='Customer Name'> </form> </div> </body> </html>" Dim pdf = renderer.RenderHtmlAsPdf(advancedHtml) pdf.SaveAs("advanced-invoice.pdf") $vbLabelText $csharpLabel ChromePdfRendererクラスは、CSSメディアタイプの選択、背景レンダリング、HTML入力要素からのフォームフィールド自動作成を含むレンダリングプロセスに対する広範な制御を提供します。 HTMLファイルをPDFファイルに変換 4.1. IronPDFでのHTMLファイル /** * HTML File to PDF * anchor-html-file-with-ironpdf **/ using IronPdf; static void Main(string[] args) { // Create rendering converter var renderer = new ChromePdfRenderer(); // Render HTML file to PDF var pdf = renderer.RenderHtmlFileAsPdf("E:/myHtmlFile.html"); // Save to target location pdf.SaveAs("E:/Sample.pdf"); } /** * HTML File to PDF * anchor-html-file-with-ironpdf **/ using IronPdf; static void Main(string[] args) { // Create rendering converter var renderer = new ChromePdfRenderer(); // Render HTML file to PDF var pdf = renderer.RenderHtmlFileAsPdf("E:/myHtmlFile.html"); // Save to target location pdf.SaveAs("E:/Sample.pdf"); } ''' ''' * HTML File to PDF ''' * anchor-html-file-with-ironpdf ''' * Imports IronPdf Shared Sub Main(ByVal args() As String) ' Create rendering converter Dim renderer = New ChromePdfRenderer() ' Render HTML file to PDF Dim pdf = renderer.RenderHtmlFileAsPdf("E:/myHtmlFile.html") ' Save to target location pdf.SaveAs("E:/Sample.pdf") End Sub $vbLabelText $csharpLabel IronPDFは自動的に処理します: 外部CSSおよびJavaScriptファイル 画像参照 フォントの読み込み 相対パスの解決 4.2. ActivePDF WebGrabberでのHTMLファイル using APWebGrabber; static void Main(string[] args) { // Instantiate Object WebGrabber wg = new WebGrabber(); // Specify file path to be converted wg.URL = "E:/myHtmlFile.html"; // Specify the directory for newly generated file wg.OutputDirectory = "E:/"; // Newly generated file name wg.NewDocumentName = "Sample.pdf"; // Convert HTML file to PDF wg.ConvertToPDF(); } using APWebGrabber; static void Main(string[] args) { // Instantiate Object WebGrabber wg = new WebGrabber(); // Specify file path to be converted wg.URL = "E:/myHtmlFile.html"; // Specify the directory for newly generated file wg.OutputDirectory = "E:/"; // Newly generated file name wg.NewDocumentName = "Sample.pdf"; // Convert HTML file to PDF wg.ConvertToPDF(); } Imports APWebGrabber Shared Sub Main(ByVal args() As String) ' Instantiate Object Dim wg As New WebGrabber() ' Specify file path to be converted wg.URL = "E:/myHtmlFile.html" ' Specify the directory for newly generated file wg.OutputDirectory = "E:/" ' Newly generated file name wg.NewDocumentName = "Sample.pdf" ' Convert HTML file to PDF wg.ConvertToPDF() End Sub $vbLabelText $csharpLabel ActivePDF WebGrabberはローカルファイルに“URL”プロパティを使用するため、開発者がファイル固有のメソッドを期待する場合、混乱を招く可能性があります。 URLをPDFファイルに変換 5.1. IronPDFでのURL /** * URL to PDF * anchor-url-with-ironpdf **/ using IronPdf; static void Main(string[] args) { // Create rendering converter var renderer = new ChromePdfRenderer(); // Specify URL var pdf = renderer.RenderUrlAsPdf("https://ironpdf.com"); // Save the file pdf.SaveAs("E:/Sample.pdf"); } /** * URL to PDF * anchor-url-with-ironpdf **/ using IronPdf; static void Main(string[] args) { // Create rendering converter var renderer = new ChromePdfRenderer(); // Specify URL var pdf = renderer.RenderUrlAsPdf("https://ironpdf.com"); // Save the file pdf.SaveAs("E:/Sample.pdf"); } ''' ''' * URL to PDF ''' * anchor-url-with-ironpdf ''' * Imports IronPdf Shared Sub Main(ByVal args() As String) ' Create rendering converter Dim renderer = New ChromePdfRenderer() ' Specify URL Dim pdf = renderer.RenderUrlAsPdf("https://ironpdf.com") ' Save the file pdf.SaveAs("E:/Sample.pdf") End Sub $vbLabelText $csharpLabel 5.2. IronPDFでの非同期 URL変換 IronPDFは優れた非同期サポートを提供し、より良いパフォーマンスを実現します: using IronPdf; using System.Threading.Tasks; static async Task Main(string[] args) { var renderer = new ChromePdfRenderer(); // Configure for complex pages renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds renderer.RenderingOptions.WaitFor.JavaScript(1500); // Wait for JS // Async conversion var pdf = await renderer.RenderUrlAsPdfAsync("https://complex-spa.com"); await pdf.SaveAsAsync("E:/async-sample.pdf"); } using IronPdf; using System.Threading.Tasks; static async Task Main(string[] args) { var renderer = new ChromePdfRenderer(); // Configure for complex pages renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds renderer.RenderingOptions.WaitFor.JavaScript(1500); // Wait for JS // Async conversion var pdf = await renderer.RenderUrlAsPdfAsync("https://complex-spa.com"); await pdf.SaveAsAsync("E:/async-sample.pdf"); } Imports IronPdf Imports System.Threading.Tasks Shared Async Function Main(ByVal args() As String) As Task Dim renderer = New ChromePdfRenderer() ' Configure for complex pages renderer.RenderingOptions.WaitFor.RenderDelay(2000) ' Wait 2 seconds renderer.RenderingOptions.WaitFor.JavaScript(1500) ' Wait for JS ' Async conversion Dim pdf = Await renderer.RenderUrlAsPdfAsync("https://complex-spa.com") Await pdf.SaveAsAsync("E:/async-sample.pdf") End Function $vbLabelText $csharpLabel WaitForクラスは、特定の要素、ネットワークアイドル状態、またはカスタムJavaScriptイベントを待機するなど、レンダリングタイミングを正確に制御します。 5.3. ActivePDF WebGrabberでのURL PDFに透かしを作成する using APWebGrabber; static void Main(string[] args) { // Instantiate Object WebGrabber wg = new WebGrabber(); // Specify URL wg.URL = "https://www.example.com/"; // Specify the directory for newly generated file wg.OutputDirectory = "E:/"; // Specify file name wg.NewDocumentName = "Sample.pdf"; // Set timeout for conversion wg.TimeoutSpan = new TimeSpan(0, 0, 30); // Convert specified URL webpage to PDF wg.ConvertToPDF(); } using APWebGrabber; static void Main(string[] args) { // Instantiate Object WebGrabber wg = new WebGrabber(); // Specify URL wg.URL = "https://www.example.com/"; // Specify the directory for newly generated file wg.OutputDirectory = "E:/"; // Specify file name wg.NewDocumentName = "Sample.pdf"; // Set timeout for conversion wg.TimeoutSpan = new TimeSpan(0, 0, 30); // Convert specified URL webpage to PDF wg.ConvertToPDF(); } Imports APWebGrabber Shared Sub Main(ByVal args() As String) ' Instantiate Object Dim wg As New WebGrabber() ' Specify URL wg.URL = "https://www.example.com/" ' Specify the directory for newly generated file wg.OutputDirectory = "E:/" ' Specify file name wg.NewDocumentName = "Sample.pdf" ' Set timeout for conversion wg.TimeoutSpan = New TimeSpan(0, 0, 30) ' Convert specified URL webpage to PDF wg.ConvertToPDF() End Sub $vbLabelText $csharpLabel 6.1. IronPDFでの透かし IronPDFはHTML/CSSを通じて柔軟な透かしを提供します: IronPDFでの高度な透かし: /** * Watermark PDF * anchor-watermark-with-ironpdf **/ using IronPdf; static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // Source HTML string string html = "<h1 style='text-align:center'>WaterMark Example</h1>"; // Create PDF var pdf = renderer.RenderHtmlAsPdf(html); // Apply watermark with HTML/CSS pdf.ApplyWatermark("<h2 style='color:red; opacity:0.5'>CONFIDENTIAL</h2>", rotation: 30, opacity: 50); // Save the document pdf.SaveAs("E:/Sample.pdf"); } /** * Watermark PDF * anchor-watermark-with-ironpdf **/ using IronPdf; static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // Source HTML string string html = "<h1 style='text-align:center'>WaterMark Example</h1>"; // Create PDF var pdf = renderer.RenderHtmlAsPdf(html); // Apply watermark with HTML/CSS pdf.ApplyWatermark("<h2 style='color:red; opacity:0.5'>CONFIDENTIAL</h2>", rotation: 30, opacity: 50); // Save the document pdf.SaveAs("E:/Sample.pdf"); } ''' ''' * Watermark PDF ''' * anchor-watermark-with-ironpdf ''' * Imports IronPdf Shared Sub Main(ByVal args() As String) Dim renderer = New ChromePdfRenderer() ' Source HTML string Dim html As String = "<h1 style='text-align:center'>WaterMark Example</h1>" ' Create PDF Dim pdf = renderer.RenderHtmlAsPdf(html) ' Apply watermark with HTML/CSS pdf.ApplyWatermark("<h2 style='color:red; opacity:0.5'>CONFIDENTIAL</h2>", rotation:= 30, opacity:= 50) ' Save the document pdf.SaveAs("E:/Sample.pdf") End Sub $vbLabelText $csharpLabel 6.2. ActivePDF WebGrabberでの透かし // Image watermark pdf.ApplyWatermark($@"<img src='logo.png' style='width:200px'>", rotation: 0, opacity: 30, verticalAlignment: VerticalAlignment.Middle); // Complex HTML watermark with positioning string complexWatermark = @" <div style='text-align:center; font-family:Arial'> <h1 style='color:#ff0000'>DRAFT</h1> <p>Generated: " + DateTime.Now.ToString() + @"</p> </div>"; pdf.ApplyWatermark(complexWatermark, rotation: 45, opacity: 25); // Image watermark pdf.ApplyWatermark($@"<img src='logo.png' style='width:200px'>", rotation: 0, opacity: 30, verticalAlignment: VerticalAlignment.Middle); // Complex HTML watermark with positioning string complexWatermark = @" <div style='text-align:center; font-family:Arial'> <h1 style='color:#ff0000'>DRAFT</h1> <p>Generated: " + DateTime.Now.ToString() + @"</p> </div>"; pdf.ApplyWatermark(complexWatermark, rotation: 45, opacity: 25); ' Image watermark pdf.ApplyWatermark($"<img src='logo.png' style='width:200px'>", rotation:= 0, opacity:= 30, verticalAlignment:= VerticalAlignment.Middle) ' Complex HTML watermark with positioning Dim complexWatermark As String = " <div style='text-align:center; font-family:Arial'> <h1 style='color:#ff0000'>DRAFT</h1> <p>Generated: " & DateTime.Now.ToString() & "</p> </div>" pdf.ApplyWatermark(complexWatermark, rotation:= 45, opacity:= 25) $vbLabelText $csharpLabel ActivePDFは文字スタンプをワークアラウンドとして使用することを要求します: ActivePDFのアプローチはテキストのみの透かしに限定され、手動での位置計算が必要です。 using APWebGrabber; static void Main(string[] args) { WebGrabber wg = new WebGrabber(); string html = "<h1 style='text-align:center'>WaterMark Example</h1>"; wg.CreateFromHTMLText = html; // Add text stamp as watermark wg.AddStampText(270.0f, 350.0f, "WaterMark"); // Configure stamp appearance wg.StampFontSize = 20; wg.StampFont = "Times New Roman"; wg.StampFontTransparency = 1f; wg.StampRotation = 45.0f; wg.StampColorNET = new ADK.PDF.Color() { Red = 255, Green = 0, Blue = 0, Gray = 0 }; wg.OutputDirectory = "E:/"; wg.NewDocumentName = "Sample.pdf"; wg.ConvertToPDF(); } using APWebGrabber; static void Main(string[] args) { WebGrabber wg = new WebGrabber(); string html = "<h1 style='text-align:center'>WaterMark Example</h1>"; wg.CreateFromHTMLText = html; // Add text stamp as watermark wg.AddStampText(270.0f, 350.0f, "WaterMark"); // Configure stamp appearance wg.StampFontSize = 20; wg.StampFont = "Times New Roman"; wg.StampFontTransparency = 1f; wg.StampRotation = 45.0f; wg.StampColorNET = new ADK.PDF.Color() { Red = 255, Green = 0, Blue = 0, Gray = 0 }; wg.OutputDirectory = "E:/"; wg.NewDocumentName = "Sample.pdf"; wg.ConvertToPDF(); } Imports APWebGrabber Shared Sub Main(ByVal args() As String) Dim wg As New WebGrabber() Dim html As String = "<h1 style='text-align:center'>WaterMark Example</h1>" wg.CreateFromHTMLText = html ' Add text stamp as watermark wg.AddStampText(270.0F, 350.0F, "WaterMark") ' Configure stamp appearance wg.StampFontSize = 20 wg.StampFont = "Times New Roman" wg.StampFontTransparency = 1F wg.StampRotation = 45.0F wg.StampColorNET = New ADK.PDF.Color() With { .Red = 255, .Green = 0, .Blue = 0, .Gray = 0 } wg.OutputDirectory = "E:/" wg.NewDocumentName = "Sample.pdf" wg.ConvertToPDF() End Sub $vbLabelText $csharpLabel PDFのヘッダーとフッターを設定する 7.1. IronPDFでのヘッダーとフッター IronPDFはシンプルなテキストと複雑なHTML両方のヘッダー/フッターを提供します: HTMLを使用したより複雑なヘッダー/フッターの場合: /** * Set Header Footers * anchor-headers-and-footers-with-ironpdf **/ using IronPdf; static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // Configure text header/footer renderer.RenderingOptions.TextHeader = new TextHeaderFooter() { LeftText = "Company Name", CenterText = "{page} of {total-pages}", RightText = "{date} {time}", DrawDividerLine = true, FontSize = 12, FontFamily = "Arial" }; renderer.RenderingOptions.TextFooter = new TextHeaderFooter() { CenterText = "Copyright © 2025", RightText = "Page {page}", FontSize = 10 }; // HTML content string html = "<h1>Document Content</h1><p>Lorem ipsum...</p>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("E:/document.pdf"); } /** * Set Header Footers * anchor-headers-and-footers-with-ironpdf **/ using IronPdf; static void Main(string[] args) { var renderer = new ChromePdfRenderer(); // Configure text header/footer renderer.RenderingOptions.TextHeader = new TextHeaderFooter() { LeftText = "Company Name", CenterText = "{page} of {total-pages}", RightText = "{date} {time}", DrawDividerLine = true, FontSize = 12, FontFamily = "Arial" }; renderer.RenderingOptions.TextFooter = new TextHeaderFooter() { CenterText = "Copyright © 2025", RightText = "Page {page}", FontSize = 10 }; // HTML content string html = "<h1>Document Content</h1><p>Lorem ipsum...</p>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("E:/document.pdf"); } ''' ''' * Set Header Footers ''' * anchor-headers-and-footers-with-ironpdf ''' * Imports IronPdf Shared Sub Main(ByVal args() As String) Dim renderer = New ChromePdfRenderer() ' Configure text header/footer renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With { .LeftText = "Company Name", .CenterText = "{page} of {total-pages}", .RightText = "{date} {time}", .DrawDividerLine = True, .FontSize = 12, .FontFamily = "Arial" } renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With { .CenterText = "Copyright © 2025", .RightText = "Page {page}", .FontSize = 10 } ' HTML content Dim html As String = "<h1>Document Content</h1><p>Lorem ipsum...</p>" Dim pdf = renderer.RenderHtmlAsPdf(html) pdf.SaveAs("E:/document.pdf") End Sub $vbLabelText $csharpLabel IronPDFが提供する既定のマージフィールドには以下が含まれます: // HTML headers with dynamic content renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = @" <div style='display: flex; justify-content: space-between; padding: 10px;'> <img src='logo.png' style='height: 30px;'> <div>{page} / {total-pages}</div> </div>", Height = 50 }; // HTML headers with dynamic content renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = @" <div style='display: flex; justify-content: space-between; padding: 10px;'> <img src='logo.png' style='height: 30px;'> <div>{page} / {total-pages}</div> </div>", Height = 50 }; ' HTML headers with dynamic content renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With { .HtmlFragment = " <div style='display: flex; justify-content: space-between; padding: 10px;'> <img src='logo.png' style='height: 30px;'> <div>{page} / {total-pages}</div> </div>", .Height = 50 } $vbLabelText $csharpLabel {page} - 現在のページ番号 {total-pages} - 合計ページ数 {url} - ソースURL(該当する場合) {date} - 現在の日付 {time} - 現在の時間 {html-title} - HTMLドキュメントのタイトル {pdf-title} - PDFメタデータのタイトル 7.2. ActivePDF WebGrabberでのヘッダーとフッター 注意: ActivePDFは独自のプレースホルダ(%cp% 現在のページ、%tp% 総ページ数)を使用し、手動でのHTML構築を必要とします。 using APWebGrabber; static void Main(string[] args) { WebGrabber wg = new WebGrabber(); string html = @"<h1 style='text-align:center;'>Page Content</h1>"; wg.CreateFromHTMLText = html; // Configure header wg.HeaderHeight = 0.5f; wg.HeaderHTML = "<div style='float: left;'>Header Text</div>"; wg.HeaderHTML += $"<div style='float: right;'>{DateTime.Now.ToShortDateString()}</div>"; // Configure footer wg.FooterHeight = 0.5f; wg.FooterHTML = "<div style='text-align: right;'>%cp% of %tp%</div>"; wg.OutputDirectory = "E:/"; wg.NewDocumentName = "Sample.pdf"; wg.ConvertToPDF(); } using APWebGrabber; static void Main(string[] args) { WebGrabber wg = new WebGrabber(); string html = @"<h1 style='text-align:center;'>Page Content</h1>"; wg.CreateFromHTMLText = html; // Configure header wg.HeaderHeight = 0.5f; wg.HeaderHTML = "<div style='float: left;'>Header Text</div>"; wg.HeaderHTML += $"<div style='float: right;'>{DateTime.Now.ToShortDateString()}</div>"; // Configure footer wg.FooterHeight = 0.5f; wg.FooterHTML = "<div style='text-align: right;'>%cp% of %tp%</div>"; wg.OutputDirectory = "E:/"; wg.NewDocumentName = "Sample.pdf"; wg.ConvertToPDF(); } Imports APWebGrabber Shared Sub Main(ByVal args() As String) Dim wg As New WebGrabber() Dim html As String = "<h1 style='text-align:center;'>Page Content</h1>" wg.CreateFromHTMLText = html ' Configure header wg.HeaderHeight = 0.5F wg.HeaderHTML = "<div style='float: left;'>Header Text</div>" wg.HeaderHTML += $"<div style='float: right;'>{DateTime.Now.ToShortDateString()}</div>" ' Configure footer wg.FooterHeight = 0.5F wg.FooterHTML = "<div style='text-align: right;'>%cp% of %tp%</div>" wg.OutputDirectory = "E:/" wg.NewDocumentName = "Sample.pdf" wg.ConvertToPDF() End Sub $vbLabelText $csharpLabel 高度なPDF機能の比較 8.1. PDFフォーム作成と操作 IronPDF フォームの例 ActivePDF Toolkit フォームの例 using IronPdf; // Create a PDF with form fields var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.CreatePdfFormsFromHtml = true; string formHtml = @" <form> <label>Name: <input type='text' name='fullname'></label><br> <label>Email: <input type='email' name='email'></label><br> <label>Subscribe: <input type='checkbox' name='subscribe'></label><br> <label> Plan: <select name='plan'> <option>Basic</option> <option>Premium</option> </select> </label> </form>"; var pdf = renderer.RenderHtmlAsPdf(formHtml); // Fill form fields programmatically pdf.Form.FindFormField("fullname").Value = "John Doe"; pdf.Form.FindFormField("email").Value = "john@example.com"; pdf.Form.FindFormField("subscribe").Value = "Yes"; pdf.SaveAs("filled-form.pdf"); using IronPdf; // Create a PDF with form fields var renderer = new ChromePdfRenderer(); renderer.RenderingOptions.CreatePdfFormsFromHtml = true; string formHtml = @" <form> <label>Name: <input type='text' name='fullname'></label><br> <label>Email: <input type='email' name='email'></label><br> <label>Subscribe: <input type='checkbox' name='subscribe'></label><br> <label> Plan: <select name='plan'> <option>Basic</option> <option>Premium</option> </select> </label> </form>"; var pdf = renderer.RenderHtmlAsPdf(formHtml); // Fill form fields programmatically pdf.Form.FindFormField("fullname").Value = "John Doe"; pdf.Form.FindFormField("email").Value = "john@example.com"; pdf.Form.FindFormField("subscribe").Value = "Yes"; pdf.SaveAs("filled-form.pdf"); Imports IronPdf ' Create a PDF with form fields Private renderer = New ChromePdfRenderer() renderer.RenderingOptions.CreatePdfFormsFromHtml = True Dim formHtml As String = " <form> <label>Name: <input type='text' name='fullname'></label><br> <label>Email: <input type='email' name='email'></label><br> <label>Subscribe: <input type='checkbox' name='subscribe'></label><br> <label> Plan: <select name='plan'> <option>Basic</option> <option>Premium</option> </select> </label> </form>" Dim pdf = renderer.RenderHtmlAsPdf(formHtml) ' Fill form fields programmatically pdf.Form.FindFormField("fullname").Value = "John Doe" pdf.Form.FindFormField("email").Value = "john@example.com" pdf.Form.FindFormField("subscribe").Value = "Yes" pdf.SaveAs("filled-form.pdf") $vbLabelText $csharpLabel 8.2. PDF/A準拠 // ActivePDF requires separate Toolkit component for forms APToolkitNET.Toolkit toolkit = new APToolkitNET.Toolkit(); // Open existing PDF toolkit.OpenInputFile("form-template.pdf"); // Set form field values toolkit.SetFormFieldData("fullname", "John Doe", -997); toolkit.SetFormFieldData("email", "john@example.com", -997); // Save filled form toolkit.CopyForm(0, 0); toolkit.SaveAs("filled-form.pdf"); // ActivePDF requires separate Toolkit component for forms APToolkitNET.Toolkit toolkit = new APToolkitNET.Toolkit(); // Open existing PDF toolkit.OpenInputFile("form-template.pdf"); // Set form field values toolkit.SetFormFieldData("fullname", "John Doe", -997); toolkit.SetFormFieldData("email", "john@example.com", -997); // Save filled form toolkit.CopyForm(0, 0); toolkit.SaveAs("filled-form.pdf"); ' ActivePDF requires separate Toolkit component for forms Dim toolkit As New APToolkitNET.Toolkit() ' Open existing PDF toolkit.OpenInputFile("form-template.pdf") ' Set form field values toolkit.SetFormFieldData("fullname", "John Doe", -997) toolkit.SetFormFieldData("email", "john@example.com", -997) ' Save filled form toolkit.CopyForm(0, 0) toolkit.SaveAs("filled-form.pdf") $vbLabelText $csharpLabel 両ライブラリはPDF/Aをサポートしていますが、アプローチが異なります: IronPDF PDF/A ActivePDF DocConverter PDF/A using IronPdf; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Archival Document</h1>"); // Convert to PDF/A-3B pdf.SaveAsPdfA("archive.pdf", PdfAVersions.PdfA3B); using IronPdf; var renderer = new ChromePdfRenderer(); var pdf = renderer.RenderHtmlAsPdf("<h1>Archival Document</h1>"); // Convert to PDF/A-3B pdf.SaveAsPdfA("archive.pdf", PdfAVersions.PdfA3B); Imports IronPdf Private renderer = New ChromePdfRenderer() Private pdf = renderer.RenderHtmlAsPdf("<h1>Archival Document</h1>") ' Convert to PDF/A-3B pdf.SaveAsPdfA("archive.pdf", PdfAVersions.PdfA3B) $vbLabelText $csharpLabel 8.3. デジタル署名 // Requires DocConverter component DocConverter dc = new DocConverter(); dc.SetPDFACompliance(PDFACompliance.PDFA2B); dc.ConvertToPDF("input.html", "output.pdf"); // Requires DocConverter component DocConverter dc = new DocConverter(); dc.SetPDFACompliance(PDFACompliance.PDFA2B); dc.ConvertToPDF("input.html", "output.pdf"); ' Requires DocConverter component Dim dc As New DocConverter() dc.SetPDFACompliance(PDFACompliance.PDFA2B) dc.ConvertToPDF("input.html", "output.pdf") $vbLabelText $csharpLabel IronPDF デジタル署名 8.4. バッチ処理の比較 using IronPdf; using IronPdf.Signing; // Load or create PDF var pdf = PdfDocument.FromFile("document.pdf"); // Create signature with certificate var signature = new PdfSignature("certificate.pfx", "password"); // Configure signature appearance signature.SignatureImage = new PdfSignatureImage("signature.png"); signature.SigningContact = "john@company.com"; signature.SigningReason = "Document Approval"; // Apply signature pdf.Sign(signature); pdf.SaveAs("signed.pdf"); using IronPdf; using IronPdf.Signing; // Load or create PDF var pdf = PdfDocument.FromFile("document.pdf"); // Create signature with certificate var signature = new PdfSignature("certificate.pfx", "password"); // Configure signature appearance signature.SignatureImage = new PdfSignatureImage("signature.png"); signature.SigningContact = "john@company.com"; signature.SigningReason = "Document Approval"; // Apply signature pdf.Sign(signature); pdf.SaveAs("signed.pdf"); Imports IronPdf Imports IronPdf.Signing ' Load or create PDF Private pdf = PdfDocument.FromFile("document.pdf") ' Create signature with certificate Private signature = New PdfSignature("certificate.pfx", "password") ' Configure signature appearance signature.SignatureImage = New PdfSignatureImage("signature.png") signature.SigningContact = "john@company.com" signature.SigningReason = "Document Approval" ' Apply signature pdf.Sign(signature) pdf.SaveAs("signed.pdf") $vbLabelText $csharpLabel ActivePDF DocConverter バッチ処理 IronPDFのバッチ処理 using IronPdf; using System.Threading.Tasks; using System.IO; static async Task BatchConvertAsync() { var renderer = new ChromePdfRenderer(); var tasks = new List<Task>(); foreach (var file in Directory.GetFiles("input", "*.html")) { tasks.Add(Task.Run(async () => { var pdf = await renderer.RenderHtmlFileAsPdfAsync(file); var outputPath = Path.Combine("output", Path.GetFileNameWithoutExtension(file) + ".pdf"); await pdf.SaveAsAsync(outputPath); })); } await Task.WhenAll(tasks); } using IronPdf; using System.Threading.Tasks; using System.IO; static async Task BatchConvertAsync() { var renderer = new ChromePdfRenderer(); var tasks = new List<Task>(); foreach (var file in Directory.GetFiles("input", "*.html")) { tasks.Add(Task.Run(async () => { var pdf = await renderer.RenderHtmlFileAsPdfAsync(file); var outputPath = Path.Combine("output", Path.GetFileNameWithoutExtension(file) + ".pdf"); await pdf.SaveAsAsync(outputPath); })); } await Task.WhenAll(tasks); } Imports IronPdf Imports System.Threading.Tasks Imports System.IO Shared Async Function BatchConvertAsync() As Task Dim renderer = New ChromePdfRenderer() Dim tasks = New List(Of Task)() For Each file In Directory.GetFiles("input", "*.html") tasks.Add(Task.Run(Async Function() Dim pdf = Await renderer.RenderHtmlFileAsPdfAsync(file) Dim outputPath = Path.Combine("output", Path.GetFileNameWithoutExtension(file) & ".pdf") Await pdf.SaveAsAsync(outputPath) End Function)) Next file Await Task.WhenAll(tasks) End Function $vbLabelText $csharpLabel パフォーマンスとリソースの比較 // DocConverter supports watched folders for automatic conversion DocConverter dc = new DocConverter(); // Configure watched folder dc.AddWatchedFolder(@"C:\Input", @"C:\Output", "*.html"); dc.StartWatching(); // Files dropped in the input folder are automatically converted // DocConverter supports watched folders for automatic conversion DocConverter dc = new DocConverter(); // Configure watched folder dc.AddWatchedFolder(@"C:\Input", @"C:\Output", "*.html"); dc.StartWatching(); // Files dropped in the input folder are automatically converted ' DocConverter supports watched folders for automatic conversion Dim dc As New DocConverter() ' Configure watched folder dc.AddWatchedFolder("C:\Input", "C:\Output", "*.html") dc.StartWatching() ' Files dropped in the input folder are automatically converted $vbLabelText $csharpLabel ライブラリのパフォーマンスはどう比較されるか? ベンチマークテストおよび実世界の使用に基づいて: IronPDF パフォーマンスメトリクス HTMLレンダリング: 単純なコンテンツで約125ms 複雑なサイト: 835ms(静的ウェブサイトでのテスト) メモリ使用量: 通常10MB未満 初期起動: 2-3秒(Chromeエンジン初期化) ヘッダー/フッターでのメモリ使用量75%削減 大型ドキュメントの読み込み時間を80%短縮 ActivePDF パフォーマンス特性 選択したレンダリングエンジンに基づいて可変 ネイティブエンジン: 単純なHTMLで高速 IEエンジン: より低速だがレガシーコンテンツとの互換性がより高い サービスベースのアーキテクチャがオーバーヘッドを追加 バッチ処理シナリオにより適している メモリ管理のベストプラクティス IronPDF メモリ最適化 ActivePDF メモリ考慮点 // Dispose of resources properly using (var renderer = new ChromePdfRenderer()) { using (var pdf = renderer.RenderHtmlAsPdf(html)) { pdf.SaveAs("output.pdf"); } } // For large documents, use streaming await pdf.Stream.CopyToAsync(fileStream); // Dispose of resources properly using (var renderer = new ChromePdfRenderer()) { using (var pdf = renderer.RenderHtmlAsPdf(html)) { pdf.SaveAs("output.pdf"); } } // For large documents, use streaming await pdf.Stream.CopyToAsync(fileStream); ' Dispose of resources properly Using renderer = New ChromePdfRenderer() Using pdf = renderer.RenderHtmlAsPdf(html) pdf.SaveAs("output.pdf") End Using End Using ' For large documents, use streaming Await pdf.Stream.CopyToAsync(fileStream) $vbLabelText $csharpLabel サービスベースのアーキテクチャはメモリ使用量を隔離 変換間の自動クリーンアップ Windowsでのサービスメモリリミットを設定 ActivePDFコンポーネントの概要 他にどのようなActivePDFコンポーネントが利用可能か? What other ActivePDF components are available? コンポーネント 目的と特徴 ActivePDF DocConverter 300以上のファイルタイプをPDFに変換します。監視フォルダー、バッチ処理、エンタープライズ自動化機能を備えています。 ActivePDF WebGrabber URL、ファイル、HTML文字列対応のHTMLからPDFへの変換。ネイティブおよびIEレンダリングエンジンを含みます。 ActivePDF Toolkit フォーム、注釈、セキュリティ、低レベルのPDF操作を含む高度なPDF操作。 ActivePDF Server ネットワーク環境向けのサーバーベースのPDF印刷ソリューション。 ActivePDF Meridian ユーザーごとの料金なしで文書をPDFに印刷するためのネットワークPDFプリンター。 ActivePDF OCR スキャンされたPDFを検索可能にするための光学文字認識。 ActivePDF Xtractor データ処理のためにPDFファイルからテキストと画像を抽出します。 ActivePDF Redactor PDFドキュメントから機密情報を永久に削除します。 ご注意これらのコンポーネントの多くは別のライセンスを必要とし、包括的なPDF機能の総費用を増加させます。 11. ライセンスおよび価格比較 IronPDFとActivePDFのライセンス費用の比較はどうなっていますか? IronPDFのライセンス (2025年時点の透明な価格設定) Lite License: $799 (1開発者、1場所、1プロジェクト) Plus License: $1,199 (3開発者、3場所、3プロジェクト) Professional License: $2,399 (10開発者、10場所、10プロジェクト) Unlimited License: カスタム価格(無制限の開発者/プロジェクト) Iron Suite: $1,498 (全10のIron Software製品) ActivePDFのライセンス (コンポーネントごと) WebGrabber: $2,499から(一回払い) DocConverter: $2,999から(一回払い) Toolkit: $1,500 +(機能に応じて変動) サポート: プレミアムサポートに追加費用 複数コンポーネント: 費用が急速に増加 所有コスト合計の例 シナリオ: 小規模開発チーム(3開発者) IronPDF Plus License: $1,499(すべての機能を含む) ActivePDF WebGrabber + DocConverter: 最低$5,498 IronPDFでの節約: 73% シナリオ: エンタープライズチーム(10開発者) IronPDF Professional: $2,999(すべての機能を含む) ActivePDF Suite(複数コンポーネント): $10,000以上 IronPDFでの節約: 70%以上 12. サポートとドキュメンテーション どちらのライブラリがより優れた開発者サポートを提供していますか? IronPDFのサポート すべてのライセンスに24/5のエンジニアリングサポートが含まれている 開発チームとの直接アクセス 100以上の例を含む包括的なドキュメンテーション アクティブなコミュニティとフォーラム 定期的な更新と改善 応答時間:通常24-48時間 ActivePDFのサポート サポートポータルアクセス ナレッジベース記事 コミュニティフォーラム 追加費用でプレミアムサポートを利用可能 旧バージョン用のレガシードキュメンテーション 結論: どのPDFライブラリを選ぶべきか? IronPDFを選ぶべき時: 最新の.NET開発: .NET 9/10とクロスプラットフォーム展開を完全サポート 迅速な開発: 直感的なAPIでコードが最小限 Webアプリケーション: Chromeエンジンによる優れたHTML/CSS/JavaScriptのレンダリング クラウド展開: Azure、AWS、コンテナ環境に最適化 予算重視: すべての機能を含む低いエントリーコスト 学習曲線: 採用を迅速に進めるための豊富なドキュメンテーションと例 ActivePDFを選ぶべき時: レガシーシステム: 既存のActivePDFインフラストラクチャまたはWindows Server環境 多様なファイルフォーマット: 300以上のファイルタイプをPDFに変換する必要がある場合 エンタープライズワークフロー: 監視フォルダーと自動バッチ処理 高度なフォーム: 複雑なXFAフォームや特殊なフォーム要件 コンプライアンス要件: 特定の業界向けの複数のPDF/Aレベル 最終的な推奨事項 ほとんどの最新の.NET開発シナリオでは、IronPDFが機能、性能、価値の最良の組み合わせを提供します。 その直感的なAPI、包括的なドキュメンテーション、および透明性のある価格設定により、PDF機能を迅速かつ効率的に実装したいチームに最適です。 ActivePDFはファイルフォーマットサポートやレガシーシステム統合、または既存ActivePDFインフラストラクチャの特定の要件を持つ企業にとっては依然として妥当な選択肢です。 しかし、モジュラープライシングモデルと複雑なインストールプロセスは、小規模チームや新しいプロジェクトにとって課題になる可能性があります。 始める準備はできましたか? 今日あなたのプロジェクトでIronPDFを無料トライアルで使用開始。 最初のステップ: 無料で始める ご注意ActivePDFはその所有者の登録商標です。 このサイトはActivePDFとは提携しておらず、承認または支援を受けていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。)}] よくある質問 IronPDFとActivePDFは.NETでのPDF生成においてどのように比較されますか? IronPDFはChromeベースのレンダリングエンジンと直感的なAPIを使用し、.NET 9および10を含む最新の.NETバージョンをサポートすることでPDF生成を効率化します。ActivePDFはエンタープライズシナリオ向けにWebGrabberやDocConverterのようなモジュールコンポーネントを提供しますが、より多くの設定が必要です。 C#を使用してHTMLをPDFに変換する方法は? IronPDFのRenderHtmlAsPdfメソッドを使用して、HTML文字列を迅速にPDFに変換できます。ファイルベースの変換には、RenderHtmlFileAsPdfメソッドが利用可能で、両者ともCSS3およびJavaScriptのサポートによって高い忠実度を提供します。 IronPDFのパフォーマンスベンチマークは何ですか? IronPDFは高速なHTMLからPDFへのレンダリングを示し、タスクを約125-835msで完了し、メモリ使用量は10MB未満です。また、ヘッダーとフッターのメモリおよび処理の改善を提供します。 IronPDFでバッチPDF処理を自動化できますか? はい、IronPDFは非同期対応を通じたバッチ処理をサポートしており、RenderHtmlFileAsPdfAsyncメソッドのようなものを使用して複数のPDF変換を同時に処理できます。 IronPDFはPDF内のデジタル署名をどのように扱いますか? IronPDFはPDFドキュメントにデジタル署名を追加するためのPdfSignatureクラスを提供します。証明書ベースの署名をサポートし、署名の外観やメタデータのカスタマイズを可能にします。 IronPDFを.NET開発で使用する際のコストはどのような考慮事項がありますか? IronPDFライセンスは単一の開発者向けに$749から始まり、すべての機能が含まれます。対照的に、ActivePDFコンポーネントは別途価格設定されており、同様の機能の場合には総コストがより高くなります。 IronPDFはクロスプラットフォーム互換性をどう確保しますか? IronPDFは、Windows、Linux、macOS、Docker環境を含むクロスプラットフォーム展開をサポートしており、多様な開発ニーズやクラウドベースのアプリケーションに適しています。 IronPDFを使用してPDFにヘッダーとフッターを追加する方法は? IronPDFはTextHeaderFooterとHtmlHeaderFooterクラスを提供し、シンプルなテキストと複雑なHTML/CSSレイアウトの両方でヘッダーとフッターを追加できるようにします。 IronPDFは最新の.NETバージョンとどのように統合しますか? IronPDFは、.NET 9および10だけでなく、.NET Core、.NET Standard、および.NET Framework 4.6.2+を完全にサポートしており、広範な互換性と将来の開発に対応しています。 PDF変換中にJavaScriptの実行はサポートされていますか? はい、IronPDFはPDFをレンダリングする前にJavaScriptを完全に実行し、WaitFor.JavaScript()とRenderDelay()を使ってタイミングを制御するオプションを提供し、完全で正確な変換を保証します。 Jacob Mellor 今すぐエンジニアリングチームとチャット 最高技術責任者(CTO) Jacob Mellorは、Iron Softwareの最高技術責任者であり、C# PDF技術の開拓者としてその先進的な役割を担っています。Iron Softwareのコアコードベースのオリジナルデベロッパーである彼は、創業時から製品のアーキテクチャを形作り、CEOのCameron Rimingtonと協力してNASA、Tesla、全世界の政府機関を含む50人以上の会社に成長させました。Jacobは、1998年から2001年にかけてマンチェスター大学で土木工学の第一級優等学士号(BEng)を取得しました。1999年にロンドンで最初のソフトウェアビジネスを立ち上げ、2005年には最初の.NETコンポーネントを作成し、Microsoftエコシステムにおける複雑な問題の解決を専門にしました。彼の旗艦製品であるIronPDFとIronSuite .NETライブラリは、全世界で3000万以上のNuGetインストールを達成しており、彼の基本コードが世界中で使用されている開発者ツールを支えています。商業的な経験を25年間積み、コードを書くことを41年間続けるJacobは、企業向けのC#、Java、およびPython PDF技術の革新を推進し続け、次世代の技術リーダーを指導しています。 関連する記事 公開日 11月 13, 2025 C#のHTMLからPDFへのオープンソース対IronPDFの比較 C#用のオープンソースのHTMLからPDFライブラリをIronPDFと比較します。あなたの.NETプロジェクトに最適なPDF生成能力を提供するソリューションを見つけましょう。 詳しく読む 公開日 10月 27, 2025 どのASP.NET Core PDFライブラリが最も価値がありますか? ASP.NET Core アプリケーションに最適な PDF ライブラリを発見しよう。IronPDF の Chrome エンジンを Aspose および Syncfusion の代替案と比較します。 詳しく読む 公開日 10月 27, 2025 Aspose C# VS IronPDFでPDFを作成する方法 このステップバイステップガイドで、開発者向けにデザインされた Aspose C# と IronPDF を使用して PDF を作成する方法を学びましょう。 詳しく読む Aspose PDFコンバーター代替: IronPDFが.NET開発にどのように比較するか?SpirePDF C# HTML to PDF チュー...
公開日 11月 13, 2025 C#のHTMLからPDFへのオープンソース対IronPDFの比較 C#用のオープンソースのHTMLからPDFライブラリをIronPDFと比較します。あなたの.NETプロジェクトに最適なPDF生成能力を提供するソリューションを見つけましょう。 詳しく読む
公開日 10月 27, 2025 どのASP.NET Core PDFライブラリが最も価値がありますか? ASP.NET Core アプリケーションに最適な PDF ライブラリを発見しよう。IronPDF の Chrome エンジンを Aspose および Syncfusion の代替案と比較します。 詳しく読む
公開日 10月 27, 2025 Aspose C# VS IronPDFでPDFを作成する方法 このステップバイステップガイドで、開発者向けにデザインされた Aspose C# と IronPDF を使用して PDF を作成する方法を学びましょう。 詳しく読む