IRONSOFTWAREHOME
ビデオ

C#でHTMLからPDFにJava Scriptを使用する方法

Curtis Chau
Curtis Chau
Updated: 2026年5月18日

なぜDynamicPDFからIronPDFに移行するのですか?

DynamicPDFの製品分裂は、移行の一般的な原因です。 ライセンスモデルを理解することで、現在の実装の実際のコストを評価するのに役立ちます。

製品の断片化の問題

DynamicPDF(ceTe Software)は、PDF機能を別々にライセンスされたパッケージとして提供します:

  1. DynamicPDF Core Suite (ceTe.DynamicPDF.CoreSuite.NET, v12.43.0): Generator、Merger、およびReportWriterをバンドル
  2. DynamicPDF HTML Converter (ceTe.DynamicPDF.HtmlConverter.NET, v3.3.0): HTMLからPDFへの別個のアドオン
  3. DynamicPDF Converter (ceTe.DynamicPDF.Converter.NET, v3.32.0): Officeおよび50以上のファイル形式の変換
  4. DynamicPDF PrintManager (ceTe.DynamicPDF.Printing.NET): プログラムによる印刷
  5. DynamicPDF Rasterizer (ceTe.DynamicPDF.Rasterizer.NET): PDFから画像へ
  6. DynamicPDF Viewer (ceTe.DynamicPDF.Viewer.NET): WinForms/WPFビューアーコントロール

Generator、Merger、ReportWriterはCore Suiteに統合されていますが、HTMLレンダリング、ラスタライズ、印刷、および表示にはまだ別途購入が必要です。 IronPDFは、これらの機能を単一のライブラリとライセンスに統合します。

アーキテクチャの比較

アスペクトダイナミックPDFIronPDF
製品モデル断片的(5つ以上の製品)オールインワンライブラリ
ライセンスについて複数のライセンスが必要シングルライセンス
HTMLからPDFへ別途アドオン購入組み込み、Chromiumベース
CSSサポート制限付き(アドオンが必要です)フルCSS3とFlexbox/Grid
APIスタイル座標ベースのポジショニングHTML/CSS + 操作API
ラーニングカーブSteep(複数のAPI)ジェントル(ウェブ技術)
モダン.NET.NET Standard 2.0 / .NET 6 / .NET 8 / .NET Framework 4.6.2.NET 6/7/8/9+ ネイティブ

主な移行のメリット

1.単一パッケージ: 1つのNuGetパッケージで3~5個のDynamicPDFパッケージを置き換える 2.最新のレンダリング: Chromium エンジンと従来のレンダリング 3. **Webテクノロジー:**座標ベースの配置の代わりにHTML/CSSを使用する 4.**よりシンプルなAPI:**コードが少なくなり、読みやすくなり、メンテナンスが容易になります 5.アドオン購入なし: HTML、マージ、セキュリティがすべて含まれています

移行前の準備

前提条件

あなたの環境がこれらの要件を満たしていることを確認してください:

  • .NET Framework 4.6.2+または.NET 6/7/8/9+
  • Visual Studio 2019+またはC#拡張機能付きVS Code
  • NuGetパッケージマネージャへのアクセス
  • IronPDFライセンスキー (ironpdf.com にて無料トライアル可能)

DynamicPDFの使用状況を監査する

ソリューションディレクトリで以下のコマンドを実行して、すべてのDynamicPDF参照を確認してください:

# Find allダイナミックPDFreferences
grep -r "ceTe.DynamicPDF\|DynamicPDF" --include="*.cs" --include="*.csproj" .

# Check NuGet packages
dotnet list package | grep -i dynamic
SHELL

一般的なパッケージ

  • ceTe.DynamicPDF.CoreSuite.NET (Generator + Merger + ReportWriter)
  • ceTe.DynamicPDF.HtmlConverter.NET (HTMLからPDFへのアドオン)
  • ceTe.DynamicPDF.Converter.NET (Office / マルチフォーマットからPDFへ)
  • ceTe.DynamicPDF.Rasterizer.NET, ceTe.DynamicPDF.Printing.NET, ceTe.DynamicPDF.Viewer.NET

パラダイムシフトを理解する

DynamicPDFからIronPDFへの移行で最も大きな変更は、ドキュメント作成の基本的なアプローチです。 DynamicPDFは、ページ上の特定のX,Y座標に要素を配置する座標ベースのポジショニングを使用します。 IronPDFはHTML/CSSレンダリングを使用し、ウェブテクノロジーでデザインします。

