IRONSOFTWAREHOME
ビデオ

C#でPDF UAフォーマットドキュメントをエクスポートする方法

Curtis Chau
Curtis Chau
Updated: 2026年7月19日

HiQPdfは商用のHTML-to-PDFライブラリで、HiQPdf Softwareによって発行されています(現在のHiQPdfはnuget.org上で18.0.2、2026年2月)。 開発者が代替案を検討する一般的な理由:

  1. 制限付き無料バージョン: HiQPdf.Free は、ドキュメントあたりの出力を3ページに制限しています—評価には便利ですが、完全なドキュメント生成を必要とする本番作業には適していません。

  2. Classic LineのWebKit: Classic HiQPdfパッケージは、古いWebKitベースのエンジンを使用しており、最新 for JavaScriptフレームワークには対応しにくいことがあります。 HiQPdfはChromiumベースのバリアント(HiQPdf.NG / HiQPdf.Chromium.Windows、およびLinuxビルド)を提供していますが、既存の多くのコードはClassicエンジンをターゲットにしています。

  3. パッケージ間に分散された.NETサポート: .NET Framework、.NET Core、および.NET Standard 2.0がすべてサポートされていますが、別々のNuGet ID(HiQPdf、HiQPdf_NetCore、HiQPdf.NG、HiQPdf.Chromium.Windows、HiQPdf_x64)で分かれています。

  4. パッケージの断片化: 異なるプラットフォーム向けに複数のNuGet ID(HiQPdf, HiQPdf.Free, HiQPdf_NetCore, HiQPdf.NG, HiQPdf.Chromium.Windows)が存在し、依存関係の管理を複雑にしています。

  5. 冗長な設定: Document, Header, Footerプロパティチェーンを通じてセットアップが必要で、流暢なレンダリングオプションAPIを使用していません。

  6. 開発者ごとのライセンスコスト: $245 スタートアップ / $495 開発者 / $795 チーム / $1,095 Enterprise(永続、一年分の更新付き)。

HiQPdfとIronPDFの比較

アスペクトHiQPdfIronPDF
レンダリングエンジンWebKit (Classic HiQPdf) またはChromium (HiQPdf.NG / HiQPdf.Chromium.Windows)モダンChromium
無料レベルHiQPdf.Free 3ページ制限30日間フルトライアル
モダンJSサポートClassicで制限; modern on NG/Chromiumフル(React、Angular、Vue)
.NET Core/5+サポートサポートされているが、複数のNuGetパッケージに分割されています。統一パッケージ
APIデザインプロパティチェーン流暢なレンダリングオプション
CSS3 サポートClassic上では部分的; NG上では完全フルサポート
ドキュメンテーション製品ラインに分断されている包括的
NuGetパッケージ複数のバリエーション単一パッケージ

IronPDFは、最新のChromiumレンダリングエンジンを使用して、現在 for .NETバージョン(.NET Framework 4.6.2+、.NET 6、7、8、9)をサポートしています。


マイグレーションの複雑さの評価

機能別の見積もり作業

フィーチャー移行の複雑さ
HTMLからPDFへ低レベル
URLからPDFへ低レベル
PDFのマージ低レベル
ヘッダー/フッター中規模
ページサイズ/余白低レベル
トリガーモード/遅延低レベル

パラダイムシフト

このHiQPdf移行における基本的な変更は、プロパティ チェーン構成からFluent レンダリング オプションへの変更です。

HiQPdf: converter.Document.Header.Height = 50;
          converter.Document.Header.Add(新しいHtmlToPdfVariableElement(...));
          
IronPDF: renderer.RenderingOptions.TextHeader = new TextHeaderFooter() { ... };
Text

始める前に

前提条件

  1. .NET バージョン: IronPDFは.NET Framework 4.6.2+ と.NET Core 3.1+ / .NET 5+ をサポートします。 2.ライセンスキー: IronPDFからIronPDFライセンスキーを取得します。
  2. **HiQPdf の削除:**すべてのHiQPdfNuGetパッケージのバリアントを削除する計画

