フッターコンテンツにスキップ
製品比較
IronPDF vs SpirePDF の比較

SpirePDF C# HTML to PDF チュートリアル&ライブラリ比較

HTML を PDF に変換することは、多くの .NET アプリケーションにとって重要な要件です。請求書やレポートの生成から、ドキュメントおよび電子書籍の作成に至るまでです。 HTML から PDF への変換ニーズに対して IronPDF と Spire.PDF を選択する際には、それぞれの強み、制限、実際のパフォーマンスを理解することが重要です。 この包括的な比較は、両方のライブラリの機能を検証し、PDF 生成の要件に対して情報に基づいた意思決定を行うのに役立ちます。

HTML から PDF への変換における IronPDF と Spire.PDF の主な違いは何ですか?

IronPDF は、PDF ファイルの変換、PDF の編集、PDF の作成、PDF ファイルの読み取りなど、幅広い PDF 関連タスクを処理できるように設計された汎用的な .NET PDF ライブラリです。 既存の .NET アプリケーションへの統合の容易さ、高性能、HTML5、CSS3、JavaScript などの最新の Web 標準のサポートで知られています。 IronPDF の Chrome ベースのレンダリング エンジンにより、HTML コンテンツからのピクセル パーフェクトな PDF 生成が保証されます。

Spire.PDF for .NET は、PDF の作成と操作のための包括的な機能セットを提供する強力な .NET PDF ライブラリです。 テキストおよび画像の抽出、PDF フォームの入力、デジタル署名など、さまざまな PDF 機能をサポートします。 機能は包括的ですが、HTML から PDF への変換機能には、開発者が考慮すべき特定の制限があります。

class="product__comprehensive-comparison-table">
class="table-container">
class="table-number">製品比較の概要
class="table-title">.NET PDF 処理用の IronPDF と Spire.PDF の機能比較
カテゴリ機能/側面IronPDFSpire.PDF主要利点
コア アーキテクチャデザイン哲学シンプルファースト、直感的な APIマルチクラス アプローチ、手動設定IronPDF: 開発が高速
API の複雑さRenderHtmlAsPdf() などのシンプルなメソッドマルチスレッド アプローチが必要IronPDF: コード量が 70% 減少
学習曲線通常 1〜2 日通常 1〜2 週間IronPDF: 採用が迅速
プラットフォーム サポートクロスプラットフォームネイティブ サポート、追加パッケージなしLinux/macOS のサポートが限定的IronPDF: 真のクロスプラットフォーム
.NET バージョン.NET 8, 7, 6, 5, Core 3.1+, Framework 4.6.2+.NET Core 2.0+, Framework 2.0+両方: 幅広いフレームワーク サポート
オペレーティング システムWindows, Linux, macOS, Docker ネイティブWindows に主に対応IronPDF: より広範な OS サポート
HTML から PDF への変換レンダリング エンジンフル Chrome V8 エンジンカスタム HTML パーサーIronPDF: 98%+ ブラウザ忠実度
CSS3/HTML5 サポート完全サポート限定的(基本 CSS のみ)IronPDF: 最新の Web 標準
JavaScript 実行完全な JavaScript サポート計画済みだが実装されていないIronPDF: 動的コンテンツに対応
Web フォントGoogle フォント、システム フォントフォントサポートが限定的IronPDF: タイポグラフィの柔軟性
レンダリング速度通常 0.8–1.2 秒シンプルな HTML 用に 0.5–0.8 秒Spire: 基本的な HTML の方が速い
セキュリティと暗号化暗号化レベルAES-256、カスタム ハンドラーAES-256 標準両方: 業界標準
API のシンプルさ単一の SecuritySettings クラス複数のセキュリティ メソッドIronPDF: 統一アプローチ
コンテンツの操作マスキング方法真のコンテンツ削除、一行 API手動の長方形オーバーレイIronPDF: コンプライアンス準備完了
ウォーターマーキングHTML/CSS ベース、完全なスタイリング回転を伴うテキストベースIronPDF: リッチなウォーターマーク
ファイル変換DOCX から PDF組み込みの DocxToPdfRendererSpire.Doc ライブラリが必要IronPDF: 追加費用なし
パフォーマンス メトリクスメモリ使用量150–200MB (Chrome エンジン)80–120MBSpire: 低メモリ フットプリント
スレッディング サポートネイティブの非同期/待機に最適化STA スレッドが必要IronPDF: 最新の非同期パターン
開発者の体験コード例100 以上の準備済みサンプル基本的な例IronPDF: 豊富なリソース
エラーメッセージ具体的で実行可能技術的なメッセージIronPDF: より良いデバッグ
ライセンスと価格設定エントリーレベルLite: $799 (1 開発者, 1 プロジェクト)開発者: $1,199/年 (1 開発者)IronPDF: 永久ライセンス
チーム ライセンスPlus: $1,199 (3 開発者, 3 プロジェクト)サイト: 4,599 ドル (10 開発者)IronPDF: より優れたチーム価値
スイート オプションIron Suite: $1,498 (9 製品)スイート オプションなしIronPDF: 優れた価値
サポートサポートが含まれているはい、24/5 エンジニアリング サポートフォーラムのみ (有料サポートは別途)IronPDF: サポートが含まれています
サポート チャネルメール、チャット、電話、画面共有フォーラム、メール (有料ティア)IronPDF: 複数のチャネル
ベスト フォーユース ケース最新のウェブアプリ、複雑な HTML/CSS簡単なドキュメント、基本的なレイアウトコンテキストに依存
class="table-note">注. Spire.PDF は基本的な PDF 機能を低いメモリ使用量で提供し、IronPDF は HTML レンダリングと最新の Web 標準のサポートに優れています。複雑な HTML レンダリングや最小限のリソース使用が優先されるかどうかで選択してください。

IronPDF の詳細情報は IronPDF.com を訪問してください。

クロスプラットフォームの互換性はライブラリ間でどのように比較されますか?

IronPDF

IronPDF は、広範なクロスプラットフォーム互換性で際立っている。 .NET フレームワーク内の幅広い環境をサポートし、異なるプラットフォーム間でのシームレスな動作を保証します。 以下に IronPDF のプラットフォーム互換性の概要を示します。

  • .NET バージョン:

    • 完全に C#、VB.NET、F# で書かれており、サポートしています。
    • .NET Core (8, 7, 6, 5, および 3.1+)
    • .NET Standard (2.0+)
    • .NET Framework (4.6.2+)
  • アプリ環境: IronPDF は Windows、Linux、Mac、Docker、Azure、AWS などの様々なアプリ環境で動作します。
  • IDEs: Microsoft Visual Studio および JetBrains Rider & ReSharper などの IDE で動作します。
  • OS とプロセッサ: Windows、Mac、Linux、x64、x86、ARM などの様々な OS & プロセッサをサポートします。

IronPDF の互換性の詳細については、IronPDF フィーチャーページを訪問してください。

Spire.PDF

Spire.PDF は .NET 環境内でフルサポートを提供しますが、Windows オペレーティング システム内で動作する一方で、IronPDF が持つ Linux および macOS に対するネイティブ サポートが欠けています。 macOS または Linux でのデプロイ時には、Spire.PDF は各プラットフォーム用の異なるプラグインを必要とし、デプロイメント シナリオを複雑にする可能性があります。

  • .NET サポート:

    • .NET Framework 2.0+
    • .NET Core 2.0+
    • C# で記述され、VB.NET をサポートしています。
  • アプリ環境: Spire.PDF は Windows および ASP.NET アプリケーションなどの様々なアプリ環境で動作します。 Windows フォームもサポートできます。

どちらのライブラリがより優れた HTML の PDF 変換機能を提供しますか?

