Altbilgi içeriğine atla
GEçIş KıLAVUZLARı

C#'ta TallComponents'den IronPDF'ye Nasıl Geçilir

27 Mayıs 2025 tarihinde, Apryse TallComponents'i satın aldı. TallPDF.NET ve PDFKit.NET için yeni lisanslar artık sunulmuyor ve Apryse yeni alıcıları iText SDK'ya yönlendiriyor (Apryse'ye de aittir). Mevcut müşteriler destek almaya devam ediyor, ancak motor yalnızca bakım modunda. Hâlâ TallComponents'te olan ekipler için şimdi bir geçiş planlamak, daha sonra zorunlu bir geçişten kaçınmayı sağlar.

Bu kılavuz, TallComponents'ten IronPDF'ye geçiş yolu sağlar, .NET geliştiricilerinin geçişi planlaması için adım adım talimatlar, API eşleştirmeleri ve kod örnekleri içerir.

Neden BirTallComponentsGeçişi Planlamalı?

TallComponents (2001'de kuruldu) iki ana .NET PDF ürünü yayınladı: PDF'leri yüklemek ve manipüle etmek için PDFKit.NET ve belgeleri düzen odaklı olarak oluşturmak için TallPDF.NET. Apryse'nin satın alımının ardından, yeni lisans satışları sona erdi, bu da kütüphaneye bağlı ekipler için planlama ufkunu değiştirir.

BugünküTallComponentsKısıtlamaları

Yeni lisanslara kapalı: Apryse'ninTallComponentssayfası,TallComponentsürünleri için artık yeni lisans sunulmadığını ve yeni alıcıları iText SDK'ya yönlendirdiğini belirtiyor. Mevcut lisans sahipleri desteklenmeye devam ediyor.

Sadece XHTML içerenHTMLhattı: TallPDF.NET, XHTML 1.0 Strict / XHTML 1.1 + CSS 2.1'i ayrıştıran bir XhtmlParagraph sınıfı gönderir. PDFKit.NET kendi başınaHTMLhattı içermez. Modern HTML5 + CSS3 +JavaScriptiçeriği güvenilir bir şekilde görüntülenmez — kutuda başsız tarayıcı motoru yoktur.

Donmuş platform hedefi: TallComponents.PDFKit5 .NET Standard 2.0'ı hedefler; eski TallComponents.PDFKit (4.x) .NET Framework 2.0'ı hedefler. Yayınlanmış .NET 8/9 TFM yoktur.

Yalnızca bakım yol haritası: Apryse'nin geliştirme enerjisi Apryse SDK ve iText üzerinde odaklandıkça,TallComponentsmarkalı paketler bakım güncellemeleri alıyor, ancak yeni özellik yol haritası yok.

IronPDF: Modern BirTallComponentsAlternatifi

IronPDF, bugünkü .NET yığınlarındaTallComponentskullanıcılarını etkileyen temel boşlukları adresler:

Özellik TallComponents IronPDF
Mevcut satış durumu Yeni lisanslara kapalı (Apryse 2025-05-27'de satın aldı) Aktif olarak satılmaktadır
HTML'den PDF desteği XHTML 1.0/1.1 +CSS 2.1kontrolüXhtmlParagraph (TallPDF.NET) Evet (HTML5/CSS3 ile Chromium)
HTML'deJavaScript Hayır Tam ES2024
Kurulum NuGet (TallComponents.PDFKit5, TallComponents.TallPDF5) NuGet (IronPdf)
Müşteri desteği Yalnızca mevcut müşterilere; yeni alıcılar iText'e yönlendiriliyor Aktif destek ve topluluk
Gelecek yatırımlar Yalnızca bakım Uzun vadeli yol haritası

TallComponents, daha önceki bir dönemde .NET belge üretimine kök salmış bir XML/düzen odaklı model kullanırken, IronPDF, ekiplerin bugünkü ön yüz uygulamalarını inşa etme şekline uygun olarak Chromium destekliHTMLoluşturma sağlar.

Hızlı Başlangıç: TallComponents'tan IronPDF'e Geçiş

Adım 1: NuGet Paketlerini Değiştirin

Projenizin referans aldığıTallComponentspaketlerini kaldırın. nuget.org üzerindeki gerçek paket kimlikleri TallComponents.PDFKit5 (veya 4.x için TallComponents.PDFKit) ve TallComponents.TallPDF5 / TallPDF6:

# RemoveTallComponentspackages (whichever your project uses)
dotnet remove package TallComponents.PDFKit5
dotnet remove package TallComponents.TallPDF5
dotnet remove package TallComponents.PDFRasterizer4
# RemoveTallComponentspackages (whichever your project uses)
dotnet remove package TallComponents.PDFKit5
dotnet remove package TallComponents.TallPDF5
dotnet remove package TallComponents.PDFRasterizer4
SHELL

IronPDF'i yükleyin:

dotnet add package IronPdf

Özel çerçeveler için, IronPDF, özel eklenti paketleri sunar:

Blazor Sunucu:

Install-Package IronPdf.Extensions.Blazor

MAUI:

Install-Package IronPdf.Extensions.Maui

MVC Çerçevesi:

Install-Package IronPdf.Extensions.Mvc.Framework

Adım 2: Ad Alanlarını Güncelleyin

TallComponents ad alanlarınıIronPDF ad alanı ile değiştirin:

// 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

Adım 3: Lisansınızı Başlatın

Uygulama başlangıcında lisans başlatmayı ekleyin:

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

TallComponents'tan IronPDF'e API Eşleme Referansı

TallComponents'nin kavramlarının IronPDF ile nasıl eşleştiğini anlamak geçiş sürecini hızlandırır:

TallComponents IronPDF Notlar
Document (TallPDF.NET: düzen) ChromePdfRenderer PDF oluşturma için renderer oluştur
Document (PDFKit.NET: işleme) PdfDocument Mevcut PDF'leri Yükle/Düzenle
Section Otomatik HTMLyapısından türetilen bölümler
TextParagraph HTMLmetin öğeleri Kullan

,

,
, vb.

ImageParagraph etiketi StandartHTMLgörüntüleri
TableParagraph HTML
StandartHTMLtablolar
XhtmlParagraph (XHTML 1.x + CSS 2.1) RenderHtmlAsPdf() (HTML5/CSS3 via Chromium) ModernHTMLçalışır
Font CSS font-family Web yazı tipleri desteklenir
document.Write(...) pdf.SaveAs() / pdf.BinaryData Dosya veya byte[] çıktısı
page.Overlay.Add(shape) pdf.ApplyStamp(stamper) Filigran / bindirme
outputDoc.Pages.Add(page.Clone()) PdfDocument.Merge(...) / pdf.AppendPdf(...) Birden fazla PDF'yi birleştirme
Document.Security = new PasswordSecurity { ... } pdf.SecuritySettings PDF güvenlik yapılandırması
PageLayout RenderingOptions Sayfa ayarları ve kenar boşlukları

Kod Göç Örnekleri

HTML'yi PDF'ye Dönüştürme

TallComponents, HTML'yi yalnızca XHTML 1.0/1.1 + CSS 2.1'i ayrıştıran TallPDF.NET'in XhtmlParagraph aracılığıyla işler. Modern HTML5, CSS3, flexbox, grid veJavaScriptdestekli içerikler o dil grameri dışındadır:

TallComponents Yaklaşımı:

// 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 Yaklaşımı:

// 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'nin ChromePdfRenderer gerçek bir Chromium motoru kullanır ve tam HTML5 ve CSS3 desteği sağlar. Bu, PDF'lerinizin modern bir tarayıcıda görünecekleri şekilde doğru bir şekilde işleneceği anlamına gelir. HTML to PDF öğreticisinde daha fazlasını öğrenin.

Birden Fazla PDF'yi Birleştirme

PDF birleştirme,TallComponentsile IronPDF arasındaki ayrıntılardaki farkı ortaya koyar.

TallComponents Yaklaşımı:

// 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 Yaklaşımı:

// 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 versiyonu, sayfaların manuel yinelemesini ve klonlanmasını gerektirir.IronPDF bunu tek bir PdfDocument.Merge() çağrısına indirir. Gelişmiş birleştirme senaryoları için PDF birleştirme belgelerine bakın.

Filigran Ekleme

PDF'leri marka suyuyla işaretleme, geliştirici deneyimindeki başka bir önemli farkı ortaya koyar.

TallComponents Yaklaşımı:

// 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 Yaklaşımı:

// 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'nin TextStamper sınıfı sezgisel hizalama seçenekleri ve otomatik sayfa yineleme sağlar. Damlama ve marka suyu kılavuzu ek kişiselleştirme seçeneklerini kapsar.

Dijital İmzalar

Belge imzalama, kurumsal uygulamalar için önemlidir.

TallComponents Yaklaşımı:

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 Yaklaşımı:

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'nin imza API'si, iletişim bilgileri, konum ve imzalama nedeni gibi denetim izleri için önemli olan ek meta veri özelliklerini içerir. Tam uygulama detayları için dijital imza belgelerini inceleyin.

Özellik Karşılaştırması:TallComponentsvs IronPDF

Özellik TallComponents IronPDF
Durum Yeni lisanslara kapalı (Apryse 2025-05-27'de satın aldı) Aktif
Destek Sadece mevcut müşteriler için Tam
Güncellemeler Yalnızca bakım Düzenli özellik yayınları
İçerik Oluşturma
HTML'den PDF'ye XHTML 1.0/1.1 +CSS 2.1(XhtmlParagraph) Chromium aracılığıyla Tam HTML5/CSS3
URL'yi PDF'ye çevir Evet XHTML URL'leri için (XhtmlParagraph.Path) Evet
CSS Desteği CSS 2.1 Tam CSS3
JavaScript Hayır Tam ES2024
XML / Düzen DOM Şablonlar Evet (TallPDF.NET) Gerek yok (HTML)
PDF İşlemleri
PDF'leri birleştir Evet (Pages.Add(page.Clone())) Evet (PdfDocument.Merge)
PDF Ayırma Evet Evet
Filigranlar page.Overlay.Add(TextShape) pdf.ApplyStamp(...)
Başlıklar/Altbilgiler Düzen DOM HTML/CSS
Güvenlik
Şifre Koruması Evet (PasswordSecurity) Evet
Dijital İmzalar Evet (SignatureField.Sign) Evet
Şifreleme RC4 / AES-128 / AES-256 AES-128 / AES-256
PDF/A PDF/A-1, PDF/A-2, PDF/A-3 Evet
Platform
Hedef Çerçeveler PDFKit5: .NET Standard 2.0; PDFKit (4.x): .NET Framework 2.0 .NET Framework 4.6.2+, .NET 6/7/8/9
Geliştirme
Öğrenme Eğrisi XML / düzen DOM HTML
Dokümantasyon Satın alma üzerine donmuş; yeni belgeler Apryse / iText'e yönlendiriliyor Bakımı yapılmaktadır
Topluluk Sessiz (yeni satış yok) Aktif

TallComponentsGeçiş Kontrol Listesi

Geçiş Öncesi Görevler

TümTallComponentskullanımını belirlemek için kod tabanınızı inceleyin:

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

Mevcut XML/düzen şablonlarınızı belgelendirin—bu şablonlar HTML'ye dönüştürülecek. Kullanılmakta olan güvenlik ayarlarını belirleyin, parola yapılandırmalarını ve dijital imza uygulamalarını not edin.

Kod Güncelleme Görevleri

1.TallComponentspaketlerini NuGet üzerinden kaldırın 2.IronPDF paketini yükleyin

  1. XHTML / düzen DOM şablonlarını HTML5'e dönüştürün
  2. Bölüm/Paragraf modeliniHTMLöğeleri ile değiştirin
  3. Tablo kodunu standartHTMLtablolarıyla güncelleyin
  4. Üstbilgileri/altbilgileri HtmlHeaderFooter ile HTML'e dönüştürün
  5. Güvenlik ayarlarını pdf.SecuritySettings kullanacak şekilde güncelleyin
  6. Başlangıçta lisans başlatma ekleyin

Başlıklar ve Altbilgiler Geçişi

TallPDF.NET, sayfa üstbilgileri için bir düzen DOM'u (Section.Header / Section.Footer) kullanır. IronPDF, dinamik yer tutucularlaHTMLtabanlı başlıklar sağlar:

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'deki başlıklar ve altbilgiler hakkında daha fazla bilgi edinin.

Test Aşaması

1.TallComponentsve IronPDF versiyonları arasındaki görsel çıktıyı karşılaştırın

  1. Tüm belge şablonlarını test edin
  2. PDF birleştirme işlevselliğini doğrulayın
  3. Dijital imzaları test edin
  4. Güvenlik ayarlarının doğru şekilde uygulandığını doğrulayın

Önerilen Geçiş Takvimi

TallComponents yeni lisanslara kapalı ve yalnızca bakım desteğinde olduğu için, taşıma işlemini kendi temponuzda planlayın, ancak geciktirmeyin:

1. Hafta: Kod tabanını inceleyin ve tümTallComponentskullanımını belirleyin Hafta 2: XHTML / düzen şablonlarını HTML5'e dönüştürün
3. Hafta: Güvenlik, birleştirme ve imzalama kodlarını güncelleyin 4. Hafta: Test ve üretim dağıtımı

Bir yığınTallComponentsüzerinde ne kadar uzun süre kalırsa, mevcut .NET hedeflerinden ve mevcut HTML'den o kadar uzaklaşır.

Lütfen dikkate alınApryse, PDFKit, Tall Components ve iText, ilgili sahiplerinin tescilli markalarıdır. Bu site, Apryse, PDFKit, PDFTron,TallComponentsveya iText Group ile bağlantılı, onaylı veya sponsor bir site değildir. Tüm ürün adları, logolar ve markalar ilgili sahiplerinin mülkiyetindedir. Karşılaştırmalar, yalnızca bilgilendirme amaçlıdır ve yazı sırasında halka açık bilgilerle alakalı olarak yansıtılmaktadır.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara