フッターコンテンツにスキップ
移行ガイド

C#でTallComponentsからIronPDFに移行する方法

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;
Imports IronPdf
$vbLabelText   $csharpLabel

ステップ 3: ライセンスの初期化

アプリケーション起動時のライセンス初期化を追加します:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

TallComponentsからIronPDFへのAPIマッピングリファレンス

TallComponentsのコンセプトがIronPDFにどのようにマッピングされるかを理解することで、移行プロセスが加速されます:

トールコンポーネント IronPDF ノート
Document ChromePdfRenderer PDF生成のためのレンダラー作成
Section 自動翻訳 HTML構造から派生したセクション
TextParagraph HTMLテキスト要素 <div> などを使用します。
ImageParagraph <img> タグ 標準的なHTML画像
TableParagraph HTML <table> 標準的なHTMLテーブル
Font CSS font-family ウェブフォント完全対応
document.Write() pdf.SaveAs() ファイルに保存
document.Write(stream) pdf.BinaryData または pdf.Stream ストリーム出力
Page.Canvas HTML/CSSレンダリング 手作業によるキャンバス操作は不要
XmlDocument.Generate() RenderHtmlAsPdf() HTMLがXMLに代わる
PdfKit.Merger.Merge() PdfDocument.Merge() 複数のPDFをマージ
Document.Security pdf.SecuritySettings PDFセキュリティ設定
PageLayout RenderingOptions ページ設定と余白

コード移行の例

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);
            }
        }
    }
}
Imports TallComponents.PDF.Kit
Imports System.IO

Class Program
    Shared Sub Main()
        ' Create a new document
        Using document As New Document()
            Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"

            ' Create HTML fragment
            Dim fragment As Fragment = Fragment.FromText(html)

            ' Add to document
            Dim section As Section = document.Sections.Add()
            section.Fragments.Add(fragment)

            ' Save to file
            Using fs As New FileStream("output.pdf", FileMode.Create)
                document.Write(fs)
            End Using
        End Using
    End Sub
End Class
$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");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        ' Create a PDF from HTML string
        Dim renderer As New ChromePdfRenderer()
        Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"

        Dim pdf = renderer.RenderHtmlAsPdf(html)
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$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);
            }
        }
    }
}
Imports TallComponents.PDF.Kit
Imports System.IO

Class Program
    Shared Sub Main()
        ' Create output document
        Using outputDoc As New Document()
            ' Load first PDF
            Using fs1 As New FileStream("document1.pdf", FileMode.Open)
                Using doc1 As New Document(fs1)
                    For Each page As Page In doc1.Pages
                        outputDoc.Pages.Add(page.Clone())
                    Next
                End Using
            End Using

            ' Load second PDF
            Using fs2 As New FileStream("document2.pdf", FileMode.Open)
                Using doc2 As New Document(fs2)
                    For Each page As Page In doc2.Pages
                        outputDoc.Pages.Add(page.Clone())
                    Next
                End Using
            End Using

            ' Save merged document
            Using output As New FileStream("merged.pdf", FileMode.Create)
                outputDoc.Write(output)
            End Using
        End Using
    End Sub
End Class
$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");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        ' Load PDFs
        Dim pdf1 = PdfDocument.FromFile("document1.pdf")
        Dim pdf2 = PdfDocument.FromFile("document2.pdf")

        ' Merge PDFs
        Dim merged = PdfDocument.Merge(pdf1, pdf2)

        ' Save merged document
        merged.SaveAs("merged.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

TallComponentsバージョンでは、手作業によるページの反復と複製が必要です。IronPDFはこれを 1 回の 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);
            }
        }
    }
}
Imports TallComponents.PDF.Kit
Imports TallComponents.PDF.Layout
Imports System.IO
Imports System.Drawing

Class Program
    Shared Sub Main()
        ' Load existing PDF
        Using fs As New FileStream("input.pdf", FileMode.Open)
            Using document As New Document(fs)
                ' Iterate through pages
                For Each page As Page In document.Pages
                    ' Create watermark text
                    Dim watermark As 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)
                Next

                ' Save document
                Using output As New FileStream("watermarked.pdf", FileMode.Create)
                    document.Write(output)
                End Using
            End Using
        End Using
    End Sub
End Class
$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");
    }
}
Imports IronPdf
Imports IronPdf.Editing

Class Program
    Shared Sub Main()
        ' Load existing PDF
        Dim pdf = PdfDocument.FromFile("input.pdf")

        ' Create watermark
        Dim watermark = New TextStamper() With {
            .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")
    End Sub
End Class
$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");
Imports TallComponents.PDF.Kit
Imports TallComponents.PDF.Kit.Signing
Imports System.Security.Cryptography.X509Certificates

Dim document As New Document("unsigned.pdf")

' Load certificate
Dim cert As New X509Certificate2("certificate.pfx", "password")

' Create signature
Dim handler As 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");
Imports IronPdf
Imports IronPdf.Signing

Dim pdf = PdfDocument.FromFile("unsigned.pdf")

' Sign with certificate
Dim signature = New PdfSignature("certificate.pfx", "password") With {
    .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テーブルを使用するようにテーブルコードを更新

  1. HtmlHeaderFooter を使用してヘッダー/フッターを HTML に変換します。
  2. セキュリティ設定を更新して、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
};
Imports System

renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
    .HtmlFragment = "<div style='text-align:center;'>Header Text</div>",
    .MaxHeight = 25
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
    .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 を含む現在のおよび将来 for .NETバージョンとの互換性が確保されます。

.NET統合の改善:ネイティブの async/await サポートと最新の API パターンが、現代の C# 開発プラクティスと一致しています。

包括的なドキュメント:広範なチュートリアルAPI リファレンスが迅速な実装をサポートします。

カーティス・チャウ
テクニカルライター

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

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

アイアンサポートチーム

私たちは週5日、24時間オンラインで対応しています。
チャット
メール
電話してね