IronPDF の機能

  • PDF 変換: IronPDF は、HTML を PDF に変換できます。 最新の Web 標準の完全なサポートにより、IronPDF は HTML コンテンツから常にピクセル パーフェクトな PDF を返すことが保証されています。 IronPDF は、他の形式からの PDF ファイルの変換も可能で、例えば DOCX、画像、RTF などがあります。
  • PDF 生成: IronPDF では、URL、ASPX ファイル、HTML 文字列から PDF を生成することができます。
  • セキュリティ機能: IronPDF を使用すると、セキュリティ機能のおかげで、他の敏感な PDF ファイルも常に安全であることを保証できます。 IronPDF を使用して PDF ファイルを暗号化し、パスワードを設定し、PDF ファイルの権限を設定してください。
  • PDF 編集機能: IronPDF では、既存の PDF ドキュメントを処理し、編集し、PDF ファイルを簡単に読み取ることができます。 IronPDF offers editing features such as adding headers and footers, stamping text and images onto the PDF pages, adding custom watermarks to the PDF, working with PDF forms, and splitting or merging PDF files.
  • 統合: ASP.NET および MVC アプリケーションとシームレスに統合できます。
  • PDF バージョン サポート: PDF バージョン 1.2-1.7 をサポートできます。

IronPDF の包括的な機能一覧については、IronPDF の機能を訪問してください。

Spire.PDF の機能

  • PDF 作成: ゼロからまたは既存のファイルから PDF を作成します。
  • テキストと画像の抽出: Spire.PDF を使用して PDF ページとコンテンツを抽出します。
  • PDF フォームの処理: PDF フォームを埋めたり管理したりします。
  • PDF 変換: PDF を HTML、RTF、画像などの他の形式に変換します。
  • ページ操作: PDF 内のページを挿入、削除、および再配置します。
  • 限定的な HTML サポート: HTML から PDF へのエンジンでは、最新の CSS と JavaScript のサポートが限定されています。 デフォルトの Qt ベースのプラグインは、CSS のページ区切りプロパティや外部 CSS ファイルの認識をサポートせず、JavaScript の実行は、まだ完全に実装されていない計画された機能です。 より良いレンダリングのためにオプションの ChromeHtmlConverter が利用可能です。

Bootstrap と最新の CSS フレームワークのレンダリング

最新の Web 開発は、迅速な UI 開発とレスポンシブデザインのために、Bootstrap のような CSS フレームワークに大きく依存しています。 PDF 生成ライブラリは、これらのフレームワークを正確に変換して、プロフェッショナルなドキュメント品質およびデザインの一貫性を維持する必要があります。

IronPDF: 完全な Bootstrap および Tailwind のサポート

IronPDF の Chromium エンジンは、すべての最新の CSS フレームワークへ完全にサポートしています。

  • Bootstrap 5: すべてのレスポンシブ コンポーネントと完全な flexbox および CSS グリッド サポート
  • Bootstrap 4: 完全なカードレイアウト、ナビゲーションシステム、およびユーティリティ クラス
  • Tailwind CSS: すべてのユーティリティファーストクラスおよびレスポンシブ修飾子
  • Foundation: 完全なグリッドおよびコンポーネント システム
  • 最新の CSS3: Flexbox, Grid, カスタムプロパティ, アニメーション, およびトランスフォーム

Proven with real examples: Bootstrap homepage and Bootstrap templates convert with pixel-perfect accuracy.

コード例: Team Member カード with Bootstrap

using IronPdf;

var renderer = new ChromePdfRenderer();

string bootstrapTeam = @"
<!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'>Our Team</h1>

        <div class='row row-cols-1 row-cols-md-3 g-4'>
            <div class='col'>
                <div class='card h-100 shadow-sm text-center'>
                    <div class='card-body d-flex flex-column'>
                        <img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
                        <h5 class='card-title'>Jennifer Martinez</h5>
                        <p class='text-muted mb-3'>Chief Technology Officer</p>
                        <p class='card-text flex-grow-1'>Leading our technical vision and innovation strategy with over 15 years of experience in software architecture.</p>
                        <div class='d-flex justify-content-center gap-2 mt-auto'>
                            <a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
                            <a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col'>
                <div class='card h-100 shadow-sm text-center'>
                    <div class='card-body d-flex flex-column'>
                        <img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
                        <h5 class='card-title'>David Chen</h5>
                        <p class='text-muted mb-3'>Head of Engineering</p>
                        <p class='card-text flex-grow-1'>Managing our engineering teams and ensuring product quality through rigorous testing and code review processes.</p>
                        <div class='d-flex justify-content-center gap-2 mt-auto'>
                            <a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
                            <a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col'>
                <div class='card h-100 shadow-sm text-center'>
                    <div class='card-body d-flex flex-column'>
                        <img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
                        <h5 class='card-title'>Sarah Johnson</h5>
                        <p class='text-muted mb-3'>Product Manager</p>
                        <p class='card-text flex-grow-1'>Driving product strategy and customer satisfaction through data-driven decisions and user research.</p>
                        <div class='d-flex justify-content-center gap-2 mt-auto'>
                            <a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
                            <a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='text-center mt-5'>
            <h3>Join Our Team</h3>
            <p class='text-muted mb-3'>We're always looking for talented individuals to join our growing team.</p>
            <a href='#' class='btn btn-primary btn-lg'>View Open Positions</a>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapTeam);
pdf.SaveAs("team-members.pdf");
using IronPdf;

var renderer = new ChromePdfRenderer();

string bootstrapTeam = @"
<!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'>Our Team</h1>

        <div class='row row-cols-1 row-cols-md-3 g-4'>
            <div class='col'>
                <div class='card h-100 shadow-sm text-center'>
                    <div class='card-body d-flex flex-column'>
                        <img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
                        <h5 class='card-title'>Jennifer Martinez</h5>
                        <p class='text-muted mb-3'>Chief Technology Officer</p>
                        <p class='card-text flex-grow-1'>Leading our technical vision and innovation strategy with over 15 years of experience in software architecture.</p>
                        <div class='d-flex justify-content-center gap-2 mt-auto'>
                            <a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
                            <a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col'>
                <div class='card h-100 shadow-sm text-center'>
                    <div class='card-body d-flex flex-column'>
                        <img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
                        <h5 class='card-title'>David Chen</h5>
                        <p class='text-muted mb-3'>Head of Engineering</p>
                        <p class='card-text flex-grow-1'>Managing our engineering teams and ensuring product quality through rigorous testing and code review processes.</p>
                        <div class='d-flex justify-content-center gap-2 mt-auto'>
                            <a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
                            <a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
                        </div>
                    </div>
                </div>
            </div>

            <div class='col'>
                <div class='card h-100 shadow-sm text-center'>
                    <div class='card-body d-flex flex-column'>
                        <img src='https://via.placeholder.com/150' class='rounded-circle mx-auto mb-3' alt='Team member' style='width: 150px; height: 150px; object-fit: cover;'>
                        <h5 class='card-title'>Sarah Johnson</h5>
                        <p class='text-muted mb-3'>Product Manager</p>
                        <p class='card-text flex-grow-1'>Driving product strategy and customer satisfaction through data-driven decisions and user research.</p>
                        <div class='d-flex justify-content-center gap-2 mt-auto'>
                            <a href='#' class='btn btn-sm btn-outline-primary'>LinkedIn</a>
                            <a href='#' class='btn btn-sm btn-outline-secondary'>Email</a>
                        </div>
                    </div>
                </div>
            </div>
        </div>

        <div class='text-center mt-5'>
            <h3>Join Our Team</h3>
            <p class='text-muted mb-3'>We're always looking for talented individuals to join our growing team.</p>
            <a href='#' class='btn btn-primary btn-lg'>View Open Positions</a>
        </div>
    </div>
</body>
</html>";

