using IronPdf;
// Disable local disk access or cross-origin requests
Installation.EnableWebSecurity = true;
// Instantiate Renderer
var renderer = new ChromePdfRenderer();
// Create a PDF from a HTML string using C#
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
// Export to a file or Stream
pdf.SaveAs("output.pdf");
// Advanced Example with HTML Assets
// Load external html assets: Images, CSS and JavaScript.
// An optional BasePath 'C:\site\assets\' is set as the file location to load assets from
var myAdvancedPdf = renderer.RenderHtmlAsPdf("<img src='icons/iron.png'>", @"C:\site\assets\");
myAdvancedPdf.SaveAs("html-with-assets.pdf");
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ı)
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:
Ö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;
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:
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
XHTML / düzen DOM şablonlarını HTML5'e dönüştürün
Bölüm/Paragraf modeliniHTMLöğeleri ile değiştirin
Tablo kodunu standartHTMLtablolarıyla güncelleyin
Üstbilgileri/altbilgileri HtmlHeaderFooter ile HTML'e dönüştürün
Güvenlik ayarlarını pdf.SecuritySettings kullanacak şekilde güncelleyin
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:
1.TallComponentsve IronPDF versiyonları arasındaki görsel çıktıyı karşılaştırın
Tüm belge şablonlarını test edin
PDF birleştirme işlevselliğini doğrulayın
Dijital imzaları test edin
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, 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ı...