すべてのHiQPdfの使用法を特定する

# FindHiQPdfnamespace usage
grep -r "using HiQPdf\|HtmlToPdf\|PdfDocument" --include="*.cs" .

# Find header/footer usage
grep -r "\.Header\.\|\.Footer\.\|HtmlToPdfVariableElement" --include="*.cs" .

# Find placeholder syntax
grep -r "CrtPage\|PageCount" --include="*.cs" .

# Find NuGet references
grep -r "HiQPdf" --include="*.csproj" .
SHELL

NuGetパッケージの変更

# Remove allHiQPdfvariants
dotnet remove package HiQPdf
dotnet remove package HiQPdf.Free
dotnet remove package HiQPdf_NetCore
dotnet remove package HiQPdf_x64
dotnet remove package HiQPdf.NG
dotnet remove package HiQPdf.Chromium.Windows

# InstallIronPDF(single package for all platforms)
dotnet add package IronPdf
SHELL

クイック スタート マイグレーション

ステップ 1: ライセンス構成の更新

翻訳前 (HiQPdf):

HtmlToPdf converter = new HtmlToPdf();
converter.SerialNumber = "HIQPDF-SERIAL-NUMBER";

翻訳後(IronPDF):

// Set globally at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";

ステップ 2: 名前空間インポートを更新する

// Before (HiQPdf)
using HiQPdf;

// After (IronPDF)
using IronPdf;
using IronPdf.Rendering;

完全な API リファレンス

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

HiQPdfクラスIronPDF クラス
HtmlToPdfChromePdfRenderer
PdfDocumentPdfDocument
HtmlToPdfVariableElementTextHeaderFooter または HtmlHeaderFooter

変換メソッドマッピング

HiQPdfメソッドIronPDF メソッド
ConvertHtmlToMemory(html, baseUrl)RenderHtmlAsPdf(html)
ConvertUrlToMemory(url)RenderUrlAsPdf(url)
File.WriteAllBytes(path, bytes)pdf.SaveAs(path)

PDFドキュメントメソッドマッピング

HiQPdfメソッドIronPDF メソッド
PdfDocument.FromFile(path)PdfDocument.FromFile(path)
document1.AddDocument(document2)PdfDocument.Merge(pdf1, pdf2)
document.WriteToFile(path)pdf.SaveAs(path)

ヘッダー/フッター プレースホルダーのマッピング

HiQPdfプレースホルダIronPDF プレースホルダー翻訳内容
{CrtPage}{page}現在のページ番号
{PageCount}{total-pages}総ページ数

コード移行の例

例1: HTMLからPDFへの変換

翻訳前 (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);
    }
}

翻訳後(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");
    }
}

HiQPdfのアプローチでは、PdfDocumentオブジェクトを返し、手動のファイル書き込みステップを省きます。最新のChromiumエンジンは、複雑なHTML/CSS/JavaScriptコンテンツのレンダリングも向上させます。 その他のレンダリングオプションについては、HTML to PDF documentationを参照してください。

例2: 複数の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");
    }
}

翻訳後(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");
    }
}

HiQPdfのアプローチは、WriteToFile()を使用して保存します。 IronPDFは、複数のPdfDocument.Merge()メソッドを提供しており、中間的なファイル操作は不要です。 PDFのマージと分割については、こちらをご覧ください。

例3: ページ番号を含むPDFのヘッダーとフッター

翻訳前 (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);
    }
}

翻訳後(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");
    }
}

HiQPdfのアプローチでは、Add()を呼び出す必要があります。 ページ番号のプレースホルダーは{PageCount}構文を使用します。 IronPDFは、TextHeaderFooter構成を提供します。 HTMLベースのヘッダーを含むその他のオプションについては、headers and footers documentationを参照してください。


重要な移行に関する注意事項

プレースホルダーの構文の変更

ページ番号のある文書で最も重要な変更は、プレースホルダーの構文です:

//HiQPdfplaceholders
"Page {CrtPage} of {PageCount}"