var pdf = renderer.RenderHtmlAsPdf(bootstrapTeam);
pdf.SaveAs("team-members.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

出力: Bootstrap のカードグリッド、flexbox アラインメント、レスポンシブ画像、ボタンコンポーネントを備えたプロフェッショナルなチームページが、PDF に正確にレンダリングされます。

Spire.PDF: 限定的な HTML および最新のフレームワークサポート

Spire.PDF の HTML から PDF へのエンジンは、彼らの独自の文書に記載されているように、最新の CSS フレームワークに対する重大な制限があります。

  • 限定的な CSS サポート: 基本的な CSS のみで、完全な CSS3 フィーチャはありません
  • フレックスボックスなし: Bootstrap 4/5 はフレックスボックスに大きく依存していますが、未対応です。
  • CSS グリッドなし: 最新のレイアウトシステムである CSS グリッドは正しくレンダリングされません
  • JavaScript 制限: 現代のブラウザに比べて、最小限の JavaScript 実行能力
  • Bootstrap 3 の最大: 古いテーブルベースの Bootstrap のバージョンだけが信頼できます
  • 複雑なレイアウトの失敗: 最新のレスポンシブ デザインには広範な回避策が必要です

Spire.PDF HTML 変換に関する開発者レポートの問題:

  • Bootstrap のナビゲーションバーが、レイアウトの問題でレンダリングされる
  • Flexbox を持つカードコンポーネントが正しくアラインされない
  • PDF 出力におけるレスポンシブのグリッドブレークポイントが無視される
  • 現代の CSS 機能には手動での CSS 書き換えやフォールバックが必要

開発への影響: Bootstrap 4+ または現代の CSS フレームワークを使用するアプリケーションは、Spire.PDF に大きな課題が生じます。 開発チームは次を行う必要があります:

  1. PDF 生成用に特別設計された簡略化された CSS を維持する(ダブルメンテナンス)
  2. Bootstrap 3 にダウングレードするか、フレームワークを完全に放棄する(最新の機能に制限)
  3. 各コンポーネントをテストして手動で修正を行う(時間がかかり壊れやすい)

最新の CSS フレームワークのサポートを求めるプロジェクトにとって、Spire.PDF の HTML レンダリングの限界は、追加の開発努力と継続的な保守の負担なくしては不適切です。

詳細な Bootstrap 互換性情報については、Bootstrap & Flexbox CSS ガイド を参照してください。

一般的な PDF タスクのためのコード例を比較するにはどうすればよいですか?

.NET 用の IronPDF および Spire.PDF の機能を示すために、いくつかの主要な PDF 機能の実装をコード例を通じて比較し、これらの機能が PDF プロジェクトにどのように役立つかを示します。

HTML を PDF に変換

IronPDFの例:

using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external HTML assets: images, CSS, and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
using IronPdf;

// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;

// Instantiate Renderer
var renderer = new ChromePdfRenderer();

// Create a PDF from an HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
pdf.SaveAs("output.pdf");

// Advanced Example with HTML Assets
// Load external HTML assets: images, CSS, and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
Imports IronPdf

' Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = True

' Instantiate Renderer
Dim renderer = New ChromePdfRenderer()

' Create a PDF from an HTML string using C#
Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>")
pdf.SaveAs("output.pdf")

' Advanced Example with HTML Assets
' Load external HTML assets: images, CSS, and JavaScript.
' An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
Dim myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", "C:\site\assets\")
myAdvancedPdf.SaveAs("html-with-assets.pdf")
$vbLabelText   $csharpLabel

IronPDF の ChromePdfRenderer クラスは、完全な Chrome ブラウザ エンジンを利用して HTML コンテンツをレンダリングします。 これにより、CSS3 アニメーション、JavaScript 実行、および最新の Web フォントが Chrome で同様に正確にレンダリングされます。 RenderHtmlAsPdf() メソッドは、HTML 文字列とオプションの基底パスを受け入れて、外部アセットの読み込みを行い、簡単な HTML 文書から複雑な HTML 文書までの変換を簡単にします。 このレンダラーは、高度なレンダリングオプションをサポートしており、カスタムの用紙サイズ、マージン、JavaScript 遅延設定などを含みます。

Spire.PDF の例:

using Spire.Pdf;
using Spire.Pdf.HtmlConverter;
using System.IO;
using System.Threading;
using System.Drawing;

namespace ConvertHtmlStringToPdfWithoutPlugin
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a PdfDocument object
            PdfDocument doc = new PdfDocument();

            // Create a PdfPageSettings object
            PdfPageSettings setting = new PdfPageSettings();

            // Set page size and margins through the object
            setting.Size = new SizeF(1000, 1000);
            setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);

            // Create a PdfHtmlLayoutFormat object
            PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();

            // Set IsWaiting property to true
            htmlLayoutFormat.IsWaiting = true;

            // Read HTML string from a .html file
            string htmlString = File.ReadAllText(@"C:\Users\Administrator\Desktop\Document\Html\Sample.html");

            // Load HTML from HTML string using LoadFromHTML method
            Thread thread = new Thread(() =>
            { doc.LoadFromHTML(htmlString, true, setting, htmlLayoutFormat); });
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            thread.Join();

            // Save to a PDF file
            doc.SaveToFile("HtmlStringToPdf.pdf");
        }
    }
}
using Spire.Pdf;
using Spire.Pdf.HtmlConverter;
using System.IO;
using System.Threading;
using System.Drawing;

namespace ConvertHtmlStringToPdfWithoutPlugin
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a PdfDocument object
            PdfDocument doc = new PdfDocument();

            // Create a PdfPageSettings object
            PdfPageSettings setting = new PdfPageSettings();

            // Set page size and margins through the object
            setting.Size = new SizeF(1000, 1000);
            setting.Margins = new Spire.Pdf.Graphics.PdfMargins(20);

            // Create a PdfHtmlLayoutFormat object
            PdfHtmlLayoutFormat htmlLayoutFormat = new PdfHtmlLayoutFormat();

            // Set IsWaiting property to true
            htmlLayoutFormat.IsWaiting = true;

            // Read HTML string from a .html file
            string htmlString = File.ReadAllText(@"C:\Users\Administrator\Desktop\Document\Html\Sample.html");

            // Load HTML from HTML string using LoadFromHTML method
            Thread thread = new Thread(() =>
            { doc.LoadFromHTML(htmlString, true, setting, htmlLayoutFormat); });
            thread.SetApartmentState(ApartmentState.STA);
            thread.Start();
            thread.Join();

            // Save to a PDF file
            doc.SaveToFile("HtmlStringToPdf.pdf");
        }
    }
}
Imports Spire.Pdf
Imports Spire.Pdf.HtmlConverter
Imports System.IO
Imports System.Threading
Imports System.Drawing

Namespace ConvertHtmlStringToPdfWithoutPlugin
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Create a PdfDocument object
			Dim doc As New PdfDocument()

			' Create a PdfPageSettings object
			Dim setting As New PdfPageSettings()

			' Set page size and margins through the object
			setting.Size = New SizeF(1000, 1000)
			setting.Margins = New Spire.Pdf.Graphics.PdfMargins(20)

			' Create a PdfHtmlLayoutFormat object
			Dim htmlLayoutFormat As New PdfHtmlLayoutFormat()

			' Set IsWaiting property to true
			htmlLayoutFormat.IsWaiting = True

			' Read HTML string from a .html file
			Dim htmlString As String = File.ReadAllText("C:\Users\Administrator\Desktop\Document\Html\Sample.html")

			' Load HTML from HTML string using LoadFromHTML method
			Dim thread As New Thread(Sub()
				doc.LoadFromHTML(htmlString, True, setting, htmlLayoutFormat)
			End Sub)
			thread.SetApartmentState(ApartmentState.STA)
			thread.Start()
			thread.Join()

			' Save to a PDF file
			doc.SaveToFile("HtmlStringToPdf.pdf")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Spire.PDF の HTML から PDF への変換は、PdfDocumentPdfPageSettings、および PdfHtmlLayoutFormat を含む複数のオブジェクトの作成を必要とします。 この 変換はシングル スレッド アパートメント (STA) スレッドで実行する必要があり、実装が複雑になります。 ユーザーは、"Spire が生成する PDF ファイルはただの画像です。CSS の一部は正しくなく、太字フォントが無視される" など、CSS のレンダリングの忠実度に制限があることを報告しています。 IronPDF は、最新の Web 標準をサポートする Chrome のレンダリング エンジンを使用して、高忠実度の HTML から PDF への変換を行い、Web コンテンツの正確な表現を保証します。

Spire.PDF は、強固な HTML から PDF への変換も提供しますが、IronPDF のレンダリング精度に匹敵せず、より手作業が多く、複雑なアプローチをとるかもしれません。 ### PDF ドキュメントを暗号化するにはどうすればよいですか?

IronPDF の SecuritySettings クラスは、PDF セキュリティを管理するための包括的な API を提供します。

IronPDFの例:

using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from HTML
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
using IronPdf;
using System;

// Open an Encrypted File, alternatively create a new PDF from HTML
var pdf = PdfDocument.FromFile("encrypted.pdf", "password");

// Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;

// Edit file security settings
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key");
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;

