比較

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

.NET開発者がHTMLからPDFへのソリューションを評価するとき、HiQPdfはWebKitベースのレンダリングを利用する商用ライブラリとして際立っています。 HiQPdfはHTML5/CSS3をサポートしていますが、その古いWebKitエンジンは最新のJavaScriptフレームワークで苦労するかもしれません。 対照的に、IronPDFは最新のChromiumベースのレンダリングエンジンを使用しており、JavaScriptを完全にサポートし、すべての.NETプラットフォームで統一されたパッケージを提供しています。

この比較では、プロの開発者やアーキテクトが.NET PDFのニーズに対して十分な情報を得た上で意思決定できるように、関連する技術的側面にわたって両ライブラリを評価します。

HiQPdfの概要

HiQPdfは、WebKitベースのレンダリングエンジンを採用した商用HTML-to-PDFライブラリです。ライブラリのメイン変換クラスであるHtmlToPdfには、生のbyte[]データを返すConvertHtmlToMemory()ConvertUrlToMemory()などのメソッドがあります。 設定は、Document.HeaderDocument.FooterDocument.PageSizeなどのDocumentオブジェクトのプロパティチェーンを通じて管理されます。

HiQPdfの無料版では、PDF出力の最大ページ数が3ページまでという大きな制限があります。 このライブラリは、異なるプラットフォーム向けに複数のNuGetパッケージバリエーション(HiQPdf、HiQPdf.Free、HiQPdf.NetCore、HiQPdf.NetCore.x64、HiQPdf.Client)を提供しており、ドキュメントには.NET Coreまたは.NET 5+のサポートが明記されていません。

ヘッダーとフッターには、Document.HeaderDocument.Footerコレクションに追加されたHtmlToPdfVariableElementオブジェクトを使用します。 ページ番号プレースホルダは、現在のページには{CrtPage}<//code>、総ページには{PageCount}<//code>という構文を使用します。

IronPDFの概要

IronPDFは最新のChromiumレンダリングエンジンを利用する.NET PDFライブラリで、HTML5、CSS3、React、Angular、Vueを含むJavaScriptフレームワークをフルサポートします。 ライブラリの主要なレンダリングクラスであるChromePdfRendererには、RenderHtmlAsPdf()RenderUrlAsPdf()のようなメソッドがあり、PdfDocumentオブジェクトを返します。

IronPDFは.NET 6, 7, 8, 9, 10との互換性が文書化された、すべてのプラットフォーム用の統一されたNuGetパッケージを提供します。設定はレンダラー上で直接RenderingOptionsプロパティを使用します。 ヘッダーとフッターは、CenterTextFontSizeなどのプロパティを持つTextHeaderFooterを使用できます。 ページ番号のプレースホルダには、{page}<//code>と{total-pages}<//code>構文を使用します。

レンダリング エンジンと互換性の比較

これらのライブラリの基本的な違いは、レンダリングエンジンとプラットフォームサポートにあります。

アスペクトHiQPdfIronPDF
レンダリングエンジンWebKitベース(古い)モダンChromium
無料レベル3ページ以内+透かし30日間フルトライアル
モダンJSサポート制限的フル(React、Angular、Vue)
.NET Core/5+サポート複数のパッケージが必要統一パッケージ
APIデザイン複雑なプロパティチェーンクリーンで流暢なAPI
CSS3のサポート部分的サポート対象
ドキュメント断片化徹底した
NuGetパッケージ複数のバリエーション単一パッケージ

HiQPdfのWebKitベースのエンジンは古い技術であるため、最新のJavaScriptフレームワークや複雑なHTML構造には対応できません。 IronPdfのChromeエンジンはGoogle Chromeと同じレンダリング品質を提供し、最新のウェブコンテンツの正確な変換を保証します。

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

HTMLとURLからPDFへの変換

最も基本的な操作は、API設計の違いを示しています。

