テキストコントロール vs IronPDF:技術比較ガイド
TextControl vs IronPDF:.NET PDF生成の技術的な比較
.NET開発者がPDF生成ライブラリを評価するとき、企業の議論では2つのソリューションが頻繁に登場します:TX Text ControlとIronPDFです。 どちらもPDF出力を生成できますが、基本的に異なるアーキテクチャ哲学を表しています。 この技術比較では、アーキテクトと開発者が.NETアプリケーションについて十分な情報を得た上で決定できるよう、両ライブラリを検証します。
TXテキストコントロールについて
TX Text Controlは、UIコントロールを組み込んだDOCX編集機能を重視する包括的なドキュメントエディタコンポーネントです。 PDF生成は、より広範な文書処理アーキテクチャの中の二次的な機能として存在します。 このプラットフォームは広範な文書編集機能を備えているため、リッチテキスト編集インターフェースを必要とするアプリケーションに適しています。
しかし、この包括的な性質は、開発チームが慎重に評価すべき考慮事項をもたらします:
- 高価なライセンス: TX Text Controlは、開発者1人あたり3,398ドル以上の商用ライセンスで動作し、更新へのアクセスを維持するために40%の年次更新が義務付けられています。
- 二次機能としてのPDF: コアアーキテクチャは、PDF生成よりもワープロ処理を優先し、PDF出力はアドオン機能として扱います。
- 既知のハードウェアの問題:第 11 世代インテル プロセッサーに影響する、文書化されたインテル Iris Xe グラフィックスのレンダリング バグは、レジストリの回避策が必要です。
- 肥大化した依存関係: PDFに特化したワークフローには不要かもしれない文書編集UIコンポーネントが含まれています。
- 複雑なAPI:ServerTextControl コンテキスト管理と選択モデルのパターンが必要です。
IronPDFの理解
IronPdfはUIコンポーネントやDOCX編集ツールをレイヤー化することなく、主にPDF生成にフォーカスすることで、根本的に異なるアプローチを取っています。 このライブラリは、特にPDFの生成と操作に最適化された、無駄のない調整された設計で際立っており、PDFファーストのアーキテクチャツールとして非常に効率的です。
IronPDFの主な特徴は以下のとおりです:
- PDFファーストアーキテクチャ:PDF 生成のためにゼロから設計され、堅牢なドキュメント作成およびレンダリング機能を提供します。
- Chromiumレンダリングエンジン:JavaScriptの実行を完全にサポートし、最新のHTML5とCSS3の標準を活用しています。
- コスト効率:1回限りのライセンスモデルにより、継続的なサブスクリプションコストを排除
- 実証された安定性:さまざまなハードウェア構成における信頼性を文書化し、プラットフォーム固有のレンダリング問題を回避します。
- シンプルな統合: コンテキスト管理や複雑な初期化パターンは必要ありません。
価格比較
TextControlとIronPDFのライセンス構造は、時間の経過とともに大きなコストの違いを明らかにします:
| アスペクト | TXテキストコントロール | IronPDF |
|---|---|---|
| 基本ライセンス | 開発者1名あたり3,398ドル以上 | 開発者1名につき1回のみ749ドル |
| 年間更新 | 40% 必須 | オプションサポート |
| 4人チーム(1年目) | ~$6,749 | ~$2,996 |
| 3年間の総費用 | 開発者1人あたり5,750ドル以上 | 開発者1名につき749ドル |
| UIコンポーネント | バンドル(肥大化の可能性) | PDFのみ |
| サーバーランタイム | 追加ライセンス | 含まれるもの |
機能比較
次の表は、TextControlとIronPDFの技術的な違いを主要な側面から見たものです:
| フィーチャー | TXテキストコントロール | IronPDF |
|---|---|---|
| 主な焦点 | DOCX編集 | PDF生成 |
| PDFの品質 | 基本的なアドオン機能 | 高いコア機能 |
| HTMLからPDFへ | はい(二次) | はい(プライマリ) |
| CSSサポート | 制限的 | 完全なCSS3 |
| JavaScriptの実行 | 制限的 | フルES2024 |
| URLからPDFへ。 | 複雑な設定が必要 | ネイティブサポート |
| ヘッダー/フッター | 複雑なAPI | シンプルなHTMLベース |
| メールマージ | 独自システム | HTMLテンプレート |
| PDF/Aコンプライアンス | はい | はい |
| パスワード保護 | はい | はい |
| デジタル署名。 | はい | はい |
| PDFをマージする。 | 制限的 | フルサポート |
| PDFを分割する。 | 制限的 | フルサポート |
| ウォーターマーク。 | 複雑な実装 | 簡単なHTML/CSS |
| ハードウェアの互換性について | インテル® Iris の既知の問題 | すべてのデバイスで安定 |
| コンテキスト管理 | 必須 | 不要 |
| クロスプラットフォーム。 | Windowsに特化 | はい |
APIアーキテクチャの違い
TextControlとIronPDFの決定的な違いは、APIの設計思想と初期化パターンにあります。
TextControl のアプローチ
TextControlは、ServerTextControlクラスを通して明示的なコンテキスト管理を必要とします。 すべての操作は、Create()を呼び出した後、usingブロック内で行わなければなりません:
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
textControl.Load(html, StreamType.HTMLFormat);
textControl.Save("output.pdf", StreamType.AdobePDF);
}
}
}
}// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
textControl.Load(html, StreamType.HTMLFormat);
textControl.Save("output.pdf", StreamType.AdobePDF);
}
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comこのパターンでは、TextControl固有のクラス、ストリームタイプ、コンテキストのライフサイクルを理解する必要があります。
IronPDFのアプローチ
IronPDFはコンテキスト管理を完全に排除します。 ChromePdfRendererクラスは、開発者がすぐに使えるステートレスAPIを提供します:
// NuGet: Install-Package IronPdf
using IronPdf;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
}// NuGet: Install-Package IronPdf
using IronPdf;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comHTML変換機能に関する包括的なガイダンスについては、HTML to PDFチュートリアルをご覧ください。
APIマッピングリファレンス
TextControlからIronPdfへの移行を検討しているチームは、このマッピングが概念の等価性を理解するのに役立つと思います:
| TXテキストコントロール | IronPDF | ノート |
|---|---|---|
ServerTextControl.Create()。 | new ChromePdfRenderer(). | コンテキスト管理不要 |
tx.Load(html, StreamType.HTMLFormat). | renderer.RenderHtmlAsPdf(html). | 直接レンダリング |
tx.Load(url, StreamType.HTMLFormat). | renderer.RenderUrlAsPdf(url)のようにします。 | ネイティブURLサポート |
tx.Save(path, StreamType.AdobePDF). | pdf.SaveAs(path)のようにします。 | 簡単な保存操作 |
SaveSettings.PDFAConformance。 | <コード>RenderingOptions.PdfAFormat</コード | PDF/A準拠 |
DocumentServer.MailMerge。 | HTMLテンプレート + Razor | テンプレートのマージ |
DocumentTarget.HeadersAndFootersを使用してください。 | <コード>HtmlHeaderFooter</コード | ヘッダー/フッター |
| <コード>ロード設定</コード | <コード>レンダリングオプション</コード | 構成 |
| <コード>StreamType.AdobePDF</コード | デフォルト出力 | PDFが主なフォーマットです。 |
PDFドキュメントのマージ
ドキュメントのマージは、2つのライブラリ間で実装の複雑さが異なる共通の要件です。
TextControlの実装
TextControlは、明示的なアペンド・モード・フラグでドキュメントを順次読み込む必要があります:
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
byte[] pdf1 = File.ReadAllBytes("document1.pdf");
textControl.Load(pdf1, StreamType.AdobePDF);
byte[] pdf2 = File.ReadAllBytes("document2.pdf");
textControl.Load(pdf2, StreamType.AdobePDF, LoadAppendMode.Append);
textControl.Save("merged.pdf", StreamType.AdobePDF);
}
}
}
}// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
byte[] pdf1 = File.ReadAllBytes("document1.pdf");
textControl.Load(pdf1, StreamType.AdobePDF);
byte[] pdf2 = File.ReadAllBytes("document2.pdf");
textControl.Load(pdf2, StreamType.AdobePDF, LoadAppendMode.Append);
textControl.Save("merged.pdf", StreamType.AdobePDF);
}
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comIronPDFの実装
IronPDFは複数のドキュメントを受け入れるマージ専用の静的メソッドを提供します:
// NuGet: Install-Package IronPdf
using IronPdf;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
}// NuGet: Install-Package IronPdf
using IronPdf;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comPdfDocument.Merge メソッドは、任意の数のドキュメントを受け入れ、コンテキスト管理や手動でのバイト配列処理を必要とせずに、新しい結合されたPDFを返します。
ヘッダー、フッター、ページ番号
動的なページ番号を持つヘッダーとフッターを追加すると、APIの複雑さに大きな違いがあることがわかります。
TextControlの実装
TextControlは、明示的な型宣言によるセクションベースのヘッダー/フッター操作が必要です:
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
textControl.Load(html, StreamType.HTMLFormat);
HeaderFooter header = new HeaderFooter(HeaderFooterType.Header);
header.Text = "Document Header";
textControl.Sections[0].HeadersAndFooters.Add(header);
HeaderFooter footer = new HeaderFooter(HeaderFooterType.Footer);
footer.Text = "Page {page} of {numpages}";
textControl.Sections[0].HeadersAndFooters.Add(footer);
textControl.Save("output.pdf", StreamType.AdobePDF);
}
}
}
}// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
textControl.Load(html, StreamType.HTMLFormat);
HeaderFooter header = new HeaderFooter(HeaderFooterType.Header);
header.Text = "Document Header";
textControl.Sections[0].HeadersAndFooters.Add(header);
HeaderFooter footer = new HeaderFooter(HeaderFooterType.Footer);
footer.Text = "Page {page} of {numpages}";
textControl.Sections[0].HeadersAndFooters.Add(footer);
textControl.Save("output.pdf", StreamType.AdobePDF);
}
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comIronPDFの実装
IronPDFはテキストベースのヘッダーとフッターを追加するための合理的な方法を提供します:
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.AddTextHeader("Document Header");
pdf.AddTextFooter("Page {page} of {total-pages}");
pdf.SaveAs("output.pdf");
}
}
}// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.AddTextHeader("Document Header");
pdf.AddTextFooter("Page {page} of {total-pages}");
pdf.SaveAs("output.pdf");
}
}
}IRON VB CONVERTER ERROR developers@ironsoftware.comより複雑なヘッダーデザインのために、IronPDFはHtmlHeaderFooterクラスもサポートしています:
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = @"
<div style='width: 100%; text-align: center; font-size: 12pt;'>
Company Report
</div>",
MaxHeight = 30
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = @"
<div style='width: 100%; text-align: right; font-size: 10pt;'>
Page {page} of {total-pages}
</div>",
MaxHeight = 25
};renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = @"
<div style='width: 100%; text-align: center; font-size: 12pt;'>
Company Report
</div>",
MaxHeight = 30
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = @"
<div style='width: 100%; text-align: right; font-size: 10pt;'>
Page {page} of {total-pages}
</div>",
MaxHeight = 25
};IRON VB CONVERTER ERROR developers@ironsoftware.comURLからPDFへの変換
ライブのウェブページをPDFに変換すると、各ライブラリがウェブコンテンツをどのように処理するかというアーキテクチャの違いが明らかになります。
TextControl のアプローチ
TextControlは、限られたCSSとJavaScriptのサポートを提供するそのHTMLフォーマットハンドラを介して手動でURLをロードする必要があります:
using (ServerTextControl tx = new ServerTextControl())
{
tx.Create();
LoadSettings loadSettings = new LoadSettings();
loadSettings.ApplicationFieldFormat = ApplicationFieldFormat.MSWord;
tx.Load("https://example.com/invoice", StreamType.HTMLFormat, loadSettings);
SaveSettings saveSettings = new SaveSettings();
saveSettings.PDFAConformance = PDFAConformance.PDFa1b;
tx.Save("output.pdf", StreamType.AdobePDF, saveSettings);
}using (ServerTextControl tx = new ServerTextControl())
{
tx.Create();
LoadSettings loadSettings = new LoadSettings();
loadSettings.ApplicationFieldFormat = ApplicationFieldFormat.MSWord;
tx.Load("https://example.com/invoice", StreamType.HTMLFormat, loadSettings);
SaveSettings saveSettings = new SaveSettings();
saveSettings.PDFAConformance = PDFAConformance.PDFa1b;
tx.Save("output.pdf", StreamType.AdobePDF, saveSettings);
}IRON VB CONVERTER ERROR developers@ironsoftware.comIronPDFのアプローチ
IronPDFはChromiumエンジンによってネイティブのURLレンダリングを提供し、JavaScriptを実行し、すべてのスタイルを適用します:
var renderer = new ChromePdfRenderer();
//PDF/A準拠- simple property
renderer.RenderingOptions.PdfAFormat = PdfAVersions.PdfA1B;
var pdf = renderer.RenderUrlAsPdf("https://example.com/invoice");
pdf.SaveAs("output.pdf");var renderer = new ChromePdfRenderer();
//PDF/A準拠- simple property
renderer.RenderingOptions.PdfAFormat = PdfAVersions.PdfA1B;
var pdf = renderer.RenderUrlAsPdf("https://example.com/invoice");
pdf.SaveAs("output.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comRenderUrlAsPdfメソッドは、動的に生成されたコンテンツを含むレンダリングされたページ全体をキャプチャするため、React、Angular、Vue.jsなどのフレームワークで構築された最新のWebアプリケーションに最適です。
ページの設定と構成
ページの寸法、余白、向きを設定するには、ドキュメント設定へのさまざまなアプローチを示しています。
TextControlの実装
TextControlは、TWIPSで測定されたセクションベースのページ設定を使用します:
using (ServerTextControl tx = new ServerTextControl())
{
tx.Create();
tx.Load(html, StreamType.HTMLFormat);
// Complex page settings through sections
foreach (Section section in tx.Sections)
{
section.Format.PageSize = PageSize.A4;
section.Format.PageMargins = new PageMargins(
1440, 1440, 1440, 1440); // TWIPS
section.Format.Landscape = true;
}
tx.Save("output.pdf", StreamType.AdobePDF);
}using (ServerTextControl tx = new ServerTextControl())
{
tx.Create();
tx.Load(html, StreamType.HTMLFormat);
// Complex page settings through sections
foreach (Section section in tx.Sections)
{
section.Format.PageSize = PageSize.A4;
section.Format.PageMargins = new PageMargins(
1440, 1440, 1440, 1440); // TWIPS
section.Format.Landscape = true;
}
tx.Save("output.pdf", StreamType.AdobePDF);
}IRON VB CONVERTER ERROR developers@ironsoftware.comIronPDFの実装
IronPDFは直感的なミリメートルベースの測定でRenderingOptionsにページ設定を集中させます:
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 25; // mm
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 25;
renderer.RenderingOptions.MarginRight = 25;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = PdfPaperOrientation.Landscape;
renderer.RenderingOptions.MarginTop = 25; // mm
renderer.RenderingOptions.MarginBottom = 25;
renderer.RenderingOptions.MarginLeft = 25;
renderer.RenderingOptions.MarginRight = 25;
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comパスワード保護とセキュリティ
どちらのライブラリもPDFのセキュリティ機能をサポートしていますが、APIパターンは異なります。
TextControlの実装
using (ServerTextControl tx = new ServerTextControl())
{
tx.Create();
tx.Load(html, StreamType.HTMLFormat);
SaveSettings saveSettings = new SaveSettings();
saveSettings.UserPassword = "user123";
saveSettings.MasterPassword = "owner456";
tx.Save("protected.pdf", StreamType.AdobePDF, saveSettings);
}using (ServerTextControl tx = new ServerTextControl())
{
tx.Create();
tx.Load(html, StreamType.HTMLFormat);
SaveSettings saveSettings = new SaveSettings();
saveSettings.UserPassword = "user123";
saveSettings.MasterPassword = "owner456";
tx.Save("protected.pdf", StreamType.AdobePDF, saveSettings);
}IRON VB CONVERTER ERROR developers@ironsoftware.comIronPDFの実装
IronPdfはSecuritySettingsプロパティを通してきめ細かいセキュリティコントロールを提供します:
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("protected.pdf");var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "user123";
pdf.SecuritySettings.OwnerPassword = "owner456";
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SaveAs("protected.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comチームがTextControlの代替案を検討するとき
開発チームは、TextControlに代わるものを評価する必要があります:
コストの最適化
TextControlのライセンスは、開発者1人あたり3,398ドル以上からで、毎年40%の更新が義務付けられているため、3年間の総所有コストは開発者1人あたり5,750ドル以上に達します。 PDF生成に重点を置くチームでは、この価格設定を正当化するのは難しいと考えることがよくあります。
ハードウェアの互換性に関する懸念
第11世代Intelプロセッサーに影響を及ぼすIntel Iris Xe Graphicsのバグが文書化されているため、TextControlの導入にはレジストリの回避策が必要です。 IronPDFのChromiumベースのレンダリングは、このようなハードウェア固有のレンダリングの問題を完全に取り除きます。
PDF-Firstの要件
文書編集ではなくPDF生成が主な使用例である場合、TextControlのワードプロセッサアーキテクチャは不必要な複雑さをもたらします。 DOCX編集機能や埋め込みUIコントロールを必要としないアプリケーションは、IronPdfのPDFを第一に考えたデザインから恩恵を受けることができます。
最新のウェブ技術の統合
TextControlの限られたCSSとJavaScriptのサポートは、現代のフロントエンドフレームワークを使用するアプリケーションのための課題を作成します。 IronPdfはHTML5, CSS3, ES2024 JavaScriptを完全にサポートし、最新のウェブコンテンツを正確にレンダリングします。
シンプルな配置
TextControlのServerTextControlコンテキスト管理とUIコンポーネントの依存関係は、デプロイの複雑さを増加させます。 IronPdfは外部依存や複雑な初期化パターンを持たない自己完結型のNuGetパッケージとして動作します。
テンプレートとメール マージの代替
TextControl独自のメールマージシステムは、マージフィールド付きのDOCXテンプレートを使用しています。 IronPdfはこれを標準的なHTMLテンプレートアプローチに置き換えます:
// Use standard C# string interpolation
var data = new { CustomerName = "John Doe", InvoiceNumber = "12345", Total = "$1,500.00" };
var html = $@"
<html>
<head>
<style>
body {{ font-family: Arial; padding: 40px; }}
h1 {{ color: #333; }}
.total {{ font-size: 24px; color: green; }}
</style>
</head>
<body>
<h1>Invoice #{data.InvoiceNumber}</h1>
<p>Customer: {data.CustomerName}</p>
<p class='total'>Total: {data.Total}</p>
</body>
</html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");// Use standard C# string interpolation
var data = new { CustomerName = "John Doe", InvoiceNumber = "12345", Total = "$1,500.00" };
var html = $@"
<html>
<head>
<style>
body {{ font-family: Arial; padding: 40px; }}
h1 {{ color: #333; }}
.total {{ font-size: 24px; color: green; }}
</style>
</head>
<body>
<h1>Invoice #{data.InvoiceNumber}</h1>
<p>Customer: {data.CustomerName}</p>
<p class='total'>Total: {data.Total}</p>
</body>
</html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");IRON VB CONVERTER ERROR developers@ironsoftware.comより複雑なテンプレートシナリオのために、IronPdfはRazorエンジンや他のテンプレートフレームワークと統合しています。 詳細な実装パターンについては、Razor テンプレート統合ガイドを参照してください。
.NETの互換性と将来の準備
どちらのライブラリも、現在の.NET実装をサポートしています。 IronPDFは定期的なアップデートでアクティブな開発を維持し、.NET 8、.NET 9、そして2026年に予定されている.NET 10を含む将来のリリースとの互換性を保証します。このライブラリのAPI全体にわたるasync/awaitのサポートは、C# 13で利用可能な機能とC# 14で予想される機能を含む、最新のC#開発プラクティスに沿っています。
追加のPDF機能
IronPDFは生成だけでなく、その実用性を拡張する文書操作機能を提供します:
- PDFのマージ:複数のドキュメントを1つのファイルにまとめる
- ドキュメントを分割する: ページ範囲を別々のPDFに抽出します。
- デジタル署名:文書の信頼性のために暗号署名を適用する
- 透かし:HTML/CSS 経由でテキストまたは画像の透かしを追加する。
- PDF/A コンプライアンス:アーカイブ標準ドキュメントの生成
- フォーム入力:プログラムでPDFフォームフィールドに入力する
結論
TXテキストコントロールとIronPDFはPDF出力を行うツールですが、主な目的は異なります。 TextControlは、DOCX操作と埋め込みUIコントロールを備えた包括的なドキュメントエディタとして優れており、ドキュメントのエクスポート機能とともにリッチなテキスト編集インターフェースを必要とするアプリケーションに最適です。
IronPDFはHTMLやウェブコンテンツからのPDF生成に特化しており、完全なドキュメント編集インフラのオーバーヘッドなしにHTMLやURL、動的に生成されたコンテンツをPDFに変換する必要のある開発者に合理的なソリューションを提供します。 Chromiumベースのレンダリングにより、ブラウザの表示にマッチしたピクセルパーフェクトな出力が保証され、API設計はシンプルさと標準的なWeb開発ワークフローとの統合を優先しています。
TextControlはPDFエクスポートを含む包括的なドキュメント編集ができ、IronPDFはウェブコンテンツから簡単にPDFを生成することができます。 現在TextControlを主にPDF生成に使用しているチームにとって、IronPDFを評価することで、PDFの品質を犠牲にすることなく、大幅なコスト削減とシンプルなデプロイメントが可能になるかもしれません。
その他の実装ガイダンスについては、IronPDFドキュメントやチュートリアルを参照してください。