// Change or set the document encryption password
pdf.Password = "my-password";
pdf.SaveAs("secured.pdf");
Imports IronPdf
Imports System

' Open an Encrypted File, alternatively create a new PDF from HTML
Private pdf = PdfDocument.FromFile("encrypted.pdf", "password")

' Edit file metadata
pdf.MetaData.Author = "Satoshi Nakamoto"
pdf.MetaData.Keywords = "SEO, Friendly"
pdf.MetaData.ModifiedDate = DateTime.Now

' Edit file security settings
pdf.SecuritySettings.RemovePasswordsAndEncryption()
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key")
pdf.SecuritySettings.AllowUserAnnotations = False
pdf.SecuritySettings.AllowUserCopyPasteContent = False
pdf.SecuritySettings.AllowUserFormData = False
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights

' Change or set the document encryption password
pdf.Password = "my-password"
pdf.SaveAs("secured.pdf")
$vbLabelText   $csharpLabel

ブールのプロパティを使って個々の権限を制御したり、さまざまなレベルの印刷権限を設定したり、他のセキュリティ設定とは別にパスワードを管理することができます。 この API の設計は、.NET の規約に従っており、強く型付けされた列挙型 PdfPrintSecurity があります。 ドキュメントの PDF 許可およびパスワード についての詳細を学びましょう。 Spire.PDF の暗号化方法は、ビット単位の権限フラグを使用した Security.Encrypt() メソッドを使用します。

Spire.PDF の例:

using Spire.Pdf;
using Spire.Pdf.Security;

// Create a PdfDocument object
PdfDocument pdf = new PdfDocument();

// Load a sample PDF file
pdf.LoadFromFile(@"E:\Files\sample.pdf");

// Encrypt the PDF file with a password
pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit);

// Save the result file
pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF);
using Spire.Pdf;
using Spire.Pdf.Security;

// Create a PdfDocument object
PdfDocument pdf = new PdfDocument();

// Load a sample PDF file
pdf.LoadFromFile(@"E:\Files\sample.pdf");

// Encrypt the PDF file with a password
pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print | PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit);

// Save the result file
pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF);
Imports Spire.Pdf
Imports Spire.Pdf.Security

' Create a PdfDocument object
Private pdf As New PdfDocument()

' Load a sample PDF file
pdf.LoadFromFile("E:\Files\sample.pdf")

' Encrypt the PDF file with a password
pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print Or PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit)

' Save the result file
pdf.SaveToFile("Encrypt.pdf", FileFormat.PDF)
$vbLabelText   $csharpLabel

よりコンパクトでありながら、ビット単位の操作の理解が必要であり、IronPDF の個々の権限プロパティに比べて少なく整理された制御を提供します。 両方のライブラリは、PDF を暗号化し、暗号化された PDF ドキュメントの読みやすさを設定するための使いやすい方法を提供します。

IronPDF はセキュリティ設定の全面的なコントロールを提供しながら、簡単な方法を提供します。 Spire.PDF は、やや短い過程をとりますが、権限設定のための追加オプションも含まれています。 ### PDF コンテンツのマスキングのためのオプションは何ですか?

IronPDF は、ビジュアル マスキングではなく、真のコンテンツ削除を行う 専用のマスキング API を提供します。

IronPDFの例:

using IronPdf;

// Load the PDF document
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

// Save the redacted document
pdf.SaveAs("redacted.pdf");
using IronPdf;

// Load the PDF document
PdfDocument pdf = PdfDocument.FromFile("novel.pdf");

// Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are");

// Save the redacted document
pdf.SaveAs("redacted.pdf");
Imports IronPdf

' Load the PDF document
Private pdf As PdfDocument = PdfDocument.FromFile("novel.pdf")

' Redact 'are' phrase from all pages
pdf.RedactTextOnAllPages("are")

' Save the redacted document
pdf.SaveAs("redacted.pdf")
$vbLabelText   $csharpLabel

RedactTextOnAllPages() メソッドは、指定されたテキストを検索して永久に削除し、データ保護規制を遵守します。 他のメソッドを使用すると、特定のページまたは領域でのマスキングが可能です。 Spire.PDF の手動長方形オーバーレイによるマスキングの例:

Spire.PDF には専用のマスキング ツールはありませんが、以下に示すように、手動のプロセスを使用してコンテンツをマスキングできます。

この手動アプローチでは、各マスキング領域の正確な座標の計算が必要であり、真のコンテンツ削除よりも単なるビジュアルマスキングを提供します。元のテキストは、PDF 編集ツールを使用しても抽出可能である可能性があります。

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

// Specify the input PDF file path
string inputPdfFilePath = "path/to/your/input.pdf";

// Specify the output redacted PDF file path
string outputPdfFilePath = "path/to/your/redacted_output.pdf";

// Create a new PdfDocument object
PdfDocument pdfDocument = new PdfDocument();

// Load the existing PDF document
pdfDocument.LoadFromFile(inputPdfFilePath);

// Redact content on each page
foreach (PdfPageBase page in pdfDocument.Pages)
{
    // Define the area to redact (e.g., coordinates and size of the rectangle)
    RectangleF redactArea = new RectangleF(100, 100, 200, 50); // Example coordinates and size

    // Apply redaction
    page.Canvas.DrawRectangle(new PdfSolidBrush(Color.Black), redactArea);
}

// Save the redacted PDF document
pdfDocument.SaveToFile(outputPdfFilePath);
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

// Specify the input PDF file path
string inputPdfFilePath = "path/to/your/input.pdf";

// Specify the output redacted PDF file path
string outputPdfFilePath = "path/to/your/redacted_output.pdf";

// Create a new PdfDocument object
PdfDocument pdfDocument = new PdfDocument();

// Load the existing PDF document
pdfDocument.LoadFromFile(inputPdfFilePath);

// Redact content on each page
foreach (PdfPageBase page in pdfDocument.Pages)
{
    // Define the area to redact (e.g., coordinates and size of the rectangle)
    RectangleF redactArea = new RectangleF(100, 100, 200, 50); // Example coordinates and size

    // Apply redaction
    page.Canvas.DrawRectangle(new PdfSolidBrush(Color.Black), redactArea);
}

// Save the redacted PDF document
pdfDocument.SaveToFile(outputPdfFilePath);
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing

' Specify the input PDF file path
Private inputPdfFilePath As String = "path/to/your/input.pdf"

' Specify the output redacted PDF file path
Private outputPdfFilePath As String = "path/to/your/redacted_output.pdf"

' Create a new PdfDocument object
Private pdfDocument As New PdfDocument()

' Load the existing PDF document
pdfDocument.LoadFromFile(inputPdfFilePath)

' Redact content on each page
For Each page As PdfPageBase In pdfDocument.Pages
	' Define the area to redact (e.g., coordinates and size of the rectangle)
	Dim redactArea As New RectangleF(100, 100, 200, 50) ' Example coordinates and size

	' Apply redaction
	page.Canvas.DrawRectangle(New PdfSolidBrush(Color.Black), redactArea)
Next page

' Save the redacted PDF document
pdfDocument.SaveToFile(outputPdfFilePath)
$vbLabelText   $csharpLabel

IronPDF は強力でありながら簡単なマスキング ツールを提供します。 Spire.PDF は組み込みマスキング ツールがないため、マスキングにはより手作業が必要であり、効率的さを損なう可能性があります。

PDF ドキュメントに署名するにはどうすればよいですか? IronPDF の デジタル署名の実装 は、.NET の証明書ハンドリングのパターンに従います。

PdfSignature クラスは標準の X509Certificate2 オブジェクトを受け入れ、PDF 署名の複雑さを内部的に処理します。

IronPDFの例:

using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Instantiate the renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature with certificate
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
using IronPdf;
using IronPdf.Signing;
using System.Security.Cryptography.X509Certificates;

// Instantiate the renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>foo</h1>");

// Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
X509Certificate2 cert = new X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable);

// Create PdfSignature with certificate
var sig = new PdfSignature(cert);

// Sign PDF document
pdf.Sign(sig);
pdf.SaveAs("signed.pdf");
Imports IronPdf
Imports IronPdf.Signing
Imports System.Security.Cryptography.X509Certificates

