フッターコンテンツにスキップ
ビデオ

DockerでIronPDFエンジンを使う方法|IronPDF

2025年5月27日、ApryseがTallComponentsを買収しました。 新しいTallPDF.NETおよびPDFKit.NETのライセンスは提供されなくなり、新しい購買者はApryseが所有するiText SDKにルーティングされます。 既存の顧客はサポートを受け続けますが、エンジンはメンテナンス専用です。 現在TallComponentsで出荷しているチームは、今移行を計画することで、後での強制的な切り替えを避けられます。

このガイドは、TallComponentsからIronPDFへの移行パスを提供し、ステップバイステップの指示、APIマッピング、および.NET開発者が計画する移行のためのコード例を含んでいます。

TallComponents移行計画の理由

TallComponents (2001年創業)は2つの主要な.NET PDF製品を出荷しました:PDFの読み込みと操作のためのPDFKit.NET、およびレイアウト指向のドキュメント生成のためのTallPDF.NETです。 Apryseの買収に伴い、新しいライセンス販売が終了し、ライブラリに依存するチームの計画の展望が変わることになりました。

今日の主なTallComponentsの制限事項

新しいライセンスは閉鎖されました: ApryseのTallComponentsページは、TallComponents製品の新しいライセンスを提供しないことを述べており、新しい購買者をiText SDKに導いています。 既存のライセンス所有者はサポートを受け続けます。

XHTMLのみのHTMLパイプライン: TallPDF.NETは、XhtmlParagraphクラスを搭載しており、XHTML 1.0 Strict / XHTML 1.1 + CSS 2.1を解析します。PDFKit.NET自体にはHTMLパイプラインがありません。最新のHTML5 + CSS3 + JavaScriptのコンテンツは信頼性に欠けるレンダリングです — ヘッドレスブラウザエンジンは組み込まれていません。

固定プラットフォームターゲット: TallComponents.PDFKit5は.NET Standard 2.0をターゲットとしています; 古いTallComponents.PDFKit (4.x)は.NET Framework 2.0をターゲットとしています。.NET 8/9 TFMは公開されていません。

メンテナンスのみのロードマップ: Apryseの開発エネルギーがApryse SDKとiTextに集中しているため、TallComponentsブランドのパッケージはメンテナンス更新を受けるが新機能ロードマップはありません。

IronPDF:最新のTallComponents代替ツール

IronPDFは、最新 for .NETスタックユーザーに影響を及ぼすTallComponentsのコアギャップに対処します。

フィーチャー トールコンポーネント IronPDF
現在の販売状況 新しいライセンスは閉鎖されています(Apryseは2025-05-27に買収しました) アクティブに販売されています
HTMLからPDFのサポート XHTML 1.0/1.1 +CSS 2.1をXhtmlParagraph (TallPDF.NET) を通じて はい(Chromiumを使用したHTML5/CSS3)
HTML for JavaScript なし フルES2024
インストール NuGet (TallComponents.PDFKit5, TallComponents.TallPDF5) NuGet (IronPdf)
顧客サポート 既存の顧客のみ; 新しい購買者はiTextにルーティングされます アクティブなサポートとコミュニティ
将来の投資 メンテナンスのみ 長期ロードマップ

TallComponentsは、旧時代 for .NETドキュメント生成に基づいたXML/レイアウト指向モデルを使用している一方で、IronPDFは、チームが今日のフロントエンドアプリケーションを構築する方法に合わせた、Chromiumを搭載したHTMLレンダリングを提供します。

クイックスタート:TallComponentsからIronPDFへの移行

ステップ 1: NuGet パッケージを置き換える

プロジェクトで参照しているTallComponentsパッケージを削除します。 nuget.org上の実際のパッケージIDはTallComponents.PDFKit5 (または4.xの場合はTallComponents.PDFKit) とTallComponents.TallPDF5 / TallPDF6です。

# Removeトールコンポーネントpackages (whichever your project uses)
dotnet remove package TallComponents.PDFKit5
dotnet remove package TallComponents.TallPDF5
dotnet remove package TallComponents.PDFRasterizer4
# Removeトールコンポーネントpackages (whichever your project uses)
dotnet remove package TallComponents.PDFKit5
dotnet remove package TallComponents.TallPDF5
dotnet remove package TallComponents.PDFRasterizer4
SHELL

IronPDFをインストールします:

dotnet add package IronPdf

特殊なフレームワークのために、IronPDFは専用の拡張パッケージを提供しています:

Blazorサーバー:

Install-Package IronPdf.Extensions.Blazor

MAUI:

Install-Package IronPdf.Extensions.Maui

MVCフレームワーク:

Install-Package IronPdf.Extensions.Mvc.Framework

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

TallComponentsの名前空間をIronPDFの名前空間に置き換えます。

// Before (TallComponents — real namespaces)
using TallComponents.PDF;                    // Document, Page (PDFKit.NET)
using TallComponents.PDF.Shapes;             // TextShape, ImageShape (PDFKit)
using TallComponents.PDF.Security;           // PasswordSecurity
using TallComponents.PDF.Layout;             // Document, Section (TallPDF.NET)
using TallComponents.PDF.Layout.Paragraphs;  // TextParagraph, XhtmlParagraph

// After (IronPDF)
using IronPdf;
// Before (TallComponents — real namespaces)
using TallComponents.PDF;                    // Document, Page (PDFKit.NET)
using TallComponents.PDF.Shapes;             // TextShape, ImageShape (PDFKit)
using TallComponents.PDF.Security;           // PasswordSecurity
using TallComponents.PDF.Layout;             // Document, Section (TallPDF.NET)
using TallComponents.PDF.Layout.Paragraphs;  // TextParagraph, XhtmlParagraph

// After (IronPDF)
using IronPdf;
Imports IronPdf

' Before (TallComponents — real namespaces)
' Imports TallComponents.PDF                    ' Document, Page (PDFKit.NET)
' Imports TallComponents.PDF.Shapes             ' TextShape, ImageShape (PDFKit)
' Imports TallComponents.PDF.Security           ' PasswordSecurity
' Imports TallComponents.PDF.Layout             ' Document, Section (TallPDF.NET)
' Imports TallComponents.PDF.Layout.Paragraphs  ' TextParagraph, XhtmlParagraph

' After (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 (TallPDF.NET: レイアウト) ChromePdfRenderer PDF生成のためのレンダラー作成
Document (PDFKit.NET: 操作) PdfDocument 既存のPDFを読み込み/編集する
Section 自動翻訳 HTML構造から派生したセクション
TextParagraph HTMLテキスト要素 <div>などを使用します。
ImageParagraph <img>タグ 標準的なHTML画像
TableParagraph HTML <table> 標準的なHTMLテーブル
XhtmlParagraph (XHTML 1.x + CSS 2.1) RenderHtmlAsPdf() (HTML5/CSS3をChromiumで使用) 最新のHTMLが機能します
Font CSS font-family 対応ウェブフォント
document.Write(...) pdf.SaveAs() / pdf.BinaryData ファイルまたはバイト[]出力
page.Overlay.Add(shape) pdf.ApplyStamp(stamper) 透かし / オーバーレイ
outputDoc.Pages.Add(page.Clone()) PdfDocument.Merge(...) / pdf.AppendPdf(...) 複数のPDFをマージ
Document.Security = new PasswordSecurity { ... } pdf.SecuritySettings PDFセキュリティ設定
PageLayout RenderingOptions ページ設定と余白

コード移行の例

HTMLを PDF に変換する

TallComponentsは、TallPDF.NETのXhtmlParagraphを通じてHTMLを扱い、XHTML 1.0/1.1 + CSS 2.1のみを解析します。 最新のHTML5、CSS3、フレックスボックス、グリッド、そしてJavaScript駆動のコンテンツは、その文法の範囲外です。

TallComponentsのアプローチ:

// NuGet: Install-Package TallComponents.TallPDF5
// (HTML/XHTML conversion lives in TallPDF.NET, not in PDFKit.NET.)
using TallComponents.PDF.Layout;
using TallComponents.PDF.Layout.Paragraphs;
using System.IO;

class Program
{
    static void Main()
    {
        Document document = new Document();
        Section section = document.Sections.Add();

        // XhtmlParagraph supports XHTML 1.0/1.1 +CSS 2.1only.
        XhtmlParagraph xhtml = new XhtmlParagraph();
        xhtml.Text = "<html><body><h1>Hello World</h1><p>This is a PDF from XHTML.</p></body></html>";
        section.Paragraphs.Add(xhtml);

        using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
        {
            document.Write(fs);
        }
    }
}
// NuGet: Install-Package TallComponents.TallPDF5
// (HTML/XHTML conversion lives in TallPDF.NET, not in PDFKit.NET.)
using TallComponents.PDF.Layout;
using TallComponents.PDF.Layout.Paragraphs;
using System.IO;

