C#'ta TallComponents'den IronPDF'ye Nasıl Geçilir
Apryse, TallComponents'i satın aldığında, .NET PDF manzarası önemli ölçüde değişti. TallComponents'in yeni lisanslar için artık uygun olmadığı ve mevcut kullanıcıların iText SDK'ye yönlendirildiği bir durumda, TallPDF ve PDFKit kullanan geliştiriciler kaçınılmaz bir karar ile karşı karşıya: şimdi geçiş yapın ya da bilinen render hatalarıyla birlikte desteklenmeyen yazılımları 2026 ve sonrasına taşımayı riske atın.
Bu kılavuz, TallComponents'ten IronPDF'e geçiş için eksiksiz bir yol sunmaktadır, profesyonel .NET geliştiricilerinin verimli bir şekilde geçiş yapmalarına yardımcı olmak için adım adım talimatları, API eşleştirmelerini ve gerçek kod örneklerini içerir.
TallComponentsGeçişi Neden Şimdi Zorunlu
TallComponents bir zamanlar C# PDF oluşturma alanında saygın bir isimdi. Kütüphane, XML tabanlı belge iş akışları ve programatik PDF manipülasyonu sundu. Ancak, Apryse'nin satın alınması, yeni lisans satışlarını sona erdirdi ve bu, geliştirme ekipleri için hesaplamayı kökten değiştirdi.
KritikTallComponentsKısıtlamaları
Geçiş kararı sadece satıcı desteğiyle ilgili değil—TallComponents önemli bir teknik borç taşır:
Ürün Sonlandırma: Apryse satın alınmasından bu yana yeni lisanslar mevcut değil. ResmiTallComponentsweb sitesi, yeni lisans satışlarının sona erdiğini açıkça belirtmekte ve potansiyel kullanıcıları iText SDK'yı kullanmaya yönlendirmektedir.
HTML'den PDF'ye Dönüştürme Desteği Yok: Modern PDF kütüphanelerinden farklı olarak,TallComponentsdoğrudan HTML'den PDF'ye dönüştürmeyi desteklemez. Destek platformundaki geliştiriciler bu sınırlamayı doğrulamış ve alternatif olarak Pechkin gibi üçüncü taraf çözümlerini önermiştir.
Belgelenmiş Render Hataları: Değişiklik günlükleri, boş sayfa render etme, eksik grafikler, güvenilmez JPEG görüntü işleme ve yanlış font görüntüleme dahil olmak üzere geniş çaplı render sorunlarını ortaya koymaktadır. Bu hatalar, sonlandırılmadan önce asla çözülmedi.
Destek veya Güncelleme Yok: Aktif bakım olmadan, herhangi güvenlik açıkları veya .NET 10 ve C# 14 ile uyumluluk sorunları çözümsüz kalacaktır.
IronPDF: Modern BirTallComponentsAlternatifi
IronPDF, modern geliştirme iş akışları için TallComponents'i sorunlu hale getiren temel sınırlamaları ele alır:
| Özellik | TallComponents | IronPDF |
|---|---|---|
| Mevcut Satış Durumu | Yeni Satışlar İçin Durduruldu | Aktif Olarak Geliştiriliyor ve Satılıyor |
| HTML-to-PDF Desteği | Hayır | Evet (HTML5/CSS3 ile Chromium) |
| İşleme Güvenilirliği | Bilinçli Hatalar ve Sorunlar | İspatlanmış Güvenilirlik |
| Kurulum | Karmaşık, Manuel | NuGet ile Basit |
| Müşteri Desteği | iText SDK'ya Geçiş | Aktif Destek ve Topluluk |
| Gelecekteki Kullanılabilirlik | Ömrün Sonu | Uzun Vadeli Yaşanabilirlik |
Karşıtlık belirgin: TallComponents, farklı bir .NET geliştirme çağından XML tabanlı bir yaklaşım sunarken,IronPDFgünümüz geliştiricilerinin uygulamalar oluşturma şekliyle uyumlu olan Chromium destekli HTML renderi sağlar.
Hızlı Başlangıç: TallComponents'ten IronPDF'e Geçiş
1. Adım: NuGet Paketlerini Değiştir
Projenizden tümTallComponentspaketlerini kaldırın:
# RemoveTallComponentspackages
dotnet remove package TallComponents.PDF.Kit
dotnet remove package TallComponents.PDF.Layout
dotnet remove package TallComponents.PDF.Layout.Drawing
# RemoveTallComponentspackages
dotnet remove package TallComponents.PDF.Kit
dotnet remove package TallComponents.PDF.Layout
dotnet remove package TallComponents.PDF.Layout.Drawing
IronPDF'i yükleyin:
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
Özel frameworkler içinIronPDFözel genişletme paketleri sunar:
Blazor Server:
PM > Install-Package IronPdf.Extensions.Blazor
PM > Install-Package IronPdf.Extensions.Blazor
MAUI:
PM > Install-Package IronPdf.Extensions.Maui
PM > Install-Package IronPdf.Extensions.Maui
MVC Framework:
PM > Install-Package IronPdf.Extensions.Mvc.Framework
PM > Install-Package IronPdf.Extensions.Mvc.Framework
Adım 2: Alan Adlarını Güncelle
TallComponents ad alanlarını IronPdf ad alanıyla değiştirin:
// Before (TallComponents)
using TallComponents.PDF.Kit;
using TallComponents.PDF.Layout;
using TallComponents.PDF.Layout.Drawing;
using TallComponents.PDF.Layout.Paragraphs;
// After (IronPDF)
using IronPdf;
// Before (TallComponents)
using TallComponents.PDF.Kit;
using TallComponents.PDF.Layout;
using TallComponents.PDF.Layout.Drawing;
using TallComponents.PDF.Layout.Paragraphs;
// After (IronPDF)
using IronPdf;
Imports IronPdf
Adım 3: Lisansınızı Başlatın
Uygulama başlangıcında lisans başlatmasını ekleyin:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
TallComponents'ten IronPDF'e API Haritalama Referansı
TallComponents konseptlerinin IronPDF'e nasıl eşlendiğini anlamak geçiş sürecini hızlandırır:
| TallComponents | IronPDF | Notlar |
|---|---|---|
Document |
ChromePdfRenderer |
PDF oluşturma için render oluşturun |
Section |
Otomatik | HTML yapısına dayanarak bölümler türetin |
TextParagraph |
HTML metin elemanları | <p>, <h1>, <div>, vb. kullanın |
ImageParagraph |
<img> etiketi |
Standart HTML resimleri |
TableParagraph |
HTML <table> |
Standart HTML tabloları |
Font |
CSS font-family |
Web yazı tipleri tamamen desteklenir |
document.Write() |
pdf.SaveAs() |
Dosya olarak kaydet |
document.Write(stream) |
pdf.BinaryData veya pdf.Stream |
Akış çıkışı |
Page.Canvas |
HTML/CSSolusturma | Manuel tuval manipülasyonu gerekmez |
XmlDocument.Generate() |
RenderHtmlAsPdf() |
HTML, XML'in yerini alır |
PdfKit.Merger.Merge() |
PdfDocument.Merge() |
Birden çok PDF'yi birleştirme |
Document.Security |
pdf.SecuritySettings |
PDF güvenlik yapılandırması |
PageLayout |
RenderingOptions |
Sayfa ayarları ve kenar boşlukları |
Kod Geçiş Örnekleri
HTML'i PDF'ye Dönüştürme
TallComponents'te yerel HTML'den PDF'ye dönüştürme desteği yoktur. Çözüm, aslında HTML render etmeyen metin parçaları oluşturmaktır:
TallComponents Yaklaşımı:
// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using System.IO;
class Program
{
static void Main()
{
// Create a new document
using (Document document = new Document())
{
string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
// Create HTML fragment
Fragment fragment = Fragment.FromText(html);
// Add to document
Section section = document.Sections.Add();
section.Fragments.Add(fragment);
// Save to file
using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
{
document.Write(fs);
}
}
}
}
// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using System.IO;
class Program
{
static void Main()
{
// Create a new document
using (Document document = new Document())
{
string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
// Create HTML fragment
Fragment fragment = Fragment.FromText(html);
// Add to document
Section section = document.Sections.Add();
section.Fragments.Add(fragment);
// Save to file
using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
{
document.Write(fs);
}
}
}
}
Imports TallComponents.PDF.Kit
Imports System.IO
Class Program
Shared Sub Main()
' Create a new document
Using document As New Document()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"
' Create HTML fragment
Dim fragment As Fragment = Fragment.FromText(html)
' Add to document
Dim section As Section = document.Sections.Add()
section.Fragments.Add(fragment)
' Save to file
Using fs As New FileStream("output.pdf", FileMode.Create)
document.Write(fs)
End Using
End Using
End Sub
End Class
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
// Create a PDF from HTML string
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
' Create a PDF from HTML string
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF from HTML.</p></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
IronPDF'in ChromePdfRenderer'i, tam HTML5 ve CSS3 desteği sağlayan gerçek bir Chromium motoru kullanır. Bu, PDF'lerinizin modern bir tarayıcıda görüneceği gibi render ettiği anlamına gelir. HTML'den PDF'e eğitimde daha fazla bilgi edinin.
Birden Fazla PDF'yi Birleştirme
PDF birleştirme,TallComponentsveIronPDFarasındaki geniş değişkenlik farkını gösterir.
TallComponents Yaklaşımı:
// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using System.IO;
class Program
{
static void Main()
{
// Create output document
using (Document outputDoc = new Document())
{
// Load first PDF
using (FileStream fs1 = new FileStream("document1.pdf", FileMode.Open))
using (Document doc1 = new Document(fs1))
{
foreach (Page page in doc1.Pages)
{
outputDoc.Pages.Add(page.Clone());
}
}
// Load second PDF
using (FileStream fs2 = new FileStream("document2.pdf", FileMode.Open))
using (Document doc2 = new Document(fs2))
{
foreach (Page page in doc2.Pages)
{
outputDoc.Pages.Add(page.Clone());
}
}
// Save merged document
using (FileStream output = new FileStream("merged.pdf", FileMode.Create))
{
outputDoc.Write(output);
}
}
}
}
// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using System.IO;
class Program
{
static void Main()
{
// Create output document
using (Document outputDoc = new Document())
{
// Load first PDF
using (FileStream fs1 = new FileStream("document1.pdf", FileMode.Open))
using (Document doc1 = new Document(fs1))
{
foreach (Page page in doc1.Pages)
{
outputDoc.Pages.Add(page.Clone());
}
}
// Load second PDF
using (FileStream fs2 = new FileStream("document2.pdf", FileMode.Open))
using (Document doc2 = new Document(fs2))
{
foreach (Page page in doc2.Pages)
{
outputDoc.Pages.Add(page.Clone());
}
}
// Save merged document
using (FileStream output = new FileStream("merged.pdf", FileMode.Create))
{
outputDoc.Write(output);
}
}
}
}
Imports TallComponents.PDF.Kit
Imports System.IO
Class Program
Shared Sub Main()
' Create output document
Using outputDoc As New Document()
' Load first PDF
Using fs1 As New FileStream("document1.pdf", FileMode.Open)
Using doc1 As New Document(fs1)
For Each page As Page In doc1.Pages
outputDoc.Pages.Add(page.Clone())
Next
End Using
End Using
' Load second PDF
Using fs2 As New FileStream("document2.pdf", FileMode.Open)
Using doc2 As New Document(fs2)
For Each page As Page In doc2.Pages
outputDoc.Pages.Add(page.Clone())
Next
End Using
End Using
' Save merged document
Using output As New FileStream("merged.pdf", FileMode.Create)
outputDoc.Write(output)
End Using
End Using
End Sub
End Class
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
TallComponents sürümü, manuel sayfa yinelemesi ve kopyalama gerektirir. IronPDF, bunu tek bir PdfDocument.Merge() çağrısına indirir. Gelişmiş birleştirme senaryoları için PDF birleştirme dokümantasyonuna bakın.
Filigran Ekleme
PDF'lere filigran eklemek, geliştirici deneyiminde başka bir önemli fark ortaya koyar.
TallComponents Yaklaşımı:
// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using TallComponents.PDF.Layout;
using System.IO;
using System.Drawing;
class Program
{
static void Main()
{
// Load existing PDF
using (FileStream fs = new FileStream("input.pdf", FileMode.Open))
using (Document document = new Document(fs))
{
// Iterate through pages
foreach (Page page in document.Pages)
{
// Create watermark text
TextShape watermark = new TextShape();
watermark.Text = "CONFIDENTIAL";
watermark.Font = new Font("Arial", 60);
watermark.PenColor = Color.FromArgb(128, 255, 0, 0);
watermark.X = 200;
watermark.Y = 400;
watermark.Rotate = 45;
// Add to page
page.Overlay.Shapes.Add(watermark);
}
// Save document
using (FileStream output = new FileStream("watermarked.pdf", FileMode.Create))
{
document.Write(output);
}
}
}
}
// NuGet: Install-Package TallComponents.PDF.Kit
using TallComponents.PDF.Kit;
using TallComponents.PDF.Layout;
using System.IO;
using System.Drawing;
class Program
{
static void Main()
{
// Load existing PDF
using (FileStream fs = new FileStream("input.pdf", FileMode.Open))
using (Document document = new Document(fs))
{
// Iterate through pages
foreach (Page page in document.Pages)
{
// Create watermark text
TextShape watermark = new TextShape();
watermark.Text = "CONFIDENTIAL";
watermark.Font = new Font("Arial", 60);
watermark.PenColor = Color.FromArgb(128, 255, 0, 0);
watermark.X = 200;
watermark.Y = 400;
watermark.Rotate = 45;
// Add to page
page.Overlay.Shapes.Add(watermark);
}
// Save document
using (FileStream output = new FileStream("watermarked.pdf", FileMode.Create))
{
document.Write(output);
}
}
}
}
Imports TallComponents.PDF.Kit
Imports TallComponents.PDF.Layout
Imports System.IO
Imports System.Drawing
Class Program
Shared Sub Main()
' Load existing PDF
Using fs As New FileStream("input.pdf", FileMode.Open)
Using document As New Document(fs)
' Iterate through pages
For Each page As Page In document.Pages
' Create watermark text
Dim watermark As New TextShape()
watermark.Text = "CONFIDENTIAL"
watermark.Font = New Font("Arial", 60)
watermark.PenColor = Color.FromArgb(128, 255, 0, 0)
watermark.X = 200
watermark.Y = 400
watermark.Rotate = 45
' Add to page
page.Overlay.Shapes.Add(watermark)
Next
' Save document
Using output As New FileStream("watermarked.pdf", FileMode.Create)
document.Write(output)
End Using
End Using
End Using
End Sub
End Class
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
IronPDF'in TextStamper sınıfı sezgisel hizalama seçenekleri ve otomatik sayfa yinelemesi sağlar. Damgalama ve filigranlar rehberi ek özelleştirme seçeneklerini kapsar.
Dijital İmzalar
Belgelerin imzalanması, kurumsal uygulamalar için kritiktir.
TallComponents Yaklaşımı:
using TallComponents.PDF.Kit;
using TallComponents.PDF.Kit.Signing;
Document document = new Document("unsigned.pdf");
// Load certificate
X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password");
// Create signature
SignatureHandler handler = new SignatureHandler(cert);
document.Sign(handler);
document.Write("signed.pdf");
using TallComponents.PDF.Kit;
using TallComponents.PDF.Kit.Signing;
Document document = new Document("unsigned.pdf");
// Load certificate
X509Certificate2 cert = new X509Certificate2("certificate.pfx", "password");
// Create signature
SignatureHandler handler = new SignatureHandler(cert);
document.Sign(handler);
document.Write("signed.pdf");
Imports TallComponents.PDF.Kit
Imports TallComponents.PDF.Kit.Signing
Imports System.Security.Cryptography.X509Certificates
Dim document As New Document("unsigned.pdf")
' Load certificate
Dim cert As New X509Certificate2("certificate.pfx", "password")
' Create signature
Dim handler As New SignatureHandler(cert)
document.Sign(handler)
document.Write("signed.pdf")
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")
IronPDF'nin imza API'si, iletişim bilgileri, yer ve imzalama nedeni için ek meta veri özellikleri içerir— denetim izleri için önemlidir. Tam uygulama detayları için dijital imza dokümantasyonunu keşfedin.
Özellik Karşılaştırması:TallComponentsvs IronPDF
| Özellik | TallComponents | IronPDF | |||
|---|---|---|---|---|---|
| Durum | ❌ SONLANDIRILDI | ✅ Aktif | |||
| Destek | ❌ Hiçbiri | ✅ Tam | |||
| Güncellemeler | ❌ Hiçbiri | ✅ Düzenli | |||
| :İçerik Oluşturma: | HTML'den PDF'ye | Hayır | Tam Chromium | ||
| URL'den PDF'ye | Hayır | Evet | |||
| CSS Desteği | Hayır | Tam CSS3 | |||
| JavaScript | Hayır | Tam ES2024 | |||
| XML Şablonları | Evet | Gerekli değil | |||
| :PDF İşlemleri: | PDF'leri birleştir | Evet | Evet | ||
| PDF'leri Böl | Evet | Evet | |||
| Filigranlar | El ile | Yerleşik | |||
| Üstbilgi/Altbilgi | XML tabanlı | HTML/CSS | |||
| :Güvenlik: | Şifre Koruması | Evet | Evet | ||
| Dijital İmzalar | Evet | Evet | |||
| Şifreleme | Evet | Evet | |||
| PDF/A | Sınırlı | Evet | |||
| :Bilinen Sorunlar: | Boş Sayfalar | ⚠️ Belgelenmiş hata | None | ||
| Eksik Grafikler | ⚠️ Belgelenmiş hata | None | |||
| Yazı Tipi Sorunları | ⚠️ Belgelenmiş hata | None | |||
| :Geliştirme: | Öğrenme Eğrisi | Yüksek (XML) | Düşük (HTML) | ||
| Dokümantasyon | Eski | Geniş kapsamlı | |||
| Topluluk | None | Aktif |
TallComponents Geçiş Kontrol Listesi
Ön Taşınma Görevleri
Kod tabanınızı denetleyerek tümTallComponentskullanımlarını belirleyin:
grep -r "using TallComponents" --include="*.cs" .
grep -r "Document\|Section\|TextParagraph" --include="*.cs" .
grep -r "using TallComponents" --include="*.cs" .
grep -r "Document\|Section\|TextParagraph" --include="*.cs" .
Mevcut XML şablonlarını ve düzenlerini belgeleyin— bunlar HTML'ye dönüştürülecek. Halihazırda kullanılan 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 ile kaldırın
- IronPdf paketini yükleyin
- XML düzenlerini HTML şablonlarına dönüştürün
- Bölüm/Paragraf modelini HTML öğeleriyle değiştirin
- Tablo kodunu standart HTML tabloları kullanacak şekilde güncelleyin
- Üstbilgi/altbilgileri
HtmlHeaderFooterile HTML'ye dönüştürün - Güvenlik ayarlarını
pdf.SecuritySettingskullanarak güncelleyin - Başlangıçta lisans başlatma ekleyin
Başlıklar ve Altbilgiler Geçişi
TallComponents XML tabanlı başlıklar kullanır.IronPDFdinamik yer tutucularla HTML tabanlı 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
}
IronPDF'de başlıklar ve altbilgiler hakkında daha fazla bilgi edinin.
Test Aşaması
1.TallComponentsveIronPDFsürümleri arasında görsel çıktıyı karşılaştırın
- Boş sayfa sorunlarının çözüldüğünü doğrulayı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ı onaylayın
Önerilen Geçiş Zaman Çizelgesi
Hiç destek olmadanTallComponentssona erdiği için, geçişin acilen ilerlemesi gerekmektedir:
Hafta 1: Kod tabanınızı denetleyin ve tümTallComponentskullanımlarını belirleyin Hafta 2: Belge şablonlarını XML'den HTML'ye dönüştürün Hafta 3: Güvenlik, birleştirme ve imzalama kodlarını güncelleyin Hafta 4: Test etme ve üretim dağıtımı
Ertelemek, belgelenmiş render hatalarıyla desteklenmeyen yazılım çalıştırmak anlamına gelir—hiçbir profesyonel geliştirme ekibinin 2026'ya girerken kabul etmemesi gereken bir risk.
Ana Geçiş Faydaları
TallComponents'ten IronPDF'e geçiş, hemen avantajlar sağlar:
Modern Chromium Render Motoru: Tam CSS veJavaScriptdesteği, TallComponents'te belgelenen boş sayfa ve eksik grafik hatalarını ortadan kaldırarak PDF'lerin beklendiği gibi render edilmesini sağlar.
Aktif Bakım ve Güvenlik Güncellemeleri:IronPDFdüzenli güncellemeler alarak, .NET 10 dahil olmak üzere güncel ve gelecekteki .NET sürümleriyle uyumluluğu sağlar.
Daha İyi .NET Entegrasyonu: Yerel async/await desteği ve modern API kalıpları, modern C# geliştirme uygulamaları ile uyumludur.
Kapsamlı Dökümantasyon: Kapsamlı eğitimler ve API referansları hızlı uygulamayı destekler.