' Instantiate the renderer
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>foo</h1>")

' Create X509Certificate2 object with X509KeyStorageFlags set to Exportable
Private cert As New X509Certificate2("IronSoftware.pfx", "123456", X509KeyStorageFlags.Exportable)

' Create PdfSignature with certificate
Private sig = New PdfSignature(cert)

' Sign PDF document
pdf.Sign(sig)
pdf.SaveAs("signed.pdf")
$vbLabelText   $csharpLabel

視覚的な署名の外観を追加し、署名フィールドの構成も可能です。 Spire.PDF は署名の外観を徹底的に制御しますが、かなり多くのコードを必要とします。 各ラベルを手動でセットし、署名を正確に位置決めし、視覚的な要素を個別に構成する必要があります。

Spire.PDF の例:

using Spire.Pdf;
using Spire.Pdf.Security;
using System.Drawing;

// Create a PdfDocument object
PdfDocument doc = new PdfDocument();

// Load a sample PDF file
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

// Load the certificate
PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue");

// Create a PdfSignature object and specify its position and size
PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature");
RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 260 - 54 , 200, 260, 110);
signature.Bounds = rectangleF;
signature.Certificated = true;

// Set the graphics mode to ImageAndSignDetail
signature.GraphicsMode = GraphicMode.SignImageAndSignDetail;

// Set various details about the signature
signature.NameLabel = "Signer:";
signature.Name = "Gary";
signature.ContactInfoLabel = "Phone:";
signature.ContactInfo = "0123456";
signature.DateLabel = "Date:";
signature.Date = DateTime.Now;
signature.LocationInfoLabel = "Location:";
signature.LocationInfo = "USA";
signature.ReasonLabel = "Reason:";
signature.Reason = "I am the author";
signature.DistinguishedNameLabel = "DN:";
signature.DistinguishedName = signature.Certificate.IssuerName.Name;

// Set the signature image source
signature.SignImageSource = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\handwrittingSignature.png");

// Set the signature font
signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular));

// Set the document permission to forbid changes but allow form fill
signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill;

// Save to file
doc.SaveToFile("VisiableSignature.pdf");
using Spire.Pdf;
using Spire.Pdf.Security;
using System.Drawing;

// Create a PdfDocument object
PdfDocument doc = new PdfDocument();

// Load a sample PDF file
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\sample.pdf");

// Load the certificate
PdfCertificate cert = new PdfCertificate("C:\\Users\\Administrator\\Desktop\\MyCertificate.pfx", "e-iceblue");

// Create a PdfSignature object and specify its position and size
PdfSignature signature = new PdfSignature(doc, doc.Pages[doc.Pages.Count - 1], cert, "MySignature");
RectangleF rectangleF = new RectangleF(doc.Pages[0].ActualSize.Width - 260 - 54 , 200, 260, 110);
signature.Bounds = rectangleF;
signature.Certificated = true;

// Set the graphics mode to ImageAndSignDetail
signature.GraphicsMode = GraphicMode.SignImageAndSignDetail;

// Set various details about the signature
signature.NameLabel = "Signer:";
signature.Name = "Gary";
signature.ContactInfoLabel = "Phone:";
signature.ContactInfo = "0123456";
signature.DateLabel = "Date:";
signature.Date = DateTime.Now;
signature.LocationInfoLabel = "Location:";
signature.LocationInfo = "USA";
signature.ReasonLabel = "Reason:";
signature.Reason = "I am the author";
signature.DistinguishedNameLabel = "DN:";
signature.DistinguishedName = signature.Certificate.IssuerName.Name;

// Set the signature image source
signature.SignImageSource = PdfImage.FromFile("C:\\Users\\Administrator\\Desktop\\handwrittingSignature.png");

// Set the signature font
signature.SignDetailsFont = new PdfTrueTypeFont(new Font("Arial Unicode MS", 12f, FontStyle.Regular));

// Set the document permission to forbid changes but allow form fill
signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges | PdfCertificationFlags.AllowFormFill;

// Save to file
doc.SaveToFile("VisiableSignature.pdf");
Imports Spire.Pdf
Imports Spire.Pdf.Security
Imports System.Drawing

' Create a PdfDocument object
Private doc As New PdfDocument()

' Load a sample PDF file
doc.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf")

' Load the certificate
Dim cert As New PdfCertificate("C:\Users\Administrator\Desktop\MyCertificate.pfx", "e-iceblue")

' Create a PdfSignature object and specify its position and size
Dim signature As New PdfSignature(doc, doc.Pages(doc.Pages.Count - 1), cert, "MySignature")
Dim rectangleF As New RectangleF(doc.Pages(0).ActualSize.Width - 260 - 54, 200, 260, 110)
signature.Bounds = rectangleF
signature.Certificated = True

' Set the graphics mode to ImageAndSignDetail
signature.GraphicsMode = GraphicMode.SignImageAndSignDetail

' Set various details about the signature
signature.NameLabel = "Signer:"
signature.Name = "Gary"
signature.ContactInfoLabel = "Phone:"
signature.ContactInfo = "0123456"
signature.DateLabel = "Date:"
signature.Date = DateTime.Now
signature.LocationInfoLabel = "Location:"
signature.LocationInfo = "USA"
signature.ReasonLabel = "Reason:"
signature.Reason = "I am the author"
signature.DistinguishedNameLabel = "DN:"
signature.DistinguishedName = signature.Certificate.IssuerName.Name

' Set the signature image source
signature.SignImageSource = PdfImage.FromFile("C:\Users\Administrator\Desktop\handwrittingSignature.png")

' Set the signature font
signature.SignDetailsFont = New PdfTrueTypeFont(New Font("Arial Unicode MS", 12F, FontStyle.Regular))

' Set the document permission to forbid changes but allow form fill
signature.DocumentPermissions = PdfCertificationFlags.ForbidChanges Or PdfCertificationFlags.AllowFormFill

' Save to file
doc.SaveToFile("VisiableSignature.pdf")
$vbLabelText   $csharpLabel

PDF にデジタル署名をすることは、PDF ドキュメントを認証するためや、新しいプロジェクトに署名するために有用です。 IronPDF はデジタル署名を追加するための簡単なアプローチを提供し、署名プロセスの自動化を簡単にします。

Spire.PDF もまた、PDF に対するデジタル署名をサポートしていますが、プロセスがより手動であり、実装するのに多くの努力が必要となる可能性があります。 ### PDF に透かしを入れるにはどのような方法がありますか? IronPDF の透かし機能は HTML コンテンツを受け入れ、CSS を使用してスタイリングできます。ApplyWatermark() メソッドは、回転角と配置に関するパラメーターを提供し、透かしを正確に位置決めすることを容易にします。 カスタム透かし や高度なスタイリング オプションについてさらに学びましょう。

Spire.PDF の透かしは、座標システム変換を使用した位置決めと回転の手動計算が必要です。

IronPDFの例:

using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
using IronPdf;

// Stamps a Watermark onto a new or existing PDF
var renderer = new ChromePdfRenderer();

var pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs(@"C:\Path\To\Watermarked.pdf");
Imports IronPdf

' Stamps a Watermark onto a new or existing PDF
Private renderer = New ChromePdfRenderer()

Private pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf")
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center)
pdf.SaveAs("C:\Path\To\Watermarked.pdf")
$vbLabelText   $csharpLabel

これにより細かい制御が可能になりますが、グラフィックプログラミングの概念の理解が必要です。 IronPDF は、透かしの位置とデザインを完全に制御しながら、テキスト透かしを追加するための簡単な方法を提供します。 IronPDF の HTML および CSS の使用は、これらの言語に精通している場合、プロセスを容易にします。

Spire.PDF の例:

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

// Create a PdfDocument object
PdfDocument pdf = new PdfDocument();

// Load a sample PDF document
pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");

// Create a PdfTrueTypeFont object
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 50f), true);

// Set the watermark text
string text = "CONFIDENTIAL";

// Measure the text size
SizeF textSize = font.MeasureString(text);

// Calculate the values of two offset variables,
// which will be used to calculate the translation amount of the coordinate system
float offset1 = (float)(textSize.Width * System.Math.Sqrt(2) / 4);
float offset2 = (float)(textSize.Height * System.Math.Sqrt(2) / 4);