このパラダイムシフトは、Table2の要素をHTMLの同等物に変換することを意味します。通常、この変更により、より読みやすく、メンテナンスしやすいコードが得られます。

ステップごとの移行プロセス

ステップ 1: NuGet パッケージを更新する

実際にインストールしたDynamicPDFパッケージを削除し、IronPDFを追加します:

# RemoveダイナミックPDFpackages (only those you actually have)
dotnet remove package ceTe.DynamicPDF.CoreSuite.NET
dotnet remove package ceTe.DynamicPDF.HtmlConverter.NET
dotnet remove package ceTe.DynamicPDF.Converter.NET
dotnet remove package ceTe.DynamicPDF.Rasterizer.NET
dotnet remove package ceTe.DynamicPDF.Printing.NET

# Install IronPDF
dotnet add package IronPdf
SHELL

ステップ 2: 名前空間参照の更新

DynamicPDF名前空間をIronPDFに置き換えてください:

// Remove these
using ceTe.DynamicPDF;
using ceTe.DynamicPDF.PageElements;
using ceTe.DynamicPDF.Merger;
using ceTe.DynamicPDF.Conversion;

// Add this
using IronPdf;

ステップ 3: ライセンスの設定

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

完全な API 移行のリファレンス

コア クラス マッピング

DynamicPDFクラスIronPDF 同等物
DocumentChromePdfRenderer
DocumentPdfDocument
PageHTML <div> with page-break
MergeDocumentPdfDocument.Merge()
HtmlConverterChromePdfRenderer

ページ要素と HTML のマッピング

DynamicPDF ページ要素IronPDF/HTMLに相当するもの
Label<p>, <span>, <div>
TextArea<div>, <p> with CSS
Image<img> tag
Table2HTML <table>
PageNumberingLabel{page} / {total-pages} placeholders

主な API マッピング

ダイナミックPDFIronPDF
Document + PageChromePdfRenderer
Label, TextAreaHTML <p>, <div>
Table2HTML <table>
MergeDocumentPdfDocument.Merge()
HtmlConverterChromePdfRenderer
document.Draw()pdf.SaveAs() / pdf.BinaryData
PageNumberingLabel %%CP%%{page} placeholder

コード移行の例

HTMLからPDFへの変換

HTMLからPDFへの変換は、DynamicPDFが別個のHtmlConverterアドオンを必要とする点を示していますが、IronPDFの組み込みChromiumレンダリングでは不要です。

DynamicPDFの実装:

// NuGet: Install-Package ceTe.DynamicPDF.Converter.NET
// HTML-to-PDF is a separate add-on; CoreSuite alone does not include it.
using ceTe.DynamicPDF;
using ceTe.DynamicPDF.Conversion;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1></body></html>";
        HtmlConverter converter = new HtmlConverter(html);
        converter.Convert("output.pdf");
    }
}

IronPDFの実装:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1></body></html>";
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
    }
}

IronPDFのChromePdfRendererは、完全なCSS3サポートを備えたChromiumベースのレンダリングを提供し、別のアドオンの購入は不要です。 その他のオプションについては、HTML to PDF documentationを参照してください。

複数のPDFをマージする

PDFの結合は、DynamicPDFのMergeメソッドの違いを示します。

DynamicPDFの実装:

// NuGet: Install-Package ceTe.DynamicPDF.CoreSuite.NET
using ceTe.DynamicPDF;
using ceTe.DynamicPDF.Merger;

class Program
{
    static void Main()
    {
        MergeDocument document = new MergeDocument("document1.pdf");
        document.Append("document2.pdf");
        document.Draw("merged.pdf");
    }
}

IronPDFの実装:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}

IronPDFの静的PdfDocumentオブジェクトを直接受け入れます。 その他のオプションについては、 PDF 結合のドキュメントを参照してください。

PDFにテキストを追加する

テキストの配置は、DynamicPDFの座標ベースのTextStamperへのパラダイムシフトを示しています。

DynamicPDFの実装:

// NuGet: Install-Package ceTe.DynamicPDF.CoreSuite.NET
using ceTe.DynamicPDF;
using ceTe.DynamicPDF.PageElements;

class Program
{
    static void Main()
    {
        Document document = new Document();
        Page page = new Page(PageSize.Letter);
        Label label = new Label("Hello from DynamicPDF!", 0, 0, 504, 100);
        page.Elements.Add(label);
        document.Pages.Add(page);
        document.Draw("output.pdf");
    }
}