HiQPdf:

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

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
        byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory("https://example.com");
        System.IO.File.WriteAllBytes("output.pdf", pdfBuffer);

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        byte[] pdfFromHtml = htmlToPdfConverter.ConvertHtmlToMemory(html, "");
        System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml);
    }
}
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
        byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory("https://example.com");
        System.IO.File.WriteAllBytes("output.pdf", pdfBuffer);

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        byte[] pdfFromHtml = htmlToPdfConverter.ConvertHtmlToMemory(html, "");
        System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml);
    }
}
Imports HiQPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlToPdfConverter As New HtmlToPdf()
        Dim pdfBuffer As Byte() = htmlToPdfConverter.ConvertUrlToMemory("https://example.com")
        System.IO.File.WriteAllBytes("output.pdf", pdfBuffer)

        ' Convert HTML string
        Dim html As String = "<h1>Hello World</h1><p>This is a PDF document.</p>"
        Dim pdfFromHtml As Byte() = htmlToPdfConverter.ConvertHtmlToMemory(html, "")
        System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml)
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF:

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

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

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdfFromHtml = renderer.RenderHtmlAsPdf(html);
        pdfFromHtml.SaveAs("fromhtml.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdfFromHtml = renderer.RenderHtmlAsPdf(html);
        pdfFromHtml.SaveAs("fromhtml.pdf");
    }
}
Imports IronPdf
Imports System

Module Program
    Sub Main()
        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
        pdf.SaveAs("output.pdf")

        ' Convert HTML string
        Dim html As String = "<h1>Hello World</h1><p>This is a PDF document.</p>"
        Dim pdfFromHtml = renderer.RenderHtmlAsPdf(html)
        pdfFromHtml.SaveAs("fromhtml.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

HiQPdfはHtmlToPdfコンバータを作成し、ConvertUrlToMemory()またはConvertHtmlToMemory()を呼び出して生のbyte[]データを取得し、File.WriteAllBytes()を使って手動でディスクに書き込みます。 ConvertHtmlToMemory()メソッドには、ベースURLの第2パラメータが必要です(不要な場合は空文字列)。

IronPDFはChromePdfRendererを作成し、RenderUrlAsPdf()またはRenderHtmlAsPdf()を呼び出してPdfDocumentオブジェクトを取得し、SaveAs()で直接保存します。 APIは、オブジェクト指向のドキュメント処理でより簡潔になります。

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

複数のPDFをマージする

PDFマージは、文書操作のさまざまなアプローチを示します。

HiQPdf:

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

class Program
{
    static void Main()
    {
        // Create first PDF
        HtmlToPdf converter1 = new HtmlToPdf();
        byte[] pdf1 = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "");
        System.IO.File.WriteAllBytes("doc1.pdf", pdf1);

        // Create second PDF
        HtmlToPdf converter2 = new HtmlToPdf();
        byte[] pdf2 = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "");
        System.IO.File.WriteAllBytes("doc2.pdf", pdf2);

        // Merge PDFs
        PdfDocument document1 = PdfDocument.FromFile("doc1.pdf");
        PdfDocument document2 = PdfDocument.FromFile("doc2.pdf");
        document1.AddDocument(document2);
        document1.WriteToFile("merged.pdf");
    }
}
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        // Create first PDF
        HtmlToPdf converter1 = new HtmlToPdf();
        byte[] pdf1 = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "");
        System.IO.File.WriteAllBytes("doc1.pdf", pdf1);

        // Create second PDF
        HtmlToPdf converter2 = new HtmlToPdf();
        byte[] pdf2 = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "");
        System.IO.File.WriteAllBytes("doc2.pdf", pdf2);

        // Merge PDFs
        PdfDocument document1 = PdfDocument.FromFile("doc1.pdf");
        PdfDocument document2 = PdfDocument.FromFile("doc2.pdf");
        document1.AddDocument(document2);
        document1.WriteToFile("merged.pdf");
    }
}
Imports HiQPdf
Imports System