// Traverse all the pages in the document
foreach (PdfPageBase page in pdf.Pages)
{
    // Set the page transparency
    page.Canvas.SetTransparency(0.8f);

    // Translate the coordinate system by specified coordinates
    page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2);

    // Rotate the coordinate system 45 degrees counterclockwise
    page.Canvas.RotateTransform(-45);

    // Draw watermark text on the page
    page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0);
}

// Save the changes to another file
pdf.SaveToFile("TextWatermark.pdf");
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

// Create a PdfDocument object
PdfDocument pdf = new PdfDocument();

// Load a sample PDF document
pdf.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");

// Create a PdfTrueTypeFont object
PdfTrueTypeFont font = new PdfTrueTypeFont(new Font("Arial", 50f), true);

// Set the watermark text
string text = "CONFIDENTIAL";

// Measure the text size
SizeF textSize = font.MeasureString(text);

// Calculate the values of two offset variables,
// which will be used to calculate the translation amount of the coordinate system
float offset1 = (float)(textSize.Width * System.Math.Sqrt(2) / 4);
float offset2 = (float)(textSize.Height * System.Math.Sqrt(2) / 4);

// Traverse all the pages in the document
foreach (PdfPageBase page in pdf.Pages)
{
    // Set the page transparency
    page.Canvas.SetTransparency(0.8f);

    // Translate the coordinate system by specified coordinates
    page.Canvas.TranslateTransform(page.Canvas.Size.Width / 2 - offset1 - offset2, page.Canvas.Size.Height / 2 + offset1 - offset2);

    // Rotate the coordinate system 45 degrees counterclockwise
    page.Canvas.RotateTransform(-45);

    // Draw watermark text on the page
    page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0);
}

// Save the changes to another file
pdf.SaveToFile("TextWatermark.pdf");
Imports System
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing

' Create a PdfDocument object
Private pdf As New PdfDocument()

' Load a sample PDF document
pdf.LoadFromFile("C:\Users\Administrator\Desktop\sample.pdf")

' Create a PdfTrueTypeFont object
Dim font As New PdfTrueTypeFont(New Font("Arial", 50F), True)

' Set the watermark text
Dim text As String = "CONFIDENTIAL"

' Measure the text size
Dim textSize As SizeF = font.MeasureString(text)

' Calculate the values of two offset variables,
' which will be used to calculate the translation amount of the coordinate system
Dim offset1 As Single = CSng(textSize.Width * Math.Sqrt(2) / 4)
Dim offset2 As Single = CSng(textSize.Height * Math.Sqrt(2) / 4)

' Traverse all the pages in the document
For Each page As PdfPageBase In pdf.Pages
	' Set the page transparency
	page.Canvas.SetTransparency(0.8F)

	' Translate the coordinate system by specified coordinates
	page.Canvas.TranslateTransform(page.Canvas.Size.Width \ 2 - offset1 - offset2, page.Canvas.Size.Height \ 2 + offset1 - offset2)

	' Rotate the coordinate system 45 degrees counterclockwise
	page.Canvas.RotateTransform(-45)

	' Draw watermark text on the page
	page.Canvas.DrawString(text, font, PdfBrushes.DarkGray, 0, 0)
Next page

' Save the changes to another file
pdf.SaveToFile("TextWatermark.pdf")
$vbLabelText   $csharpLabel

Spire.PDF のアプローチはより長く、より手動なプロセスながら、デザインと位置を完全に制御する強力な透かしツールを提供します。 ### PDF にイメージやテキストをスタンプするにはどうすればよいですか?

IronPDF のスタンピング API は、異なるスタンプタイプに専用のクラスを使用します。TextStamperUseGoogleFont プロパティを通じて Google フォントを直接サポートし、ImageStamper は URL からまたはローカルファイルから画像をロードできます。 両方のスタンパーは、共通の配置プロパティを共有して一貫した位置決めを可能にします。 スタンピング オプション や、HTML スタンパーやバーコード統合などをさらに探ることができます。

Spire.PDF(テキストスタンピングの例):

IronPDFの例:

using IronPdf;
using IronPdf.Editing;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
using IronPdf;
using IronPdf.Editing;

// Instantiate Renderer
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>");

// Create text stamper
TextStamper textStamper = new TextStamper()
{
    Text = "Text Stamper!",
    FontFamily = "Bungee Spice",
    UseGoogleFont = true,
    FontSize = 30,
    IsBold = true,
    IsItalic = true,
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the text stamper
pdf.ApplyStamp(textStamper);
pdf.SaveAs("stampText.pdf");

// Create image stamper
ImageStamper imageStamper = new ImageStamper(new Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg"))
{
    VerticalAlignment = VerticalAlignment.Top,
};

// Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0);
pdf.SaveAs("stampImage.pdf");
Imports IronPdf
Imports IronPdf.Editing

' Instantiate Renderer
Private renderer As New ChromePdfRenderer()
Private pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Example HTML Document!</h1>")

' Create text stamper
Private textStamper As New TextStamper() With {
	.Text = "Text Stamper!",
	.FontFamily = "Bungee Spice",
	.UseGoogleFont = True,
	.FontSize = 30,
	.IsBold = True,
	.IsItalic = True,
	.VerticalAlignment = VerticalAlignment.Top
}

' Stamp the text stamper
pdf.ApplyStamp(textStamper)
pdf.SaveAs("stampText.pdf")

' Create image stamper
Dim imageStamper As New ImageStamper(New Uri("https://ironpdf.com/img/svgs/iron-pdf-logo.svg")) With {.VerticalAlignment = VerticalAlignment.Top}

' Stamp the image stamper
pdf.ApplyStamp(imageStamper, 0)
pdf.SaveAs("stampImage.pdf")
$vbLabelText   $csharpLabel

Spire.PDF は各効果についてグラフィックスの状態管理と座標変換を直接操作することが必要です。 複雑なスタンプを作成するには、グラフィックスの状態管理や座標変換の理解が必要です。 IronPDF のテキストおよび画像スタンピングツールはパワフルで使用しやすいスタンピングツールで、スタンプしたコンテンツを適用する際に HTML および CSS に似たアプローチをとります。

一方で Spire.PDF も基本的なテキスト スタンピング ツールを提供しますが、スタンプしたテキストを PDF ファイルに適用するのにより多くの労力が必要です。

using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

// Assumes a PdfDocument is already loaded as `doc` object
PdfPageBase page = doc.Pages[0];
PdfGraphicsState state = page.Canvas.Save();

// Define font and brushes for different effects
PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f);
PdfSolidBrush brush1 = new PdfSolidBrush(Color.DeepSkyBlue);
PdfSolidBrush brush2 = new PdfSolidBrush(Color.CadetBlue);

// Apply transformations and draw strings with shadow and effect
page.Canvas.TranslateTransform(20, 200);
page.Canvas.ScaleTransform(1f, 0.6f);
page.Canvas.SkewTransform(-10, 0);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush1, 0, 0);
page.Canvas.SkewTransform(10, 0);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, 0);
page.Canvas.ScaleTransform(1f, -1f);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, -2 * 18);

// Restore graphics to previous state
page.Canvas.Restore(state);
using Spire.Pdf;
using Spire.Pdf.Graphics;
using System.Drawing;

// Assumes a PdfDocument is already loaded as `doc` object
PdfPageBase page = doc.Pages[0];
PdfGraphicsState state = page.Canvas.Save();

// Define font and brushes for different effects
PdfFont font = new PdfFont(PdfFontFamily.Helvetica, 18f);
PdfSolidBrush brush1 = new PdfSolidBrush(Color.DeepSkyBlue);
PdfSolidBrush brush2 = new PdfSolidBrush(Color.CadetBlue);

// Apply transformations and draw strings with shadow and effect
page.Canvas.TranslateTransform(20, 200);
page.Canvas.ScaleTransform(1f, 0.6f);
page.Canvas.SkewTransform(-10, 0);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush1, 0, 0);
page.Canvas.SkewTransform(10, 0);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, 0);
page.Canvas.ScaleTransform(1f, -1f);
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, -2 * 18);

// Restore graphics to previous state
page.Canvas.Restore(state);
Imports Spire.Pdf
Imports Spire.Pdf.Graphics
Imports System.Drawing