class Program
{
    static void Main()
    {
        Document document = new Document();
        Section section = document.Sections.Add();

        // XhtmlParagraph supports XHTML 1.0/1.1 +CSS 2.1only.
        XhtmlParagraph xhtml = new XhtmlParagraph();
        xhtml.Text = "<html><body><h1>Hello World</h1><p>This is a PDF from XHTML.</p></body></html>";
        section.Paragraphs.Add(xhtml);

        using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
        {
            document.Write(fs);
        }
    }
}
Imports TallComponents.PDF.Layout
Imports TallComponents.PDF.Layout.Paragraphs
Imports System.IO

Class Program
    Shared Sub Main()
        Dim document As New Document()
        Dim section As Section = document.Sections.Add()

        ' XhtmlParagraph supports XHTML 1.0/1.1 +CSS 2.1 only.
        Dim xhtml As New XhtmlParagraph()
        xhtml.Text = "<html><body><h1>Hello World</h1><p>This is a PDF from XHTML.</p></body></html>"
        section.Paragraphs.Add(xhtml)

        Using fs As New FileStream("output.pdf", FileMode.Create)
            document.Write(fs)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDFのアプローチ:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        // Create a PDF fromHTMLstring
        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 fromHTMLstring
        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.PDFKit5
using TallComponents.PDF;
using System.IO;

class Program
{
    static void Main()
    {
        // Create target document
        Document outputDoc = new Document();

        // Load first PDF and clone each page into the target
        using (FileStream fs1 = new FileStream("document1.pdf", FileMode.Open, FileAccess.Read))
        {
            Document doc1 = new Document(fs1);
            foreach (Page page in doc1.Pages)
            {
                outputDoc.Pages.Add(page.Clone()); // clone is required across documents
            }
        }

        // Load second PDF and append the whole page collection
        using (FileStream fs2 = new FileStream("document2.pdf", FileMode.Open, FileAccess.Read))
        {
            Document doc2 = new Document(fs2);
            outputDoc.Pages.AddRange(doc2.Pages.CloneToArray());
        }

        // Save merged document
        using (FileStream output = new FileStream("merged.pdf", FileMode.Create))
        {
            outputDoc.Write(output);
        }
    }
}
// NuGet: Install-Package TallComponents.PDFKit5
using TallComponents.PDF;
using System.IO;

class Program
{
    static void Main()
    {
        // Create target document
        Document outputDoc = new Document();

        // Load first PDF and clone each page into the target
        using (FileStream fs1 = new FileStream("document1.pdf", FileMode.Open, FileAccess.Read))
        {
            Document doc1 = new Document(fs1);
            foreach (Page page in doc1.Pages)
            {
                outputDoc.Pages.Add(page.Clone()); // clone is required across documents
            }
        }

        // Load second PDF and append the whole page collection
        using (FileStream fs2 = new FileStream("document2.pdf", FileMode.Open, FileAccess.Read))
        {
            Document doc2 = new Document(fs2);
            outputDoc.Pages.AddRange(doc2.Pages.CloneToArray());
        }

        // Save merged document
        using (FileStream output = new FileStream("merged.pdf", FileMode.Create))
        {
            outputDoc.Write(output);
        }
    }
}
Imports TallComponents.PDF
Imports System.IO

Class Program
    Shared Sub Main()
        ' Create target document
        Dim outputDoc As New Document()

        ' Load first PDF and clone each page into the target
        Using fs1 As New FileStream("document1.pdf", FileMode.Open, FileAccess.Read)
            Dim doc1 As New Document(fs1)
            For Each page As Page In doc1.Pages
                outputDoc.Pages.Add(page.Clone()) ' clone is required across documents
            Next
        End Using

        ' Load second PDF and append the whole page collection
        Using fs2 As New FileStream("document2.pdf", FileMode.Open, FileAccess.Read)
            Dim doc2 As New Document(fs2)
            outputDoc.Pages.AddRange(doc2.Pages.CloneToArray())
        End Using

        ' Save merged document
        Using output As New FileStream("merged.pdf", FileMode.Create)
            outputDoc.Write(output)
        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はこれを単一のPdfDocument.Merge()呼び出しにまで簡略化します。 高度なマージシナリオについては、PDFマージドキュメントを参照してください。

透かしの追加

PDFに透かしを入れることで、開発者の経験におけるもう1つの大きな違いが明らかになります。

TallComponentsのアプローチ:

// NuGet: Install-Package TallComponents.PDFKit5
using TallComponents.PDF;
using TallComponents.PDF.Shapes;
using System.IO;
using System.Drawing;