Module Program
    Sub Main()
        ' Create first PDF
        Dim converter1 As New HtmlToPdf()
        Dim pdf1 As Byte() = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "")
        System.IO.File.WriteAllBytes("doc1.pdf", pdf1)

        ' Create second PDF
        Dim converter2 As New HtmlToPdf()
        Dim pdf2 As Byte() = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "")
        System.IO.File.WriteAllBytes("doc2.pdf", pdf2)

        ' Merge PDFs
        Dim document1 As PdfDocument = PdfDocument.FromFile("doc1.pdf")
        Dim document2 As PdfDocument = PdfDocument.FromFile("doc2.pdf")
        document1.AddDocument(document2)
        document1.WriteToFile("merged.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

IronPDF:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Create first PDF
        var pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>");
        pdf1.SaveAs("doc1.pdf");

        // Create second PDF
        var pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>");
        pdf2.SaveAs("doc2.pdf");

        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Create first PDF
        var pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>");
        pdf1.SaveAs("doc1.pdf");

        // Create second PDF
        var pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>");
        pdf2.SaveAs("doc2.pdf");

        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
Imports IronPdf
Imports System

Module Program
    Sub Main()
        Dim renderer = New ChromePdfRenderer()

        ' Create first PDF
        Dim pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>")
        pdf1.SaveAs("doc1.pdf")

        ' Create second PDF
        Dim pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>")
        pdf2.SaveAs("doc2.pdf")

        ' Merge PDFs
        Dim merged = PdfDocument.Merge(pdf1, pdf2)
        merged.SaveAs("merged.pdf")
    End Sub
End Module
$vbLabelText   $csharpLabel

HiQPdfでは、まずPDFをディスクに保存し、PdfDocument.FromFile()で読み込み、AddDocument()で別のPDFに追加し、最後にWriteToFile()で結果を保存します。 これは、最初のドキュメントを修正するものです。

IronPDFは静的なPdfDocument.Merge()メソッドを使ってメモリ上で直接ドキュメントをマージすることができます。 このアプローチは、よりクリーンで、中間ファイルI/Oを必要としません。

ページ番号を含むヘッダーとフッター

ヘッダーとフッターの構成は、動的コンテンツへのさまざまなアプローチを示しています。

HiQPdf:

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

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

        // Add header
        htmlToPdfConverter.Document.Header.Height = 50;
        HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "");
        htmlToPdfConverter.Document.Header.Add(headerHtml);

        // Add footer with page number
        htmlToPdfConverter.Document.Footer.Height = 50;
        HtmlToPdfVariableElement footerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "");
        htmlToPdfConverter.Document.Footer.Add(footerHtml);

        byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "");
        System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer);
    }
}
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

        // Add header
        htmlToPdfConverter.Document.Header.Height = 50;
        HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "");
        htmlToPdfConverter.Document.Header.Add(headerHtml);

        // Add footer with page number
        htmlToPdfConverter.Document.Footer.Height = 50;
        HtmlToPdfVariableElement footerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "");
        htmlToPdfConverter.Document.Footer.Add(footerHtml);

        byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "");
        System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer);
    }
}
Imports HiQPdf
Imports System