' Assumes a PdfDocument is already loaded as `doc` object
Private page As PdfPageBase = doc.Pages(0)
Private state As PdfGraphicsState = page.Canvas.Save()

' Define font and brushes for different effects
Private font As New PdfFont(PdfFontFamily.Helvetica, 18F)
Private brush1 As New PdfSolidBrush(Color.DeepSkyBlue)
Private brush2 As New PdfSolidBrush(Color.CadetBlue)

' Apply transformations and draw strings with shadow and effect
page.Canvas.TranslateTransform(20, 200)
page.Canvas.ScaleTransform(1F, 0.6F)
page.Canvas.SkewTransform(-10, 0)
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush1, 0, 0)
page.Canvas.SkewTransform(10, 0)
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, 0)
page.Canvas.ScaleTransform(1F, -1F)
page.Canvas.DrawString("Go! Turn Around! Go! Go! Go!", font, brush2, 0, -2 * 18)

' Restore graphics to previous state
page.Canvas.Restore(state)
$vbLabelText   $csharpLabel

DOCX から PDF への変換をどのライブラリがよりうまく扱いますか? IronPDF には、DOCX 変換をネイティブに処理する専用の DocxToPdfRenderer クラスが含まれています。

この API は IronPDF の他のレンダリングクラスと一貫しており、基本的な変換にたった 2 行のコードを必要とします。 レンダラーのプロパティを通じてページ設定やフォーマットのための高度なオプションが利用可能です。

DOCX から PDF への変換 機能についてもっと学びましょう。

IronPDFの例:

using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
using IronPdf;

// Instantiate Renderer
DocxToPdfRenderer renderer = new DocxToPdfRenderer();

// Render from DOCX file
PdfDocument pdf = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx");

// Save the PDF
pdf.SaveAs("pdfFromDocx.pdf");
Imports IronPdf

' Instantiate Renderer
Private renderer As New DocxToPdfRenderer()

' Render from DOCX file
Private pdf As PdfDocument = renderer.RenderDocxAsPdf("Modern-chronological-resume.docx")

' Save the PDF
pdf.SaveAs("pdfFromDocx.pdf")
$vbLabelText   $csharpLabel

Spire.PDF と DOCX から PDF への変換のための Spire.Doc の使用: Spire.PDF 自体は DOCX を PDF に変換できませんが、Spire.Doc ライブラリを使用してこの変換を処理し、その後に Spire.PDF を使用して生成された PDF を操作することができます。 このアプローチは追加のライブラリ (Spire.Doc) の購入と管理を要求し、コストと複雑さが増します。 IronPDF は直接 DOCX から PDF への変換を行うために組み込みのサポートを提供し、他のライブラリを必要とせずにタスクを処理することができ、時間を節約します。

一方で Spire.PDF は直接 DOCX から PDF への変換を処理できないため、DOCX ファイルを PDF に変換するために Spire.Doc ライブラリが必要です。

パフォーマンス メトリクスは何を明らかにしますか? テストおよびユーザーのフィードバックに基づいて、以下に実際の使用においてライブラリがどのように比較されるかを示します。

using Spire.Doc;

// Create a Document object
Document doc = new Document();

// Load a Word document
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.docx");

// Save the document to PDF
doc.SaveToFile("ToPDF.pdf", FileFormat.PDF);

// Dispose of resources
doc.Dispose();
using Spire.Doc;

// Create a Document object
Document doc = new Document();

// Load a Word document
doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\Sample.docx");

// Save the document to PDF
doc.SaveToFile("ToPDF.pdf", FileFormat.PDF);

// Dispose of resources
doc.Dispose();
Imports Spire.Doc

' Create a Document object
Private doc As New Document()

' Load a Word document
doc.LoadFromFile("C:\Users\Administrator\Desktop\Sample.docx")

' Save the document to PDF
doc.SaveToFile("ToPDF.pdf", FileFormat.PDF)

' Dispose of resources
doc.Dispose()
$vbLabelText   $csharpLabel

レンダリング パフォーマンス

基本的なレイアウトのために、Spire.PDF は静的な表や基本的なスタイルが付与されたテキストのようなシンプルなコンテンツに最適化されているため、これらのユースケースに対して迅速かつ効率的です。 しかし、最新の CSS3 機能を含む複雑な HTML、JavaScript、またはレスポンシブレイアウトを扱う場合、IronPDF の Chrome ベースのエンジンはやや高いレンダリング時間のコストで、より正確な結果を提供します。

メモリ使用量

Spire.PDF は、その単純なレンダリング エンジンにより、IronPDF (150-200MB) に対して少ないメモリ (80-120MB) を通常使用します。しかし、これはレンダリングの忠実度と機能サポートのコストで行われます。

メモリが重要であり HTML 複雑度が最小の場合、Spire.PDF が有利かもしれません。

スレッディングと非同期サポート IronPDF は RenderHtmlAsPdfAsync() のようなメソッドとネイティブの非同期/待機サポートを提供し、最新の .NET アプリケーションに適しています。

Spire.PDF は STA スレッドを用いた手動スレッド管理を必要とし、マルチスレッドアプリケーションに複雑さを追加します。

価格設定とライセンス モデルはどのように比較されますか? IronPDF では、さまざまなレベルのライセンス購入を可能にする追加機能を提供します。

開発者は、Iron Suite を購入することもでき、これは Iron Software のすべての製品にアクセスを与えます;価格は二つの製品の価格です。

ライセンスを購入する準備ができていない場合でも、IronPDF は 30 日間持続する無料トライアルを提供しています。 価格設定(2025年現在):

  • 永久ライセンス: チームの規模、プロジェクトの必要性、および所在地の数に応じた範囲の永久ライセンスを提供しています。

IronPDFの価格とライセンス

各ライセンスタイプには、メールサポートが付属しています。 - ライト ライセンス:このライセンスは 1 開発者、1 ロケーション、1 プロジェクトをサポートし、$799 が費用です。 - プラス ライセンス: 3 人の開発者、3 つのロケーション、および 3 つのプロジェクトをサポートし、ライト ライセンスの次のステップであり、$1,199 です。

Pricing (as of 2025):

  • Perpetual licenses: Offers a range of perpetual licenses depending on the size of your team, your project needs, and the number of locations. Each license type comes with email support.
  • Lite License: This license costs $799 and supports one developer, one location, and one project.
  • Plus License: Supporting three developers, three locations, and three projects, this is the next step up from the lite license and costs $1,199. Plus ライセンスでは、基本的なメールサポートに加えて、チャットサポートと電話サポートを提供しています。
  • Professional ライセンス: このライセンスは、より大きなチームに適しており、10人の開発者、10か所、10プロジェクトをサポートし、料金は $2,399 です。 以前の階層と同様の連絡サポートチャンネルを提供し、画面共有サポートも提供しています。
  • ロイヤルティフリーの再頒布: IronPDF のライセンスにはロイヤルティフリーの再頒布も含まれており、追加で $2,399 が必要です。
  • 中断のない製品サポート: IronPDF は、継続的な製品の更新やセキュリティ機能のアップグレード、エンジニアリングチームからのサポートへのアクセスを年間 $999 または一回限りの $1,999 で5年間のカバレッジを提供しています。
  • Iron Suite: $1,498 で、IronPDF、IronOCR、IronWord、IronXL、IronBarcode、IronQR、IronZIP、IronPrint、IronWebScraper を含むすべての Iron Software 製品にアクセスできます。

IronPDF 価格表 IronPDF は、永久ライセンスと包括的なサポートを含む柔軟なライセンスオプションを提供しています

Spire.PDF の価格とライセンス

Spire.PDF は、ニーズに応じた様々なライセンスを提供しています。

  • 無料バージョン: Spire.PDF は最大10ページのPDFに制限された無料バージョンを提供しています; これを超える場合、有料ライセンスを購入する必要があります。
  • 開発者サブスクリプション: サポートの種類に応じて、年間 $999 または $1,199 の価格で、OEM配布権を必要としないPDF関連機能を構築する開発者向けのオプションです。
  • 開発者 OEM サブスクリプション: サポートの量に応じて、年間 $2,549 - $4,248 の費用がかかり、無料のアップグレード、プレミアムサポート、およびエンドユーザーへのアプリケーションの配布権を含みます。
  • サイト中小企業: サポートの内容に応じて $4,599 または $7,598 の価格で、このライセンスタイアは最大10人の開発者を10か所まで、1年の更新と無料のオンライン技術リソースをサポートしています。
  • サイト OEM サブスクリプション: サポートの種類に応じて年間 $13,088 - $16,687 の費用がかかり、多数の拠点にアプリケーションを展開する必要がある大企業向けです。

