C#'ta TextControl'den IronPDF'ye Nasıl Geçilir
TX Text Control, dahili UI kontrolleri ile sağlam DOCX düzenleme yetenekleri sunarak, .NET ekosisteminde kapsamlı bir belge düzenleyici bileşeni olarak kendini kanıtlamıştır. Ancak, temel gereksinimi tüm belge düzenleme yerine PDF oluşturma olan geliştirme ekipleri için, TextControl'un mimarisi lisans maliyetleri, karmaşıklık ve çalışma zamanı bağımlılıklarında önemli bir yük sunar.
Bu kılavuz, bu geçişi değerlendiren profesyonel .NET geliştiricileri için TextControl'den IronPDF'ye tamamen bir geçiş yolu ile adım adım talimatlar, kod karşılaştırmaları ve pratik örnekler sağlar.
TextControl'den Neden Geçiş Yapılır
TextControl'den geçiş yapma kararı genellikle araçlarınızı gerçek gereksinimlerinize uyarlama etrafında şekillenir. TX Text Control, temel olarak PDF oluşturmayı ikincil bir özellik olarak gören bir belge düzenleyicidir. Geliştirme ekiplerinin geçişi değerlendirme nedenleri şunları içerir:
Pahalı Lisanslama: TextControl, geliştirici başına en az $3,398 yıllık ticari bir lisans üzerinde çalışır. Dört kişilik bir ekip, yıllık yaklaşık $6,749 yatırım yapmayı bekleyebilir ve sunucu dağıtımı çalışma zamanı lisansları için ek maliyetler bulunmaktadır. Yenileme maliyetleri yıllık %40'tır ve güncellemeler için erişimi sürdürmek için zorunludur.
PDF İkincil: Çekirdek mimari kelime işleme, PDF değil. PDF oluşturma mevcut olsa da, bu daha çok ek bir özelliktir ve bu da optimalden daha az çıktı kalitesi ile sonuçlanır.
Donanım Hataları: Intel Iris Xe Graphics hatası, daha yeni Intel işlemcilerde (11. nesil), belge oluşturulmasını etkiler ve çözmek için bir kayıt defteri geçici çözümü gerektirir.
Sisirilmis Bagimliliklar: TextControl, odaginiz sadece PDF uretimi ise ihtiyaçiniz olmayan belge duzenleme UI bileşenlerini icerir.
Belge İşlemi Mimari: Modern web uygulamalarinin talep ettiği HTML-to-PDF is akışları icin optimize edilmemistir.
Karmaşık API: ServerTextControl bağlam yönetimi ve seçimi modeli, doğrudan PDF oluşturma görevleri için gereksiz bir karmaşıklık katıyor.
Maliyet Karşılaştırması
| Bağlam | TX Text Control | IronPDF |
|---|---|---|
| Temel Lisans | $3.398+ | Ciddi oranda daha düşük |
| Yıllık Yenileme | 40% zorunlu | İsteğe bağlı destek |
| Her Geliştirici İçin | Evet | Evet |
| UI Bileşenleri | Paketlenmiş (sisirilmis) | PDF odaklı |
| Toplam 3 Yıllık Maliyet | $5.750+ | Çok daha düşük |
IronPDF ile TextControl: Özellik Karşılaştırması
Mimari farklılıkları anlamak, teknik karar vericilerin geçiş yatırımını değerlendirmesine yardımcı olur:
| Özellik | TX Text Control | IronPDF |
|---|---|---|
| Birincil Odak | DOCX düzenleme | PDF oluşturma |
| Lisans Maliyeti | Her geliştirici için $3.398/yil | Geliştirici başına bir kerelik 749 $ |
| PDF Kalitesi | Temel, ek özellik | Yüksek, çekirdek işlevsellik |
| Donanim Uyumu | Intel Iris ile bilinen sorunlar | Tüm cihazlarda kararlı |
| UI ile Entegrasyon | UI bileşenleri gerek | UI bileşen şişkinliği yok |
| HTML/CSS Rendere | HTML ile hatali | Modern HTML5/CSS3 |
| HTML'den PDF'ye | Evet (ikincil) | Evet (birincil) |
| CSS Desteği | Sınırlı | Tam CSS3 |
| JavaScript | Sınırlı | Tam ES2024 |
| URL'den PDF'ye | Karmaşık kurulum | Yerel |
| Üstbilgi/Altbilgi | Karmaşık API | Basit HTML |
| Mektup Birleştirme | Sahipli | HTML şablonları |
| PDF/A | Evet | Evet |
| Şifre Koruması | Evet | Evet |
| Dijital İmzalar | Evet | Evet |
| PDF'leri birleştir | Sınırlı | Evet |
| PDF'leri Böl | Sınırlı | Evet |
| Bağlam Yönetimi | Gerekli | Gerekli değil |
| Çapraz Platform | Windows odaklı | Evet |
Kisa Başlangic: TextControl'den IronPDF'ye Göç
Geçiş hemen bu temel adımlar ile başlatılabilir.
1. Adım: NuGet Paketlerini Değiştir
Tüm TextControl paketlerini kaldırın:
# Remove TX Text Control
dotnet remove package TXTextControl.TextControl
dotnet remove package TXTextControl.DocumentServer
# Remove TX Text Control
dotnet remove package TXTextControl.TextControl
dotnet remove package TXTextControl.DocumentServer
IronPDF'i yükleyin:
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
Adım 2: Alan Adlarını Güncelle
TextControl ad alanlarını IronPdf ad alanı ile değiştirin:
// Before (TextControl)
using TXTextControl;
using TXTextControl.DocumentServer;
// After (IronPDF)
using IronPdf;
// Before (TextControl)
using TXTextControl;
using TXTextControl.DocumentServer;
// After (IronPDF)
using IronPdf;
Imports TXTextControl
Imports TXTextControl.DocumentServer
' After (IronPDF)
Imports IronPdf
Adım 3: Lisansı Başlat
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"
Kod Geçiş Örnekleri
HTML'i PDF'ye Dönüştürme
En yaygın kullanım durumu, bu .NET PDF kütüphaneleri arasındaki mimari farkı gösterir.
TextControl Yaklaşımı:
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
textControl.Load(html, StreamType.HTMLFormat);
textControl.Save("output.pdf", StreamType.AdobePDF);
}
}
}
}
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
textControl.Load(html, StreamType.HTMLFormat);
textControl.Save("output.pdf", StreamType.AdobePDF);
}
}
}
}
Imports TXTextControl
Imports System.IO
Namespace TextControlExample
Class Program
Shared Sub Main(ByVal args As String())
Using textControl As New ServerTextControl()
textControl.Create()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
textControl.Load(html, StreamType.HTMLFormat)
textControl.Save("output.pdf", StreamType.AdobePDF)
End Using
End Sub
End Class
End Namespace
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
}
}
}
Imports IronPdf
Namespace IronPdfExample
Class Program
Shared Sub Main(ByVal args As String())
Dim renderer = New ChromePdfRenderer()
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
End Sub
End Class
End Namespace
TextControl sürümü, ServerTextControl örneği oluşturmayı, bağlamı başlatmak için Create() çağrısını, HTML'yi StreamType.HTMLFormat ile yüklemeyi ve StreamType.AdobePDF ile kaydetmeyi gerektirir. using bloğu, kaynakların düzgün bir şekilde atılması için zorunludur.
IronPDF, bağlam yönetimini tamamen ortadan kaldırır. ChromePdfRenderer için başlatma töreni gerekmiyor—oluşturun, HTML'yi işleyin ve kaydedin. Bu mimari basitleştirme, bilişsel yükü ve potansiyel kaynak yönetim hatalarını azaltır.
Gelişmiş HTML-PDF senaryoları için HTML'den PDF'e dönüştürme kılavuzuna bakın.
Birden Fazla PDF'yi Birleştirme
PDF birleştirme, bu kutuphaneler arasındaki önemli bir karmaşıklık farkını daha da ortaya koyuyor.
TextControl Yaklaşımı:
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
byte[] pdf1 = File.ReadAllBytes("document1.pdf");
textControl.Load(pdf1, StreamType.AdobePDF);
byte[] pdf2 = File.ReadAllBytes("document2.pdf");
textControl.Load(pdf2, StreamType.AdobePDF, LoadAppendMode.Append);
textControl.Save("merged.pdf", StreamType.AdobePDF);
}
}
}
}
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
byte[] pdf1 = File.ReadAllBytes("document1.pdf");
textControl.Load(pdf1, StreamType.AdobePDF);
byte[] pdf2 = File.ReadAllBytes("document2.pdf");
textControl.Load(pdf2, StreamType.AdobePDF, LoadAppendMode.Append);
textControl.Save("merged.pdf", StreamType.AdobePDF);
}
}
}
}
Imports TXTextControl
Imports System.IO
Namespace TextControlExample
Class Program
Shared Sub Main(ByVal args As String())
Using textControl As New ServerTextControl()
textControl.Create()
Dim pdf1 As Byte() = File.ReadAllBytes("document1.pdf")
textControl.Load(pdf1, StreamType.AdobePDF)
Dim pdf2 As Byte() = File.ReadAllBytes("document2.pdf")
textControl.Load(pdf2, StreamType.AdobePDF, LoadAppendMode.Append)
textControl.Save("merged.pdf", StreamType.AdobePDF)
End Using
End Sub
End Class
End Namespace
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
}
}
}
Imports IronPdf
Namespace IronPdfExample
Class Program
Shared Sub Main(ByVal args As String())
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
End Sub
End Class
End Namespace
TextControl, dosyaları bayt dizilerine okumayı, ServerTextControl bağlamını yönetmeyi ve belgeleri birleştirmek için LoadAppendMode.Append kullanmayı gerektirir. IronPDF'nin PdfDocument.Merge() yöntemi, her şeyi tek, açık bir çağrı ile halleder.
Seçici sayfa çıkarma dahil ileri birleştirme senaryoları için PDF'leri birleştir ve parçala kılavuzuna bakın.
Başlıklar ve Alt Bilgiler Eklemek
Dinamik sayfa numaralı başlıklar ve alt bilgileri, API karmaşıklığı farkını gösterir.
TextControl Yaklaşımı:
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
textControl.Load(html, StreamType.HTMLFormat);
HeaderFooter header = new HeaderFooter(HeaderFooterType.Header);
header.Text = "Document Header";
textControl.Sections[0].HeadersAndFooters.Add(header);
HeaderFooter footer = new HeaderFooter(HeaderFooterType.Footer);
footer.Text = "Page {page} of {numpages}";
textControl.Sections[0].HeadersAndFooters.Add(footer);
textControl.Save("output.pdf", StreamType.AdobePDF);
}
}
}
}
// NuGet: Install-Package TXTextControl.Server
using TXTextControl;
using System.IO;
namespace TextControlExample
{
class Program
{
static void Main(string[] args)
{
using (ServerTextControl textControl = new ServerTextControl())
{
textControl.Create();
string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
textControl.Load(html, StreamType.HTMLFormat);
HeaderFooter header = new HeaderFooter(HeaderFooterType.Header);
header.Text = "Document Header";
textControl.Sections[0].HeadersAndFooters.Add(header);
HeaderFooter footer = new HeaderFooter(HeaderFooterType.Footer);
footer.Text = "Page {page} of {numpages}";
textControl.Sections[0].HeadersAndFooters.Add(footer);
textControl.Save("output.pdf", StreamType.AdobePDF);
}
}
}
}
Imports TXTextControl
Imports System.IO
Namespace TextControlExample
Class Program
Shared Sub Main(ByVal args As String())
Using textControl As New ServerTextControl()
textControl.Create()
Dim html As String = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>"
textControl.Load(html, StreamType.HTMLFormat)
Dim header As New HeaderFooter(HeaderFooterType.Header)
header.Text = "Document Header"
textControl.Sections(0).HeadersAndFooters.Add(header)
Dim footer As New HeaderFooter(HeaderFooterType.Footer)
footer.Text = "Page {page} of {numpages}"
textControl.Sections(0).HeadersAndFooters.Add(footer)
textControl.Save("output.pdf", StreamType.AdobePDF)
End Using
End Sub
End Class
End Namespace
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.AddTextHeader("Document Header");
pdf.AddTextFooter("Page {page} of {total-pages}");
pdf.SaveAs("output.pdf");
}
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
namespace IronPdfExample
{
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
string html = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>";
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.AddTextHeader("Document Header");
pdf.AddTextFooter("Page {page} of {total-pages}");
pdf.SaveAs("output.pdf");
}
}
}
Imports IronPdf
Imports IronPdf.Rendering
Namespace IronPdfExample
Class Program
Shared Sub Main(args As String())
Dim renderer As New ChromePdfRenderer()
Dim html As String = "<html><body><h1>Document Content</h1><p>Main body text.</p></body></html>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.AddTextHeader("Document Header")
pdf.AddTextFooter("Page {page} of {total-pages}")
pdf.SaveAs("output.pdf")
End Sub
End Class
End Namespace
TextControl, belirli HeaderFooterType sabitleriyle HeaderFooter nesneleri oluşturmayı, belge bölümlerine textControl.Sections[0] üzerinden erişmeyi ve HeadersAndFooters koleksiyonuna eklemeyi gerektirir. IronPDF, basit yer tutucu sözdizimi ile doğrudan AddTextHeader ve AddTextFooter yöntemleri sağlar.
Tam stil kontrolüne sahip HTML tabanlı başlıklar için,IronPDFayrıca HtmlHeaderFooter destekler:
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = @"
<div style='width: 100%; text-align: center; font-size: 12pt;'>
Company Report
</div>",
MaxHeight = 30
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = @"
<div style='width: 100%; text-align: right; font-size: 10pt;'>
Page {page} of {total-pages}
</div>",
MaxHeight = 25
};
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
HtmlFragment = @"
<div style='width: 100%; text-align: center; font-size: 12pt;'>
Company Report
</div>",
MaxHeight = 30
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
HtmlFragment = @"
<div style='width: 100%; text-align: right; font-size: 10pt;'>
Page {page} of {total-pages}
</div>",
MaxHeight = 25
};
renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter With {
.HtmlFragment = "
<div style='width: 100%; text-align: center; font-size: 12pt;'>
Company Report
</div>",
.MaxHeight = 30
}
renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter With {
.HtmlFragment = "
<div style='width: 100%; text-align: right; font-size: 10pt;'>
Page {page} of {total-pages}
</div>",
.MaxHeight = 25
}
Başlık ve altlık seçenekleri hakkında daha fazla bilgi için başlık ve altlıklar belgelerine göz atın.
TextControl API'sini IronPDF'ye Eşleme Referansı
Bu eşleme, doğrudan API eşdeğerlerini göstererek geçişi hızlandırır.
| TX Text Control | IronPDF |
|---|---|
ServerTextControl.Create() |
new ChromePdfRenderer() |
tx.Load(html, StreamType.HTMLFormat) |
renderer.RenderHtmlAsPdf(html) |
tx.Load(url, StreamType.HTMLFormat) |
renderer.RenderUrlAsPdf(url) |
tx.Save(path, StreamType.AdobePDF) |
pdf.SaveAs(path) |
SaveSettings.PDFAConformance |
RenderingOptions.PdfAFormat |
DocumentServer.MailMerge |
HTML şablonları + Razor |
DocumentTarget.HeadersAndFooters |
HtmlHeaderFooter |
LoadSettings |
RenderingOptions |
StreamType.AdobePDF |
Varsayılan çıktı |
Yaygın Taşınma Sorunları ve Çözümleri
Sorun 1: ServerTextControl Bağlamı
TextControl, her işlem için Create() ve using bloğu gerektirir.
Çözüm:IronPDFbağlam yönetimi gerektirmez:
// Just create and use
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
// Just create and use
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
' Just create and use
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
Sorun 2: Akış Türü Dönüşümleri
TextControl, farklı formatları yükler ve StreamType sabitleri aracılığıyla PDF'ye dönüştürür.
Çözüm: IronPDF, ara format dönüştürme olmadan HTML rendere eder:
// No format conversion needed
var pdf = renderer.RenderHtmlAsPdf(html);
// No format conversion needed
var pdf = renderer.RenderHtmlAsPdf(html);
Dim pdf = renderer.RenderHtmlAsPdf(html)
Sorun 3: DOCX Şablonları
TextControl mektup birleştirme ile şablonlar için DOCX dosyaları kullanır.
Çözüm: C# dize interpolasyonu veya Razor ile HTML şablonlarına dönüştürün:
var data = new { CustomerName = "John Doe", InvoiceNumber = "12345", Total = "$1,500.00" };
var html = $@"
<html>
<head>
<style>
body {{ font-family: Arial; padding: 40px; }}
h1 {{ color: #333; }}
.total {{ font-size: 24px; color: green; }}
</style>
</head>
<body>
<h1>Invoice #{data.InvoiceNumber}</h1>
<p>Customer: {data.CustomerName}</p>
<p class='total'>Total: {data.Total}</p>
</body>
</html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
var data = new { CustomerName = "John Doe", InvoiceNumber = "12345", Total = "$1,500.00" };
var html = $@"
<html>
<head>
<style>
body {{ font-family: Arial; padding: 40px; }}
h1 {{ color: #333; }}
.total {{ font-size: 24px; color: green; }}
</style>
</head>
<body>
<h1>Invoice #{data.InvoiceNumber}</h1>
<p>Customer: {data.CustomerName}</p>
<p class='total'>Total: {data.Total}</p>
</body>
</html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("invoice.pdf");
Option Strict On
Dim data = New With {Key .CustomerName = "John Doe", Key .InvoiceNumber = "12345", Key .Total = "$1,500.00"}
Dim html = $"
<html>
<head>
<style>
body {{ font-family: Arial; padding: 40px; }}
h1 {{ color: #333; }}
.total {{ font-size: 24px; color: green; }}
</style>
</head>
<body>
<h1>Invoice #{data.InvoiceNumber}</h1>
<p>Customer: {data.CustomerName}</p>
<p class='total'>Total: {data.Total}</p>
</body>
</html>"
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("invoice.pdf")
Sorun 4: Intel Iris Xe Grafik Hatası
TextControl, 11. nesil Intel işlemcili donanımlarla ilgili belgelenmiş şöer hataları sergiliyor ve kayıt defteri çözümleri gerektiriyor.
Çözüm: IronPDF, donanim hizlanma hatalari veya kayıt defteri modifikasyonlari gerektirmeyen Chromium renderlamayi kullanır.
TextControl Göç Kontrol Listesi
Ön Taşınma Görevleri
Kod tabanınızı denetleyin ve tüm TextControl kullanımını belirleyin:
grep -r "using TXTextControl" --include="*.cs" .
grep -r "ServerTextControl\|Load\|Save" --include="*.cs" .
grep -r "using TXTextControl" --include="*.cs" .
grep -r "ServerTextControl\|Load\|Save" --include="*.cs" .
Dönüştürülmek üzere HTML için mektup birleştirme şablonlarını belgeleyin. HtmlHeaderFooter ile uygulama için başlık/altbilgi gereksinimlerine dikkat edin. Alternatif çözümler gerektirebilecek herhangi bir DOCX düzenleme işlevselliğini belirleyin.
Kod Güncelleme Görevleri
- TX TextControl NuGet paketlerini kaldırın
- IronPdf NuGet paketini kurun
ServerTextControlbağlam yönetimini kaldırın (artıkCreate()çağrıları yok)StreamType.HTMLFormatyüklemeleriRenderHtmlAsPdfdönüştürün- String interpolasyonu veya Razor ile HTML şablonlarına mektup birleştirme dönüştürün
- Başlık/altbilgileri
HtmlHeaderFooterveyaAddTextFooterkullanacak şekilde güncelleyin - Sayfa ayarlarını
RenderingOptionskullanarak basitleştirin - Başlangıçta lisans başlatma ekleyin
Taşınım Sonrası Test
Geçiş sonrasında aşağıdaki yönleri doğrulayın:
- Tüm döküman şablonlarının doğru şekilde rendere edildiğini test edin
- GerekirsePDF/Auygunluğunu doğrulayın
- Parola koruma işlevini test edin
- Tüm sayfalarda başlıkların/alt bilgilerin göründüğünü doğrulayın
- Intel 11. nesil donanımda kontrol edin—IronPDF ile artık kayıt defteri çözümlerine gerek yok
IronPDF'e Geçişin Temel Avantajları
TextControl'den IronPDF'ye geçiş yapmak, PDF oluşturma konusunda odaklanmış ekipler için birçok avantaj sağlar:
PDF-İlk Mimarisi: IronPDF, modern HTML5 ve CSS3 standartlarından yararlanarak, özellikle PDF oluşturma için uyarlanmıştır ve sağlam belge oluşturma ve rendere etme yetenekleri sunar.
Maliyet Etkinliği: Zaman içinde önemli ölçüde daha ucuz hale gelen IronPDF'nin tek seferlik fiyatlandırması, özellikle yıllık %40 yenileme zorunluluğu ile TextControl'ün abonelik bazlı hizmetine kıyasla.
Kanıtlanmış İstikrar: Çeşitli donanımlar boyunca belgelenmiş güvenilirlik, TextControl'ün Intel grafiklerle karşılaştığı sorunları önler.
Bağlam Yönetimi Yok: ServerTextControl oluşturma törenini ve kaynak atma desenlerini ortadan kaldırın. IronPDF'nin durumsuz rendere mekanizması, kodu basitleştirir ve potansiyel bellek sızıntılarını azaltır.
Modern Render Motoru: .NET 10 ve C# 14 uyarlamaları 2026'ya kadar artarken, IronPDF'nin Chromium bazlı render yapısı mevcut ve gelecekteki web standartlarıyla uyumluluğu sağlar.

