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
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
ステップ 3: ライセンスの初期化
アプリケーション起動時のライセンス初期化を追加します:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
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
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
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
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
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
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
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
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")
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" .
既存のXML/レイアウトテンプレートを文書化します。これらはHTMLに変換されます。 現在使用されているセキュリティ設定を特定し、パスワード設定とデジタル署名の実装に言及すること。
コード更新タスク
1.NuGet経由でTallComponentsパッケージを削除する
- IronPDFパッケージをインストールします
- XHTML / レイアウトDOMテンプレートをHTML5に変換します 4.セクション/パラグラフモデルをHTML要素に置き換える 5.標準的なHTMLテーブルを使用するようにテーブルコードを更新
HtmlHeaderFooterを用いてヘッダー/フッターをHTMLに変換します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
}
IronPDFのヘッダーとフッターについてはこちらをご覧ください。
テスト段階
1.TallComponentsとIronPDFのビジュアル出力の比較
- 全てのドキュメントテンプレートをテストします
- PDFマージ機能を検証します
- デジタル署名をテストします
- セキュリティ設定が正しく適用されていることを確認します
推奨される移行スケジュール
TallComponents は新しいライセンスを締め切り、メンテナンス専用のサポートに移行しているため、移行を自分のペースで計画してください。ただし、滞らないでください。
第1週:コードベースを監査し、すべてのトールコンポーネントの使用状況を特定する
第2週: XHTML / レイアウトテンプレートをHTML5に変換する
第3週:セキュリティ、マージ、コード署名の更新
第4週:テストと本番環境への展開
スタックがTallComponents上に留まるほど、現在 for .NETターゲットや現在のHTMLからさらに離れていきます。