Class Program
    Shared Sub Main()
        Dim htmlToPdfConverter As New HtmlToPdf()

        ' Add header
        htmlToPdfConverter.Document.Header.Height = 50
        Dim headerHtml As New HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "")
        htmlToPdfConverter.Document.Header.Add(headerHtml)

        ' Add footer with page number
        htmlToPdfConverter.Document.Footer.Height = 50
        Dim footerHtml As New HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "")
        htmlToPdfConverter.Document.Footer.Add(footerHtml)

        Dim pdfBuffer As Byte() = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "")
        System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer)
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Page Header",
            FontSize = 12
        };

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 10
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>");
        pdf.SaveAs("header-footer.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Page Header",
            FontSize = 12
        };

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 10
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>");
        pdf.SaveAs("header-footer.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System

Class Program
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()

        ' Configure header and footer
        renderer.RenderingOptions.TextHeader = New TextHeaderFooter() With {
            .CenterText = "Page Header",
            .FontSize = 12
        }

        renderer.RenderingOptions.TextFooter = New TextHeaderFooter() With {
            .CenterText = "Page {page} of {total-pages}",
            .FontSize = 10
        }

        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>")
        pdf.SaveAs("header-footer.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

HiQPdfは、Document.HeaderDocument.Footerプロパティを通してヘッダーとフッターを設定し、Heightを設定し、HtmlToPdfVariableElementオブジェクトを追加します。 ページ番号のプレースホルダは、現在のページには{CrtPage}<//code>を使用し、総ページには{PageCount}<//code>を使用します。

IronPDFはTextHeaderFooterオブジェクトでRenderingOptions.TextHeader<//code>とRenderingOptions.TextFooter<//code>を使用します。 CenterTextFontSizeのようなプロパティは、直接設定を提供します。 ページ番号のプレースホルダには、{page}<//code>と{total-pages}<//code>を使用します。

ヘッダーとフッターの設定については、IronPDFチュートリアルをご覧ください。

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

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

メインクラスのマッピング

HiQPdfクラスIronPDF クラス
HtmlToPdf</codeChromePdfRenderer</code
PdfDocument</codePdfDocument</code
PdfPage</codepdf.Pages[i]</code
PdfDocumentControl</codeレンダリングオプション</code
PdfHeader / PdfDocumentHeaderHtmlHeaderFooter</code
PdfFooter / PdfDocumentFooterHtmlHeaderFooter</code
HtmlToPdfVariableElement</codeHtmlHeaderFooter.HtmlFragment</code

変換メソッドマッピング

HiQPdfメソッドIronPDF メソッド
ConvertHtmlToMemory(html、baseUrl)RenderHtmlAsPdf(html, baseUrl).
ConvertUrlToMemory(url)を使用してください。RenderUrlAsPdf(url)を使用してください。
ConvertHtmlToFile(html, baseUrl, path).RenderHtmlAsPdf(html).SaveAs(path)を実行してください。
ConvertUrlToFile(url, path)RenderUrlAsPdf(url).SaveAs(path)を実行してください。

プロパティ マッピング

HiQPdf プロパティIronPDF プロパティ
ブラウザ幅</codeRenderingOptions.ViewPortWidth
ブラウザハイト</codeRenderingOptions.ViewPortHeight
Document.PageSize</codeRenderingOptions.PaperSize</code
Document.PageOrientation</codeRenderingOptions.PaperOrientation</code
Document.Margins.Top</codeRenderingOptions.MarginTop
ドキュメント.マージン.ボトムRenderingOptions.MarginBottom
ドキュメント.余白.左RenderingOptions.MarginLeft(レンダリングオプション.マージンレフト)。
ドキュメント.余白.右RenderingOptions.MarginRight</code
Document.Header.Height</codeHtmlHeader.MaxHeight</code
Document.Footer.Height</codeHtmlFooter.MaxHeight</code
シリアル番号</codeIronPdf.License.LicenseKey</code

プレースホルダーの構文マッピング

ヘッダーとフッターのプレースホルダーは、ライブラリによって異なります:

HiQPdfIronPDF
{CrtPage}<//code>{ページ}</code
{ページ数}</code{総ページ数}</code
{CrtPageUri}<//code>{url}<//code>
{CrtPageTitle}<//code>{html-title}<//code>

機能比較の概要

フィーチャーHiQPdfIronPDF
クロムレンダリング❌ (WebKit)
モダンJavaScript(React、Angular、Vue)⚠️ 有限会社
CSS3をフルサポート⚠️ 部分
.NET 6/7/8/9/10サポート⚠️ 不明確なドキュメント
単一のNuGetパッケージ❌ (複数のバリエーション)
無料フルトライアル❌ (3ページ制限 + 透かし)✅ (30日間)
HTMLからPDFへ
URLからPDFへ
PDFマージ✅ (AddDocument)✅ (マージ)
ヘッダー/フッター✅ (HtmlToPdfVariableElement)✅ (TextHeaderFooter)

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

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

IronPdfは30日間のフル機能トライアルを提供しています。

古いWebKitエンジン: HiQPdfのWebKitベースのレンダリングエンジンは、React、Angular、Vueのような最新のJavaScriptフレームワークと格闘しています。 IronPdfのChromeエンジンはGoogle Chromeと同じレンダリング品質を提供し、複雑な最新のウェブコンテンツの正確な変換を保証します。

明確でない.NET Coreサポート: HiQPdfのドキュメントでは、.NET Coreまたは.NET 5+のサポートが明確にされておらず、ライブラリはプラットフォームごとに別々のNuGetパッケージを必要とします。 IronPDFは.NET 6, 7, 8, 9, 10を文書化した統一パッケージを提供します。

断片化されたNuGetパッケージ: HiQPdfは、シナリオごとに異なるパッケージ(HiQPdf、HiQPdf.Free、HiQPdf.NetCore、HiQPdf.NetCore.x64、HiQPdf.Client)を必要とします。 IronPDFはすべてのプラットフォームで単一のパッケージを使用します。

複雑なAPI設計: HiQPdfは、Document.Header.HeightDocument.Footer.Add()のようなプロパティチェーンを通して冗長な設定を必要とします。 RenderingOptionsプロパティによるIronPdfの流暢なAPIは、よりすっきりとした設定を提供します。

異なるプレースホルダーの構文: HiQPdfは{CrtPage}<//code>と{PageCount}<//code>プレースホルダーを使用し、IronPDFは{page}<//code>と{total-pages}<//code>を使用します。 移行には、すべてのヘッダー/フッターテンプレートの更新が必要です。

長所と考慮点

HiQPdfの強み

  • HTML5/CSS3サポート: HTML5とCSS3のレンダリング機能を提供します。
  • 確立されたライブラリ: 既存のユーザーベースを持つ商用ライブラリ。

HiQPdfについての考察

  • WebKitエンジン: 最新のJavaScriptサポートに制限のある古いレンダリング技術。
  • 3ページ制限: 無料版はかなり制限されています。
  • 断片化されたパッケージ:異なるプラットフォーム用の複数のNuGetパッケージ。
  • 明確でない.NETサポート: ドキュメントでは、最新の.NETとの互換性を明確にしていません。
  • 複雑なプロパティチェーン:入れ子になったプロパティによる詳細な設定
  • ポイントベースの単位: 測定にポイント(72/インチ)を使用します。

IronPDFの強み

  • Chromiumエンジン: JavaScriptをフルサポートした最新のレンダリング。
  • 統一パッケージ: すべてのプラットフォーム用の単一のNuGetパッケージ。
  • フルトライアル: 30日間のフル機能トライアル
  • 最新の.NETサポート: .NET 6、7、8、9、10に対応しています。
  • クリーンなAPI:流暢なRenderingOptionsコンフィギュレーション
  • 包括的なリソース: 豊富なチュートリアルドキュメント

IronPDFについての考察

  • 商用ライセンス: 本番使用時に必要です。
  • ミリメートル単位: 余白にポイントではなくミリメートルを使用します。

結論

HiQPdfとIronPDFは.NETアプリケーションにおけるHTML-to-PDFテクノロジーの異なる世代を代表します。 HiQPdfのWebKitベースのエンジンは、基本的なHTML5/CSS3をサポートしていますが、最新のJavaScriptフレームワークとの互換性に問題があり、.NET Coreとの互換性が不明確で、複数の断片的なパッケージがあります。 無料版では3ページの制限があるため、評価が大幅に制限されます。

IronPdfはReact、Angular、VueアプリケーションのJavaScriptをフルサポートした最新のChromiumベースの代替ツールを提供します。 ドキュメント化された.NET 6/7/8/9/10サポートの単一の統一NuGetパッケージは、デプロイを簡素化し、クリーンなAPI設計は、構成の複雑さを軽減します。

組織が.NET 10、C# 14、および2026年までのアプリケーション開発を計画する中で、断片化されたパッケージを使用する古いWebKitレンダリングと、統一されたサポートを使用する最新のChromiumレンダリングのどちらを選択するかは、開発速度と出力品質の両方に大きく影響します。 最新のJavaScriptフレームワークのサポート、明確な.NETとの互換性、合理化されたパッケージ管理を必要とするチームは、IronPDFがこれらの要件に効果的に対応することがわかります。

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