どちらのライブラリがより優れたドキュメントとサポートを提供しますか?

IronPDF

IronPDF は広範なドキュメントとサポートを提供しています:

  • 包括的なドキュメント: すべての機能をカバーする広範でユーザーフレンドリーなドキュメント
  • 24/5 サポート: アクティブなエンジニアサポートが利用可能です。
  • ビデオチュートリアル: YouTubeでステップバイステップのビデオガイドが利用可能です。
  • コミュニティフォーラム: 追加のサポートのための参加型コミュニティ。
  • 定期的な更新: 最新の機能とセキュリティパッチを保証する月次製品更新。
  • PDF API リファレンス: API リファレンスを提供し、ツールの最大限の活用が可能です。

詳細については、IronPDF の広範なドキュメントをチェックし、Iron Software YouTube チャンネルを訪問してください。

Spire.PDF for .NET のドキュメントとサポート

  • フォーラム: Spire.PDF にはフォーラムがあり、ユーザー同士でヒント、使用例、および Spire.PDF に遭遇した問題を共有できます。
  • コードサンプル: Spire.PDF は、製品を様々な用途で使用する方法を示すコード例をウェブサイトで提供しています。
  • ニュースレター: Spire.PDF は、更新発表やその他の重要な情報を提供する開発者向けニュースレターを提供しています。
  • サポート: サポートは主にフォーラムを通じて行われており、ライセンスバージョンに応じて追加コストが発生する有料のメール/電話サポートが利用可能です。

一般的な開発者体験とフィードバックは?

コミュニティのフィードバックと実際の使用に基づく:

IronPDF のフィードバック

IronPDF は、"より包括的で正確な元のHTMLページの表現を提供する"と開発者に一貫して称賛されています。 ライブラリの複雑なCSS3レイアウト、JavaScriptが多用されたページ、最新のWebフレームワークを処理する能力は、高品質のPDF生成を必要とするアプリケーションにとって優れた選択肢となっています。

共通のポジティブなポイントには以下の点が含まれます:

  • 開発時間を短縮できる直感的なAPIデザイン
  • ブラウザ出力と一致する優れたレンダリング品質
  • 実用的な例を含む包括的なドキュメント
  • レスポンシブな技術サポート

Spire.PDF のフィードバック

コミュニティのフィードバックによると、"Spire は単なる画像としてのPDFファイルを生成します。 一部のCSSは正しくさえない場合があり、太字フォントを無視することもあります"。 さらに、JavaScriptサポートは計画中の機能であり、公式のサポートによると"非常に困難であるため短期間で完了しない"とされています。

共通の懸念には以下の点が含まれます:

  • 限られたCSS3と最新のWeb標準のサポート
  • JavaScript実行機能の欠如
  • HTML変換のための複雑なスレッド要件
  • 特定の機能に必要な追加ライブラリ

どのライブラリを選ぶべきか?

IronPDFを選ぶとき:

  • HTMLにモダンなCSS3、JavaScript、またはレスポンシブデザインが含まれている場合
  • ピクセルパーフェクトなブラウザ出力に一致するレンダリングが必要な場合
  • クロスプラットフォーム展開が必要な場合(Linux、macOS、Docker)
  • ライセンスに含まれる包括的なサポートを希望する場合
  • 追加ライブラリを必要とせずにDOCX変換のようなビルトイン機能が必要な場合
  • チームが最小限のコードで迅速な開発を重視する場合

Spire.PDFを選ぶとき:

  • PDFがシンプルなスタイリングの基本的なHTMLを含む場合
  • メモリ使用量が重要な制約である場合
  • 主にWindows環境で作業している場合
  • HTMLがJavaScriptの実行を必要としない場合
  • スタックに他のSpire製品をすでに使用している場合

結論

結論として、IronPDF と Spire.PDF for .NET は.NETアプリケーションでPDFドキュメントを扱うためのどちらも有能なツールです。 IronPDF は使いやすさ、クロスプラットフォームの互換性、モダンなWeb標準のサポートに優れており、PDFドキュメントを扱う際にステップアップしたい場合は優れた選択肢となります。 Spire.PDF は包括的な機能セットを提供していますが、複雑なタスクにはより多くの努力が必要で、最新のウェブアプリケーションが要求するレンダリングの精度が欠けています。

現代のウェブ技術を扱う開発者、正確なHTMLからPDFへの変換を必要とする方、信頼性のあるクロスプラットフォームサポートを求める方には、IronPDFがより完全なソリューションを提供します。 そのChromeに基づいたレンダリングエンジン、直感的なAPI、および包括的なサポートにより、企業アプリケーションや複雑なドキュメント生成のシナリオに特に適しています。

30日間の無料トライアル をお試しください。

ご注意Spire.PDFはその所有者の登録商標です。 このサイトはSpire.PDFと関連していないか、支持されているか、または後援されていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

よくある質問

C# で HTML を PDF に変換するにはどうすればいいですか?

IronPDF の RenderHtmlAsPdf メソッドを使用して、HTML 文字列を PDF に変換できます。RenderHtmlFileAsPdf を使用して HTML ファイルを PDF に変換することもできます。

IronPDF は HTML から PDF への変換中に JavaScript の実行をサポートしていますか?

はい、IronPDF は完全な JavaScript 実行をサポートしており、動的コンテンツまたは JavaScript に依存するレイアウトを PDF に変換するのに理想的です。

IronPDF は PDF 変換をサポートするプラットフォームはどれですか?

IronPDF は、Windows、Linux、macOS、Docker、また Azure や AWS のようなクラウド サービスを含む複数のプラットフォームでのネイティブサポートを提供します。

IronPDF のメモリ使用量は Spire.PDF と比較してどうですか?

IronPDFは、Spire.PDFの80-120MBと比較して、通常150-200MBのわずかに多くのメモリを使用しますが、より良いレンダリング品質を提供し、最新のasync/awaitパターンをサポートします。

IronPDF は DOCX ファイルを直接 PDF に変換できますか?

はい、IronPDF は追加のライブラリを必要とせずに DocxToPdfRenderer クラスを通じて組み込みの DOCX から PDF への変換機能を含んでいます。

IronPDF のライセンスオプションはどのようになっていますか?

IronPDFは、すべての機能とサポートを含む、シングル開発者向けに749ドルから始まる永続ライセンスを提供しています。また、9製品を含むIron Suiteバンドルを1,498ドルで提供しています。

IronPDFはどのようなサポートを提供していますか?

IronPDF は、すべてのライセンスに対してメール、チャット、電話、および画面共有を通じて 24/5 のエンジニアリングサポートを提供し、包括的な支援を保証します。

IronPDF で PDF のセキュリティと暗号化を確保するにはどうすればよいですか?

IronPDF は AES-256 暗号化とパスワード保護を SecuritySettings クラスを通じてサポートし、PDF の権限に対する詳細な制御を可能にします。

IronPDF は、現代の CSS を備えた複雑なウェブページのレンダリングに適していますか?

はい、IronPDF は CSS3、flexbox、グリッドレイアウト、Webフォント、および JavaScript をサポートする完全な Chrome レンダリング エンジンを使用しており、複雑なウェブページに適しています。

IronPDF の無料バージョンの制限は何ですか?

IronPDF は、すべての機能を試すのに十分な機会を提供するページ制限のない完全機能の30日間無料試用版を提供します。

IronPDF はどのようにして高品質な HTML レンダリングを確保しますか?

IronPDF は、Chrome ブラウザの出力に一致するピクセルパーフェクトなレンダリングを提供し、元の HTML コンテンツの高忠実度および正確な表現を保証します。

Jacob Mellor、Ironチームの最高技術責任者(CTO)
最高技術責任者(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技術の革新を推進し続け、次世代の技術リーダーを指導しています。