移行ガイド C#でTallComponentsからIronPDFに移行する方法 カーティス・チャウ 公開日:2026年2月1日 IronPDF をダウンロード NuGet ダウンロード DLL ダウンロード Windows 版 無料トライアル LLM向けのコピー LLM向けのコピー LLM 用の Markdown としてページをコピーする ChatGPTで開く このページについてChatGPTに質問する ジェミニで開く このページについてGeminiに問い合わせる Grokで開く このページについてGrokに質問する 困惑の中で開く このページについてPerplexityに問い合わせる 共有する Facebook で共有 Xでシェア(Twitter) LinkedIn で共有 URLをコピー 記事をメールで送る ApryseがTallComponentsを買収したとき、.NET PDFの状況は大きく変わりました。 TallComponentsの新規ライセンスが終了し、既存ユーザーはiText SDKにリダイレクトされるため、TallPDFとPDFKitを使用している開発者は避けられない決断を迫られています。 このガイドでは、TallComponentsからIronPDFへの完全な移行パスを提供します。ステップバイステップの手順、APIマッピング、実際のコード例を含み、.NET開発者が効率的に移行できるように支援します。 なぜTallComponentsへの移行が必須なのか TallComponents は、かつて C# PDF 生成の有名企業でした。 ライブラリは、XMLベースのドキュメントワークフローとプログラムによるPDF操作を提供しました。 しかし、Apryseによる買収によって新規ライセンス販売が終了し、開発チームにとっての計算が根本的に変わりました。 TallComponentsの重要な制限事項 TallComponentsは、技術的に大きな負債を抱えています: 製品の製造中止: Apryse の買収以降、新しいライセンスは利用できません。トールコンポーネントの公式ウェブサイトでは、新規ライセンスの販売が終了したことを明示し、代わりに iText SDK を採用するよう潜在的なユーザーに案内しています。 HTML から PDF へのサポートなし:最新の PDF ライブラリとは異なり、TallComponents は HTML から PDF への直接変換をサポートしていません。 サポートプラットフォームの開発者は、この限界を確認しており、Pechkinのようなサードパーティのソリューションを選択肢として指摘しています。 文書化されたレンダリング バグ:変更ログには、空白ページのレンダリング、グラフィックの欠落、信頼性の低い JPEG 画像の処理、誤ったフォント表示など、広範なレンダリングの問題が示されています。 これらのバグは、廃止前に解決されることはありませんでした。 サポートまたは更新なし:アクティブなメンテナンスがなければ、.NET 10 および C# 14 のセキュリティ上の脆弱性や互換性の問題は解決されません。 IronPDF:最新のTallComponents代替ツール IronPDFは、TallComponentsを現代の開発ワークフローで問題にしていた核となる制限に対処しています: フィーチャー トールコンポーネント IronPDF 現在の販売状況 新規販売終了 積極的な開発と販売 HTMLからPDFへのサポート なし はい(Chromiumを使用したHTML5/CSS3) レンダリングの忠実度 既知のバグと問題 実証済みの信頼性 インストール 複雑、マニュアル NuGetでシンプルに カスタマーサポート iText SDK への移行 積極的なサポートとコミュニティ 将来のユーザビリティ 使用終了 長期的な有効性 TallComponentsは.NET開発の異なる時代からXMLベースのアプローチを提供し、IronPDFは今日の開発者がアプリケーションを構築する方法に沿ったChromiumパワーのHTMLレンダリングを提供します。 クイックスタート:TallComponentsからIronPDFへの移行 ステップ 1: NuGet パッケージを置き換える プロジェクトからすべてのTallComponentsパッケージを削除してください: # Removeトールコンポーネントpackages dotnet remove package TallComponents.PDF.Kit dotnet remove package TallComponents.PDF.Layout dotnet remove package TallComponents.PDF.Layout.Drawing # Removeトールコンポーネントpackages dotnet remove package TallComponents.PDF.Kit dotnet remove package TallComponents.PDF.Layout dotnet remove package TallComponents.PDF.Layout.Drawing SHELL IronPDFをインストールします: # Install IronPDF dotnet add package IronPdf # Install IronPDF dotnet add package IronPdf SHELL 特殊なフレームワークのために、IronPdfは専用の拡張パッケージを提供しています: Blazorサーバー:。 PM > Install-Package IronPdf.Extensions.Blazor PM > Install-Package IronPdf.Extensions.Blazor SHELL MAUI:。 PM > Install-Package IronPdf.Extensions.Maui PM > Install-Package IronPdf.Extensions.Maui SHELL MVCフレームワーク:。 PM > Install-Package IronPdf.Extensions.Mvc.Framework PM > Install-Package IronPdf.Extensions.Mvc.Framework SHELL ステップ 2: 名前空間の更新 TallComponents名前空間をIronPdf名前空間に置き換えてください: // Before (TallComponents) using TallComponents.PDF.Kit; using TallComponents.PDF.Layout; using TallComponents.PDF.Layout.Drawing; using TallComponents.PDF.Layout.Paragraphs; // After (IronPDF) using IronPdf; // Before (TallComponents) using TallComponents.PDF.Kit; using TallComponents.PDF.Layout; using TallComponents.PDF.Layout.Drawing; using TallComponents.PDF.Layout.Paragraphs; // After (IronPDF) using IronPdf; $vbLabelText $csharpLabel ステップ 3: ライセンスの初期化 アプリケーション起動時のライセンス初期化を追加します: IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"; $vbLabelText $csharpLabel TallComponentsからIronPDFへのAPIマッピングリファレンス TallComponentsのコンセプトがIronPDFにどのようにマッピングされるかを理解することで、移行プロセスが加速されます: トールコンポーネント IronPDF ノート ドキュメント ChromePdfRenderer PDF生成のためのレンダラー作成 セクション 自動翻訳 HTML構造から派生したセクション テキストパラグラフ HTMLテキスト要素 <p>、<h1>、<div>などを使用してください。 イメージパラグラフ <img>タグ 標準的なHTML画像 表段落 HTML <テーブル><code> 標準的なHTMLテーブル フォント CSS font-family ウェブフォント完全対応 document.Write() pdf.SaveAs() ファイルに保存 document.Write(stream)<code> pdf.BinaryDataまたは pdf.Stream。 ストリーム出力 Page.Canvas HTML/CSSレンダリング 手作業によるキャンバス操作は不要 XmlDocument.Generate()を使用してください。 RenderHtmlAsPdf() HTMLがXMLに代わる PdfKit.Merger.Merge(). PdfDocument.Merge()を使用してください。 複数のPDFをマージ ドキュメント.セキュリティ pdf.SecuritySettings PDFセキュリティ設定 ページレイアウト レンダリングオプション ページ設定と余白 コード移行の例 HTML を PDF に変換する TallComponentsは、ネイティブのHTMLからPDFへのサポートを欠いています。 回避策は、テキストからフラグメントを作成することで、実際にはHTMLをレンダリングしません: TallComponentsのアプローチ: // NuGet: Install-Package TallComponents.PDF.Kit using TallComponents.PDF.Kit; using System.IO; class Program { static void Main() { // Create a new document using (Document document = new Document()) { string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"; // Create HTML fragment Fragment fragment = Fragment.FromText(html); // Add to document Section section = document.Sections.Add(); section.Fragments.Add(fragment); // Save to file using (FileStream fs = new FileStream("output.pdf", FileMode.Create)) { document.Write(fs); } } } } // NuGet: Install-Package TallComponents.PDF.Kit using TallComponents.PDF.Kit; using System.IO; class Program { static void Main() { // Create a new document using (Document document = new Document()) { string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"; // Create HTML fragment Fragment fragment = Fragment.FromText(html); // Add to document Section section = document.Sections.Add(); section.Fragments.Add(fragment); // Save to file using (FileStream fs = new FileStream("output.pdf", FileMode.Create)) { document.Write(fs); } } } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { // Create a PDF from HTML string var renderer = new ChromePdfRenderer(); string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { // Create a PDF from HTML string var renderer = new ChromePdfRenderer(); string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"; var pdf = renderer.RenderHtmlAsPdf(html); pdf.SaveAs("output.pdf"); } } $vbLabelText $csharpLabel IronPDFのChromePdfRendererは本物のChromiumエンジンを使用しており、HTML5とCSS3を完全にサポートしています。 これは、PDFが最新のブラウザで表示されるように正確にレンダリングされることを意味します。 詳しくはHTML to PDFチュートリアルをご覧ください。 複数のPDFをマージする PDFマージはTallComponentsとIronPDFの冗長性の違いを示しています。 TallComponentsのアプローチ: // NuGet: Install-Package TallComponents.PDF.Kit using TallComponents.PDF.Kit; using System.IO; class Program { static void Main() { // Create output document using (Document outputDoc = new Document()) { // Load first PDF using (FileStream fs1 = new FileStream("document1.pdf", FileMode.Open)) using (Document doc1 = new Document(fs1)) { foreach (Page page in doc1.Pages) { outputDoc.Pages.Add(page.Clone()); } } // Load second PDF using (FileStream fs2 = new FileStream("document2.pdf", FileMode.Open)) using (Document doc2 = new Document(fs2)) { foreach (Page page in doc2.Pages) { outputDoc.Pages.Add(page.Clone()); } } // Save merged document using (FileStream output = new FileStream("merged.pdf", FileMode.Create)) { outputDoc.Write(output); } } } } // NuGet: Install-Package TallComponents.PDF.Kit using TallComponents.PDF.Kit; using System.IO; class Program { static void Main() { // Create output document using (Document outputDoc = new Document()) { // Load first PDF using (FileStream fs1 = new FileStream("document1.pdf", FileMode.Open)) using (Document doc1 = new Document(fs1)) { foreach (Page page in doc1.Pages) { outputDoc.Pages.Add(page.Clone()); } } // Load second PDF using (FileStream fs2 = new FileStream("document2.pdf", FileMode.Open)) using (Document doc2 = new Document(fs2)) { foreach (Page page in doc2.Pages) { outputDoc.Pages.Add(page.Clone()); } } // Save merged document using (FileStream output = new FileStream("merged.pdf", FileMode.Create)) { outputDoc.Write(output); } } } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { // Load PDFs var pdf1 = PdfDocument.FromFile("document1.pdf"); var pdf2 = PdfDocument.FromFile("document2.pdf"); // Merge PDFs var merged = PdfDocument.Merge(pdf1, pdf2); // Save merged document merged.SaveAs("merged.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; class Program { static void Main() { // Load PDFs var pdf1 = PdfDocument.FromFile("document1.pdf"); var pdf2 = PdfDocument.FromFile("document2.pdf"); // Merge PDFs var merged = PdfDocument.Merge(pdf1, pdf2); // Save merged document merged.SaveAs("merged.pdf"); } } $vbLabelText $csharpLabel TallComponentsバージョンでは、手作業によるページの反復と複製が必要です。 IronPdfはこれを単一のPdfDocument.Merge()呼び出しに削減します。 高度なマージシナリオについては、PDFマージドキュメントを参照してください。 透かしの追加 PDFに透かしを入れることで、開発者の経験におけるもう1つの大きな違いが明らかになります。 TallComponentsのアプローチ: // NuGet: Install-Package TallComponents.PDF.Kit using TallComponents.PDF.Kit; using TallComponents.PDF.Layout; using System.IO; using System.Drawing; class Program { static void Main() { // Load existing PDF using (FileStream fs = new FileStream("input.pdf", FileMode.Open)) using (Document document = new Document(fs)) { // Iterate through pages foreach (Page page in document.Pages) { // Create watermark text TextShape watermark = new TextShape(); watermark.Text = "CONFIDENTIAL"; watermark.Font = new Font("Arial", 60); watermark.PenColor = Color.FromArgb(128, 255, 0, 0); watermark.X = 200; watermark.Y = 400; watermark.Rotate = 45; // Add to page page.Overlay.Shapes.Add(watermark); } // Save document using (FileStream output = new FileStream("watermarked.pdf", FileMode.Create)) { document.Write(output); } } } } // NuGet: Install-Package TallComponents.PDF.Kit using TallComponents.PDF.Kit; using TallComponents.PDF.Layout; using System.IO; using System.Drawing; class Program { static void Main() { // Load existing PDF using (FileStream fs = new FileStream("input.pdf", FileMode.Open)) using (Document document = new Document(fs)) { // Iterate through pages foreach (Page page in document.Pages) { // Create watermark text TextShape watermark = new TextShape(); watermark.Text = "CONFIDENTIAL"; watermark.Font = new Font("Arial", 60); watermark.PenColor = Color.FromArgb(128, 255, 0, 0); watermark.X = 200; watermark.Y = 400; watermark.Rotate = 45; // Add to page page.Overlay.Shapes.Add(watermark); } // Save document using (FileStream output = new FileStream("watermarked.pdf", FileMode.Create)) { document.Write(output); } } } } $vbLabelText $csharpLabel IronPDFのアプローチ: // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Editing; class Program { static void Main() { // Load existing PDF var pdf = PdfDocument.FromFile("input.pdf"); // Create watermark var watermark = new TextStamper() { Text = "CONFIDENTIAL", FontSize = 60, Opacity = 50, Rotation = 45, VerticalAlignment = VerticalAlignment.Middle, HorizontalAlignment = HorizontalAlignment.Center }; // Apply watermark to all pages pdf.ApplyStamp(watermark); // Save watermarked PDF pdf.SaveAs("watermarked.pdf"); } } // NuGet: Install-Package IronPdf using IronPdf; using IronPdf.Editing; class Program { static void Main() { // Load existing PDF var pdf = PdfDocument.FromFile("input.pdf"); // Create watermark var watermark = new TextStamper() { Text = "CONFIDENTIAL", FontSize = 60, Opacity = 50, Rotation = 45, VerticalAlignment = VerticalAlignment.Middle, HorizontalAlignment = HorizontalAlignment.Center }; // Apply watermark to all pages pdf.ApplyStamp(watermark); // Save watermarked PDF pdf.SaveAs("watermarked.pdf"); } } $vbLabelText $csharpLabel IronPdfのTextStamperクラスは直感的な配置オプションと自動ページ反復処理を提供します。 スタンプと透かしのガイドでは、その他のカスタマイズオプションについても説明しています。 デジタル署名 文書署名は、企業アプリケーションにとって非常に重要です。 TallComponentsのアプローチ: using TallComponents.PDF.Kit; using TallComponents.PDF.Kit.Signing; Document document = new Document("unsigned.pdf"); // Load certificate X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password"); // Create signature SignatureHandler handler = new SignatureHandler(cert); document.Sign(handler); document.Write("signed.pdf"); using TallComponents.PDF.Kit; using TallComponents.PDF.Kit.Signing; Document document = new Document("unsigned.pdf"); // Load certificate X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password"); // Create signature SignatureHandler handler = new SignatureHandler(cert); document.Sign(handler); document.Write("signed.pdf"); $vbLabelText $csharpLabel IronPDFのアプローチ: using IronPdf; using IronPdf.Signing; var pdf = PdfDocument.FromFile("unsigned.pdf"); // Sign with certificate var signature = new PdfSignature("certificate.pfx", "password") { SigningContact = "support@company.com", SigningLocation = "New York", SigningReason = "Document Approval" }; pdf.Sign(signature); pdf.SaveAs("signed.pdf"); using IronPdf; using IronPdf.Signing; var pdf = PdfDocument.FromFile("unsigned.pdf"); // Sign with certificate var signature = new PdfSignature("certificate.pfx", "password") { SigningContact = "support@company.com", SigningLocation = "New York", SigningReason = "Document Approval" }; pdf.Sign(signature); pdf.SaveAs("signed.pdf"); $vbLabelText $csharpLabel IronPdfの署名APIには、連絡先、場所、署名理由などのメタデータプロパティが追加されています。 完全な実装の詳細については、デジタル署名ドキュメントを参照してください。 機能の比較:TallComponents vs IronPdf フィーチャー トールコンポーネント IronPDF <ステータス 販売終了 ❌ 販売終了 アクティブ サポート ❌ なし フル 更新情報 ❌ なし レギュラー コンテンツ作成 HTMLからPDFへ なし 完全なChromium URLからPDFへ なし はい CSSサポート なし 完全なCSS3 JavaScript なし フルES2024 XMLテンプレート はい 不要 PDFオペレーション PDFのマージ はい はい PDFの分割 はい はい 透かし マニュアル 内蔵 ヘッダー/フッター XMLベース HTML/CSS セキュリティ。 パスワード保護 はい はい デジタル署名 はい はい 暗号化 はい はい PDF/A 制限的 はい 既知の問題 空白ページ ⚠️ 文書化されたバグ なし 不足しているグラフィック ⚠️ 文書化されたバグ なし フォントの問題 ⚠️ 文書化されたバグ なし 開発分野 学習曲線 高(XML) 低レベル(HTML) ドキュメンテーション 古い 広範囲 コミュニティ なし 活発 TallComponents移行チェックリスト マイグレーション前のタスク コードベースを監査して、TallComponents の使用法をすべて特定してください: grep -r "using TallComponents" --include="*.cs" . grep -r "Document\|Section\|TextParagraph" --include="*.cs" . grep -r "using TallComponents" --include="*.cs" . grep -r "Document\|Section\|TextParagraph" --include="*.cs" . SHELL 既存のXMLテンプレートとレイアウトを文書化し、HTMLに変換する。 現在使用されているセキュリティ設定を特定し、パスワード設定とデジタル署名の実装に言及すること。 コード更新タスク 1.NuGet経由でTallComponentsパッケージを削除する 2.IronPdfパッケージをインストールする 3.XMLレイアウトをHTMLテンプレートに変換 4.セクション/パラグラフモデルをHTML要素に置き換える 5.標準的なHTMLテーブルを使用するようにテーブルコードを更新 6.HtmlHeaderFooterでヘッダー/フッターを HTML に変換します。 7.pdf.SecuritySettingsを使用するようにセキュリティ設定を更新してください。 8.起動時のライセンス初期化を追加 ヘッダーとフッターの移行 TallComponentsはXMLベースのヘッダーを使用します。 IronPdfは動的プレースホルダーを持つHTMLベースのヘッダーを提供します: renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center;'>Header Text</div>", MaxHeight = 25 }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center;'>Footer Text</div>", MaxHeight = 25 }; renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center;'>Header Text</div>", MaxHeight = 25 }; renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter() { HtmlFragment = "<div style='text-align:center;'>Footer Text</div>", MaxHeight = 25 }; $vbLabelText $csharpLabel IronPDFのヘッダーとフッターについてはこちらをご覧ください。 テスト段階 1.TallComponentsとIronPDFのビジュアル出力の比較 2.空白ページの問題が解決されていることを確認 3.すべてのドキュメントテンプレートのテスト 4.PDFマージ機能の検証 5.デジタル署名のテスト 6.セキュリティ設定が正しく適用されることを確認する 推奨される移行スケジュール TallComponentsはサポートが終了しているため、早急に移行を進める必要があります: 第1週:コードベースを監査し、すべてのトールコンポーネントの使用状況を特定する 第2週:ドキュメントテンプレートをXMLからHTMLに変換する 第3週:セキュリティ、マージ、コード署名の更新 第4週:テストと本番環境への展開 翻訳が遅れるということは、レンダリングバグが文書化された未サポートのソフトウェアを実行するということであり、2026年に向けてプロの開発チームが受け入れるべきリスクではありません。 主な移行のメリット TallComponentsからIronPDFに移行することで、すぐにメリットが得られます: 最新の Chromium レンダリング エンジン:完全な CSS とJavaScriptのサポートにより、PDF が期待どおりにレンダリングされ、TallComponents に記載されている空白ページやグラフィックの欠落のバグが排除されます。 アクティブなメンテナンスとセキュリティ更新:IronPDFは定期的に更新され、.NET 10 を含む現在のおよび将来の .NET バージョンとの互換性が確保されます。 .NET 統合の改善:ネイティブの async/await サポートと最新の API パターンが、現代の C# 開発プラクティスと一致しています。 包括的なドキュメント:広範なチュートリアルとAPI リファレンスが迅速な実装をサポートします。 カーティス・チャウ 今すぐエンジニアリングチームとチャット テクニカルライター Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。 関連する記事 公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む 公開日 2026年2月1日 C#でScryber.CoreからIronPDFに移行する方法 この完全なC#ガイドでScryber.CoreからIronPDFへの移行をマスターしてください。カスタムXML/HTMLパースから最新のChromiumレンダラーに切り替えます。HTML変換、URLレンダリング、独自のバインディングを置き換えるコード例を含みます。 詳しく読む 公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む C#でTelerik Document ProcessingからIronPDFに移行する方法C#でPDFmyURLからIronPDFへ移行...
公開日 2026年2月1日 C#でZetPDFからIronPDFに移行する方法 この完全なC#ガイドでZetPDFからIronPDFへの移行をマスターしてください。座標ベースのライブラリから最新のHTML-to-PDFソリューションに切り替えます。HTML変換、PDFのマージ、PDFSharpの依存関係の削除のコード例が含まれています。 詳しく読む
公開日 2026年2月1日 C#でScryber.CoreからIronPDFに移行する方法 この完全なC#ガイドでScryber.CoreからIronPDFへの移行をマスターしてください。カスタムXML/HTMLパースから最新のChromiumレンダラーに切り替えます。HTML変換、URLレンダリング、独自のバインディングを置き換えるコード例を含みます。 詳しく読む
公開日 2026年2月1日 C#でXFINIUM.PDFからIronPdfへ移行する方法 この完全なC#ガイドでXFINIUM.PDFからIronPDFへの移行をマスターしてください。座標ベースの手動ポジショニングから宣言的なHTML/CSSレンダリングに切り替えます。グラフィックスプリミティブの置き換えと自動レイアウトのコード例を含みます。 詳しく読む