class Program
{
    static void Main()
    {
        // Load existing PDF
        using (FileStream fs = new FileStream("input.pdf", FileMode.Open, FileAccess.Read))
        {
            Document document = new Document(fs);

            foreach (Page page in document.Pages)
            {
                TextShape watermark = new TextShape();
                watermark.Text = "CONFIDENTIAL";
                watermark.Font = new Font("Arial", 60);
                watermark.Pen = new Pen(Color.FromArgb(128, 255, 0, 0));
                watermark.X = 200;
                watermark.Y = 400;
                // Rotation is applied via a transform on PDFKit.NET
                // (TextShape has no Rotate property in the PDFKit API).
                watermark.Transform = new RotateTransform(45);

                page.Overlay.Add(watermark);
            }

            using (FileStream output = new FileStream("watermarked.pdf", FileMode.Create))
            {
                document.Write(output);
            }
        }
    }
}
// NuGet: Install-Package TallComponents.PDFKit5
using TallComponents.PDF;
using TallComponents.PDF.Shapes;
using System.IO;
using System.Drawing;

class Program
{
    static void Main()
    {
        // Load existing PDF
        using (FileStream fs = new FileStream("input.pdf", FileMode.Open, FileAccess.Read))
        {
            Document document = new Document(fs);

            foreach (Page page in document.Pages)
            {
                TextShape watermark = new TextShape();
                watermark.Text = "CONFIDENTIAL";
                watermark.Font = new Font("Arial", 60);
                watermark.Pen = new Pen(Color.FromArgb(128, 255, 0, 0));
                watermark.X = 200;
                watermark.Y = 400;
                // Rotation is applied via a transform on PDFKit.NET
                // (TextShape has no Rotate property in the PDFKit API).
                watermark.Transform = new RotateTransform(45);

                page.Overlay.Add(watermark);
            }

            using (FileStream output = new FileStream("watermarked.pdf", FileMode.Create))
            {
                document.Write(output);
            }
        }
    }
}
Imports TallComponents.PDF
Imports TallComponents.PDF.Shapes
Imports System.IO
Imports System.Drawing

Class Program
    Shared Sub Main()
        ' Load existing PDF
        Using fs As New FileStream("input.pdf", FileMode.Open, FileAccess.Read)
            Dim document As New Document(fs)

            For Each page As Page In document.Pages
                Dim watermark As New TextShape()
                watermark.Text = "CONFIDENTIAL"
                watermark.Font = New Font("Arial", 60)
                watermark.Pen = New Pen(Color.FromArgb(128, 255, 0, 0))
                watermark.X = 200
                watermark.Y = 400
                ' Rotation is applied via a transform on PDFKit.NET
                ' (TextShape has no Rotate property in the PDFKit API).
                watermark.Transform = New RotateTransform(45)

                page.Overlay.Add(watermark)
            Next

            Using output As New FileStream("watermarked.pdf", FileMode.Create)
                document.Write(output)
            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;
using TallComponents.PDF.Signing;
using System.IO;
using System.Security.Cryptography.X509Certificates;

using (FileStream fs = new FileStream("unsigned.pdf", FileMode.Open, FileAccess.Read))
{
    Document document = new Document(fs);

    X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password");
    SignatureField field = new SignatureField("Signature1");
    field.Sign(cert);
    document.Fields.Add(field);

    using (FileStream output = new FileStream("signed.pdf", FileMode.Create))
    {
        document.Write(output);
    }
}
using TallComponents.PDF;
using TallComponents.PDF.Signing;
using System.IO;
using System.Security.Cryptography.X509Certificates;

using (FileStream fs = new FileStream("unsigned.pdf", FileMode.Open, FileAccess.Read))
{
    Document document = new Document(fs);

    X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password");
    SignatureField field = new SignatureField("Signature1");
    field.Sign(cert);
    document.Fields.Add(field);

    using (FileStream output = new FileStream("signed.pdf", FileMode.Create))
    {
        document.Write(output);
    }
}
Imports TallComponents.PDF
Imports TallComponents.PDF.Signing
Imports System.IO
Imports System.Security.Cryptography.X509Certificates

Using fs As New FileStream("unsigned.pdf", FileMode.Open, FileAccess.Read)
    Dim document As New Document(fs)

    Dim cert As New X509Certificate2("certificate.pfx", "password")
    Dim field As New SignatureField("Signature1")
    field.Sign(cert)
    document.Fields.Add(field)

    Using output As New FileStream("signed.pdf", FileMode.Create)
        document.Write(output)
    End Using