IronPDFの実装:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Editing;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<html><body></body></html>");
        var textStamper = new TextStamper()
        {
            Text = "Hello from IronPDF!",
            FontSize = 20,
            VerticalAlignment = VerticalAlignment.Top
        };
        pdf.ApplyStamp(textStamper);
        pdf.SaveAs("output.pdf");
    }
}

IronPDFのTextStamperは、座標ベースの配置ではなく、位置合わせに基づく配置を提供し、レイアウトが異なるページサイズに対してより適応的になります。 その他のオプションについては、watermark and stamping documentationを参照してください。

完全なドキュメント生成例

この包括的な例では、複数の要素を持つDynamicPDFドキュメントをIronPDFのHTMLアプローチに変換しています。

DynamicPDFの実装:

using ceTe.DynamicPDF;
using ceTe.DynamicPDF.PageElements;
using ceTe.DynamicPDF.Merger;

// Generation (requires Generator license)
Document document = new Document();
Page page = new Page(PageSize.A4);
Label title = new Label("Invoice Report", 0, 0, 595, 30, Font.HelveticaBold, 18);
title.Align = TextAlign.Center;
page.Elements.Add(title);

Table2 table = new Table2(40, 60, 515, 500);
// ... complex table setup with columns, rows, cells...
page.Elements.Add(table);
document.Pages.Add(page);
document.Draw("invoice.pdf");

// Merging (requires Merger license)
MergeDocument mergeDoc = new MergeDocument("cover.pdf");
mergeDoc.Append("invoice.pdf");
mergeDoc.Draw("final.pdf");

IronPDFの実装:

using IronPdf;

var renderer = new ChromePdfRenderer();

// All features in one library
var html = @"
<html>
<head>
    <style>
        body { font-family: Helvetica, sans-serif; padding: 40px; }
        h1 { text-align: center; font-size: 18pt; }
        table { width: 100%; border-collapse: collapse; margin-top: 20px; }
        th, td { border: 1px solid #ccc; padding: 8px; }
    </style>
</head>
<body>
    <h1>Invoice Report</h1>
    <table>
        <tr><th>Product</th><th>Qty</th><th>Price</th></tr>
        <tr><td>Widget</td><td>10</td><td>$99.99</td></tr>
    </table>
</body>
</html>";

var invoice = renderer.RenderHtmlAsPdf(html);

// Merging included - no separate license
var cover = PdfDocument.FromFile("cover.pdf");
var final = PdfDocument.Merge(cover, invoice);
final.SaveAs("final.pdf");

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

座標ベースから HTML/CSS ポジショニングへ

根本的なパラダイムシフトとして、X,Y座標のポジショニングをCSSベースのレイアウトに変換する必要があります:

//ダイナミックPDF- coordinate-based
var label = new Label("Hello World", 100, 200, 300, 50);

//IronPDF- CSS positioning (if absolute positioning needed)
var html = "<div style='position:absolute; left:100px; top:200px; width:300px;'>Hello World</div>";

//IronPDF- preferred approach (flow-based)
var html = "<div style='margin-left:100px; margin-top:200px;'>Hello World</div>";

ページ番号の構文

DynamicPDFとIronPDFはページ番号に異なるプレースホルダー構文を使用します:

//ダイナミックPDFplaceholders
"Page %%CP%% of %%TP%%"

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

ヘッダーとフッター

DynamicPDFのHtmlHeaderFooterに変換する:

//IronPDFheader/footer
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<div style='text-align:center;'>Page {page} of {total-pages}</div>",
    MaxHeight = 25
};

その他のヘッダー/フッターオプションについては、headers and footers documentationを参照してください。

セキュリティ設定

//IronPDFsecurity
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.UserPassword = "userPassword";

包括的なセキュリティ オプションについては、暗号化のドキュメントを参照してください。

移行後のチェックリスト

コードの移行が完了したら、以下を確認してください:

  • 生成されたPDFの視覚的な比較
  • テキストの位置とレイアウトを確認する
  • テストテーブルのレンダリングとオーバーフロー
  • すべてのページのヘッダー/フッターを確認する
  • フォーム入力機能をテストする
  • セキュリティ/暗号化を確認する
  • パフォーマンスベンチマーク
  • 未使用のDynamicPDFライセンスファイルを削除する
  • ドキュメントの更新

その他のリソース


DynamicPDFからIronPDFへの移行により、複数の製品ライセンスを単一のライブラリに統合し、座標ベースの位置をHTML/CSSレンダリング(Chromium上で)に置き換えます。 既にウェブテクノロジーに慣れているチームは、結果として得られるコードがより管理しやすくなります。

ご注意: DynamicPDFはその所有者の登録商標です。) このサイトはceTe 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日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。