//IronPDFplaceholders
"Page {page} of {total-pages}"

完全なプレースホルダ・マッピング:

  • {CrtPage}{page}
  • {PageCount}{total-pages}

マージ メソッドの違い

HiQPdfは、最初のドキュメントを所定の位置に修正します:

// HiQPdf: Modifies document1
document1.AddDocument(document2);
document1.WriteToFile("merged.pdf");

IronPDFは新しいマージされたドキュメントを返します:

// IronPDF: Returns new document
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");

3ページの制限はありません

HiQPdfの無料版では、透かし入りの出力は3ページまでです。 IronPDFは試用期間中、人工的な制限なしに完全なドキュメントを生成します。

ChromePdfRendererを再利用してください

HiQPdfでは変換ごとに新しいChromePdfRendererは再利用するべきです。

// IronPDF: Create once, reuse
var renderer = new ChromePdfRenderer();
var pdf1 = renderer.RenderHtmlAsPdf(html1);
var pdf2 = renderer.RenderHtmlAsPdf(html2);

トラブルシューティング

問題1: HtmlToPdfが見つかりません

問題: IronPDFにはHtmlToPdfクラスが存在しません。

解決策: ChromePdfRendererに置き換えます。

// HiQPdf
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

// IronPDF
var renderer = new ChromePdfRenderer();

問題 2: ConvertHtmlToMemory が見つかりません

問題: ConvertHtmlToMemory()メソッドが存在しません。

解決策: RenderHtmlAsPdf()を使用してください。

// HiQPdf
byte[] pdfBytes = converter.ConvertHtmlToMemory(html, "");

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
byte[] pdfBytes = pdf.BinaryData;

問題3: ページ番号のプレースホルダーが機能しない

問題: {CrtPage} および {PageCount} が出力にそのまま現れます。

解決策: IronPDFプレースホルダー構文を更新します。

//HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"

//IronPDFsyntax
"Page {page} of {total-pages}"

問題 4: HtmlToPdfVariableElement が見つかりません

問題: HtmlToPdfVariableElementクラスが存在しません。

解決策: TextHeaderFooter または HtmlHeaderFooter を使用してください。

// HiQPdf
HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div>Header</div>", "");
converter.Document.Header.Add(headerHtml);

// IronPDF
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Header",
    FontSize = 12
};

移行チェックリスト

移行前

  • コードベース内のすべてのHiQPdf API呼び出しをインベントリする
  • 現在のページサイズ、余白、設定を文書化する
  • ヘッダー/フッターの構成とプレースホルダーを識別する
  • IronPDFライセンスキーを取得する
  • 開発環境でIronPDFをテストする

コードの移行

  • すべてのHiQPdf NuGetパッケージ(すべてのバリアント)を削除します -IronPDFNuGetパッケージをインストールします: dotnet add package IronPdf
  • 名前空間のインポートを更新する
  • ChromePdfRendererに置き換えます
  • RenderHtmlAsPdf()に変換します
  • RenderUrlAsPdf()に変換します
  • ヘッダー/フッタープレースホルダーを更新します({CrtPage}{page}, {PageCount}{total-pages}
  • TextHeaderFooterに置き換えます
  • マージ操作を更新します(AddDocumentPdfDocument.Merge
  • 起動時にライセンスキーの初期化を追加

テスティング

  • HTMLからPDFへの変換テスト
  • URLからPDFへの変換テスト
  • ヘッダー/フッターのレンダリングを確認する
  • ページ番号のプレースホルダーを確認する
  • PDF結合のテスト
  • JavaScript を多用したページをテストする (Chromium でサポートされるようになりました)

移行後

  • 設定からHiQPdfのシリアル番号を削除する
  • ドキュメントの更新
  • レンダリングの違いを監視する

ご注意: HiQPdfはその所有者の登録商標です。 このサイトはHiQPdf Softwareと提携しておらず、HiQPdf Softwareによって承認されておらず、スポンサーされていません。 すべての製品名、ロゴ、およびブランドは各所有者の所有物です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。
Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

関連する記事

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。