End Using
$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
ステータス 新しいライセンスは閉鎖されています(Apryseは2025-05-27に買収しました) 活発
サポート 既存の顧客のみ フル
更新情報 メンテナンスのみ 定期的な機能リリース
コンテンツ作成
HTMLからPDFへ XHTML 1.0/1.1 +CSS 2.1(XhtmlParagraph) Chromiumを通じた完全なHTML5/CSS3
URLからPDFへ XHTML URLに対応 (XhtmlParagraph.Path) はい
CSSサポート CSS 2.1 完全なCSS3
JavaScript なし フルES2024
XML / レイアウトDOMテンプレート はい (TallPDF.NET) 不必要 (HTML)
PDFオペレーション
PDFのマージ はい (Pages.Add(page.Clone())) はい (PdfDocument.Merge)
PDFの分割 はい はい
透かし page.Overlay.Add(TextShape) pdf.ApplyStamp(...)
ヘッダー/フッター レイアウトDOM HTML/CSS
セキュリティ
パスワード保護 はい (PasswordSecurity) はい
デジタル署名 はい (SignatureField.Sign) はい
暗号化 RC4 / AES-128 / AES-256 AES-128 / AES-256
PDF/A PDF/A-1, PDF/A-2, PDF/A-3 はい
プラットフォーム
ターゲット・フレームワーク PDFKit5: .NET Standard 2.0; PDFKit (4.x): .NET Framework 2.0 .NET Framework 4.6.2+, .NET 6/7/8/9
開発分野
学習曲線 XML / レイアウトDOM HTML
ドキュメンテーション 買収時に凍結; 新しいドキュメントはApryse / iTextにルートされます メンテナンスされています
コミュニティ 静か (新しい販売なし) 活発

TallComponents移行チェックリスト

マイグレーション前のタスク

コードベースを監査して、TallComponents の使用法をすべて特定してください:

grep -r "using TallComponents" --include="*.cs" .
grep -rE "XhtmlParagraph|TextParagraph|PasswordSecurity|page\.Overlay" --include="*.cs" .
grep -r "using TallComponents" --include="*.cs" .
grep -rE "XhtmlParagraph|TextParagraph|PasswordSecurity|page\.Overlay" --include="*.cs" .
SHELL

既存のXML/レイアウトテンプレートを文書化します。これらはHTMLに変換されます。 現在使用されているセキュリティ設定を特定し、パスワード設定とデジタル署名の実装に言及すること。

コード更新タスク

1.NuGet経由でTallComponentsパッケージを削除する

  1. IronPDFパッケージをインストールします
  2. XHTML / レイアウトDOMテンプレートをHTML5に変換します 4.セクション/パラグラフモデルをHTML要素に置き換える 5.標準的なHTMLテーブルを使用するようにテーブルコードを更新
  3. HtmlHeaderFooterを用いてヘッダー/フッターをHTMLに変換します
  4. pdf.SecuritySettingsを使用するようにセキュリティ設定を更新します 8.起動時のライセンス初期化を追加

ヘッダーとフッターの移行

TallPDF.NETはページヘッダー用にレイアウトDOM (Section.Header / Section.Footer) を使用します。 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のビジュアル出力の比較

  1. 全てのドキュメントテンプレートをテストします
  2. PDFマージ機能を検証します
  3. デジタル署名をテストします
  4. セキュリティ設定が正しく適用されていることを確認します

推奨される移行スケジュール

TallComponents は新しいライセンスを締め切り、メンテナンス専用のサポートに移行しているため、移行を自分のペースで計画してください。ただし、滞らないでください。

第1週:コードベースを監査し、すべてのトールコンポーネントの使用状況を特定する
第2週: XHTML / レイアウトテンプレートをHTML5に変換する 第3週:セキュリティ、マージ、コード署名の更新
第4週:テストと本番環境への展開

スタックがTallComponents上に留まるほど、現在 for .NETターゲットや現在のHTMLからさらに離れていきます。

ご注意Apryse, PDFKit, Tall Components、およびiTextは、それぞれの所有者の登録商標です。 このサイトは、Apryse、PDFKit、PDFTron、TallComponents、またはiText Groupと提携しておらず、承認または後援されていません。すべての製品名、ロゴ、およびブランドは、それぞれの所有者の財産です。 比較は情報提供のみを目的としており、執筆時点で公開されている情報を反映しています。

Curtis Chau
テクニカルライター

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

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

アイアンサポートチーム

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