IRONSOFTWAREHOME
VIDEOLAR

C# İçinde PDF Formları Nasıl Doldurup Düzenleriz | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 Temmuz 2026

TX Text Control, .NET ekosisteminde yerleşmiş bir belge düzenleyici bileşeni olarak, yerleşik kullanıcı arayüzü kontrolleri ile sağlam DOCX düzenleme yetenekleri sunmaktadır. Ancak, birincil gereksinimi tam belge düzenlemeden ziyade PDF üretimi olan geliştirme ekipleri için TextControl'un mimarisi, lisans maliyetleri, karmaşıklık ve çalışma zamanı bağımlılıklarında önemli ek yükler sunar.

Bu kılavuz, TextControl'dan IronPDF'ye tam bir geçiş yolu sunar, adım adım talimatlar, kod karşılaştırmaları ve bu geçişi değerlendiren profesyonel .NET geliştiriciler için pratik örneklerle.

Neden TextControl'dan Geçin

TextControl'dan geçme kararı genellikle araçlarınızı gerçek gereksinimlerinize uyacak şekilde eşleştirmenize dayanır.TX Text Controltemelde bir belge düzenleyici olup, PDF üretimini ikincil bir özellik olarak ele alır. Geliştirme ekiplerinin geçiş düşünmesinin ana nedenleri şunlardır:

Pahalı Lisanslama: Tek birTX Text Control .NET Servergeliştirici lisansı, 4.198 $ süresiz + bir yıl güncelleme/destek; dört geliştiriciden oluşan bir takım lisansı, 8.398 $ süresiz + 1 yıl (textcontrol.com fiyatlandırmasına göre). Yıllık abonelik yenilemeleri liste fiyatının ~%40'ı kadardır (geliştirici başına yılda yaklaşık 1.698 $) ve yenileme penceresi sona erme tarihinden 30 gün sonra kapanır. Üretim dağıtımı ayrıca ayrı sunucu çalışma zamanı lisansları gerektirir.

İkincil PDF Yolu: Ana mimari, bir kelime işleme motorudur (öncelikli olarak DOCX/RTF), ve PDF bir ihraç yolu olarak yer alır, ana işlem değil.

Paketlenmiş Editör Yüzeyi: TX Text Control, yalnızca sunucu tarafı PDF oluşturma gereksinimi olduğunda gereksiz olabilecek DOCX düzenleme UI bileşenleri ile birlikte gelir.

Kelime İşlemci Mimari: HTML ithalatı bir kelime işleme yolundan geçer, bir Chromium tabanlı işleyici yerine, bu yüzden HTML5/CSS3 sadakati genellikle bir tarayıcı motoru PDF kütüphanesinden daha zayıftır.

ASP.NET'deki STA-Bağlılığı: ServerTextControl, kökenleri STA COM tarzı bileşen modeline dayanır ve STA uyumlu iş parçacıklarında en güvenilir çalışır, bu da günümüzün ASP.NET Core yığınlarında async/MTA barındırma işlemlerini karıştırır.

Karmaşık API: ServerTextControl bağlam yönetimi artı ayrı StringStreamType / BinaryStreamType / StreamType enumları ve seçim odaklı belge modeli, doğrudan PDF oluşturma görevleri için ek yük ekler.

Maliyet Karşılaştırması

AspektTX Text Control .NET ServerIronPDF
Tek geliştirici$4,198 süresiz + 1 yıl destekTek seferlik geliştirici başına lisans
4 kişilik ekip$8,398 süresiz + 1 yıl destekDaha düşük oturum başına
Yıllık Yenileme%40 liste fiyatı ($1,698/geliştirici/yıl)İsteğe bağlı destek
Sunucu çalışma zamanıÜretim için ayrı çalışma zamanı lisansı gerekliGerekli değil
UI BileşenleriPaketlenmiş DOCX editör yüzeyiPDF odaklı

##IronPDF ve 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:

ÖzellikTX Text ControlIronPDF
Ana OdakDOCX / kelime işlemePDF oluşturma
Lisans Maliyeti (tek geliştirici)$4,198 süresiz + 1 yıl; ~%40/yıl yenilemeTek seferlik geliştirici başına lisans
PDF OluşturmaBir kelime işleme motorunda ihraç yoluTemel işlevsellik
Sunucu çalışma zamanı lisansıÜretim için gerekliGerekli değil
Çoklu iş parçacığıASP.NET'de STA bağlılığıSTA gereksinimi yok
HTML/CSS RenderlamaKelime işleme yolu üzerinden HTML ithalatıChromium HTML5/CSS3
HTML'den PDF'yeEvet (ikincil)Evet (birincil)
CSS DesteğiSınırlıTam CSS3
JavaScriptSınırlıTam ES2024
URL'yi PDF'ye çevirKarmaşık kurulumYerel
Başlıklar/AltbilgilerKarmaşık APIBasit HTML
Posta BirleştirmeÖzellikliHTML şablonları
PDF/AEvetEvet
Şifre KorumasıEvetEvet
Dijital İmzalarEvetEvet
PDF'leri birleştirSınırlıEvet
PDF AyırmaSınırlıEvet
Bağlam YönetimiGereklidirGerekli değil
Platformlar ArasıWindows odaklıWindows / Linux / macOS / Docker

Hızlı Başlangıç: TextControl'dan IronPDF'ye Geçiş

Geçiş bu öncü adımlarla hemen başlayabilir.

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

TX Text Control'un başsız sunucu çalışma zamanı tek bir genel NuGet paketi olarak dağıtılmamıştır — genel paket TXTextControl.Web (düzenleyici yoldaşı) ve gerçek ServerTextControl çalışma zamanı lisanslı Windows yükleyicisi/MSI veya satıcının özel NuGet beslemesi aracılığıyla gönderilmektedir. Kaldırma genellikle bu yükleyiciyle gönderilen paketlerin yanı sıra TXTextControl.Web'yi ve MSI'yi kaldırmayı içerir.

# RemoveTX Text Controlpackages (names depend on which were installed
# from the licensed installer / private feed / public NuGet)
dotnet remove package TXTextControl.Web

# Then install IronPDF(single self-contained package)
dotnet add package IronPdf
SHELL

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

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

// Before (TextControl)
using TXTextControl;
using TXTextControl.DocumentServer;

// After (IronPDF)
using IronPdf;

Adım 3: Lisansa İzin Verin

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

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Kod Göç Örnekleri

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

En yaygın kullanım senaryosu, 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, StringStreamType.HTMLFormat);
                textControl.Save("output.pdf", StreamType.AdobePDF);
            }
        }
    }
}
C#

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");
        }
    }
}

TextControl sürümü, bir ServerTextControl örneği oluşturmayı, bağlamı başlatmak için Create()'yi çağırmayı, StreamType.HTMLFormat ile HTML yüklemeyi ve StreamType.AdobePDF ile kaydetmeyi gerektirir. using bloğu, uygun kaynak itfası için zorunludur.

IronPDF bağlam yönetimini tamamen kaldırır. ChromePdfRenderer inisiyasyon seremonisi gerektirmez—oluştur, HTML'yi render et ve kaydet. Bu mimari basitleştirme, bilişsel yükü ve potansiyel kaynak yönetimi hatalarını azaltır.

İleri düzey HTML-to-PDF senaryoları için HTML'den PDF'ye dönüşüm rehberine bakın.

Birden Fazla PDF'yi Birleştirme

PDF birleştirilmesi, bu kütüphaneler arasındaki önemli karmaşıklık farklılığını 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, BinaryStreamType.AdobePDF);

                byte[] pdf2 = File.ReadAllBytes("document2.pdf");
                textControl.Append(pdf2, BinaryStreamType.AdobePDF, AppendSettings.StartWithNewSection);

                textControl.Save("merged.pdf", StreamType.AdobePDF);
            }
        }
    }
}
C#

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");
        }
    }
}

TextControl, dosyaları bayt dizilerine okuma, ServerTextControl bağlamının yönetilmesi ve belgeleri birleştirmek için BinaryStreamType.AdobePDF ve AppendSettings.StartWithNewSection ile Append'yi çağırmayı gerektirir. IronPDF'in PdfDocument.Merge() yöntemi, her şeyi tek, açık bir çağrı ile halleder.

Seçici sayfa çıkartma dahil gelişmiş birleştirme senaryoları için birleştirme ve parçalama PDF kılavuzuna bakın.

Başlık ve Alt Bilgi Ekleme

Dinamik sayfa numaralarına sahip başlık ve altlar, 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, StringStreamType.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);
            }
        }
    }
}
C#

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");
        }
    }
}

TextControl, belirli HeaderFooterType enumları ile HeaderFooter nesneleri oluşturmayı, belgenin bölümlerine textControl.Sections[0] ile erişmeyi ve HeadersAndFooters koleksiyonuna eklemeyi gerektirir. IronPDF, basit placeholder sözdizimi ile doğrudan AddTextHeader ve AddTextFooter yöntemleri (TextHeaderFooter aracılığıyla) sağlar.

Tam stil kontrolüyle HTML tabanlı başlıklar için,IronPDF ayrıca HtmlHeaderFooter'i 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
};

Üstbilgi ve altbilgi belgelerine göz atarak üstbilgi ve altbilgi seçenekleri hakkında daha fazla bilgi edinin.

TextControl API to IronPDF Haritalama Referansı

Bu eşleştirme, doğrudan API eşdeğerlerini göstererek geçişi hızlandırır:

TX Text ControlIronPDF
ServerTextControl.Create()new ChromePdfRenderer()
tx.Load(html, StringStreamType.HTMLFormat)renderer.RenderHtmlAsPdf(html)
tx.Load(bytes, BinaryStreamType.AdobePDF)PdfDocument.FromFile(...) / FromBinaryData(...)
tx.Save(path, StreamType.AdobePDF)pdf.SaveAs(path)
tx.Append(bytes, BinaryStreamType.AdobePDF, AppendSettings.StartWithNewSection)PdfDocument.Merge(a, b)
SaveSettings.PDFAConformanceRenderingOptions.PdfAFormat
DocumentServer.MailMergeHTML şablonları + Razor
HeaderFooter + Sections[i].HeadersAndFootersHtmlHeaderFooter / TextHeaderFooter
LoadSettingsRenderingOptions
StreamType.AdobePDFVarsayılan çıktı

Yaygın Göç Sorunları ve Çözümleri

Sorun 1: ServerTextControl Bağlamı

TextControl, her işlem için Create() ve using bloğunu gerektirir.

Çözüm: IronPDF'nin bağlam yönetimi yoktur:

// Just create and use
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);

Sorun 2: StreamType Dönüşümleri

TextControl, farklı formatları yüklemek ve PDF olarak dışa aktarmak için üç farklı enum kullanır — dizi aşırmaları için StringStreamType, bayt[] aşırmaları için BinaryStreamType ve dosya-yolu Kaydet için StreamType.

Çözüm: IronPDF, ara format dönüştürmesi olmadan doğrudan HTML renderlar:

// No format conversion needed
var pdf = renderer.RenderHtmlAsPdf(html);

Sorun 3: DOCX Şablonları

TextControl, posta birleştirme için şablonlar olarak DOCX dosyalarını 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");
C#

Sorun 4: ASP.NET'de STA Bağlılığı

TextControl ServerTextControl geçmişte STA COM tarzı bir bileşen modelini takip eder ve genellikle STA uyumlu iş parçacıklarında barındırıldığında (örneğin klasik Web Formları'nda [ASPCOMPAT] veya ASP.NET Core'da özel bir STA iş parçacığı/kuyrukla çağrılar sarmalanarak) en güvenilir olur. Bunu MTA işçi iş parçacıkları ile serbest bir şekilde karıştırmak, yük altındayken ara sıra iş parçacığı bağlılık hatalarına yol açabilir.

Çözüm: IronPDF'nin STA gereksinimi yoktur ve MTA işçi iş parçacıklarında, asenkron denetleyicilerde ve .NET 6/7/8/9'da Linux konteynerlerinde değiştirilmeden çalışır.

TextControl Geçiş Kontrol Listesi

Geçiş Öncesi Görevler

Tüm TextControl kullanımını tespit etmek için kod tabanınızı denetleyin:

grep -r "using TXTextControl" --include="*.cs" .
grep -r "ServerTextControl\|Load\|Save" --include="*.cs" .
SHELL

HTML'ye dönüştürme için posta birleştirme şablonlarını belgeleyin. Başlık/altbilgi gerekliliklerini HtmlHeaderFooter ile uygulama için not edin. Alternatif çözümler gerektirebilecek herhangi bir DOCX düzenleme işlevselliğini belirleyin.

Kod Güncelleme Görevleri

1.TX Text ControlNuGet paketlerini kaldırın 2.IronPDF NuGet paketini yükleyin 3. ServerTextControl bağlam yönetimini kaldırın (artık Create() çağrıları yok) 4. StringStreamType.HTMLFormat yüklemelerini RenderHtmlAsPdf'ye dönüştürün 5. Posta birleştirmeyi dize interpolasyonu veya Razor ile HTML şablonlarına dönüştürün 6. Başlıklar/altbilgileri HtmlHeaderFooter veya AddTextFooter kullanmak için güncelleyin 7. Sayfa ayarlarını RenderingOptions kullanarak basitleştirin 8. Başlangıçta lisans başlatma ekleyin

Geçiş Sonrası Testler

Geçiş sonrasında bu yönleri doğrulayın:

  • Tüm belge şablonlarının doğru şekilde renderlandığını test edin
  • GerekiyorsaPDF/Auyumluluğunu doğrulayın
  • Parola koruma işlevselliğini test edin
  • Tüm sayfalarda başlıkların/altlıkların göründüğünü doğrulayın
  • MTA işçi iş parçacıklarında ve Linux konteynerlerinde ASP.NET Core'u barındırmayı doğrulayın — IronPDF'nin STA bağlılık gereksinimi yoktur

IronPDF'e Geçmenin Temel Faydaları

TextControl'dan IronPDF'ye geçmek, PDF üretimine odaklanmış ekipler için çeşitli avantajlar sağlar:

PDF-Öncelikli Mimari: IronPDF, PDF oluşturmak için özel olarak tasarlanmıştır, modern HTML5 ve CSS3 standartlarını kullanarak doküman oluşturma ve işleme yetenekleri sunar.

Maliyet Etkinliği: IronPDF'nin tek seferlik geliştirici başına fiyatlandırması,TX Text Control.NET Server'ın 4.198 $ süresiz + 1 yıl giriş seviyesi katmanı ve ~%40/yıl yenileme modeli ile karşılaştırıldığında daha avantajlıdır, özellikle ayrı sunucu çalışma zamanı lisanslaması dikkate alındığında.

STA Bağlılığı Yok: IronPDF, ASP.NET Core'da standart MTA işçi iş parçacıklarında, asenkron denetleyicilerde ve Linux konteynerlerinde, ServerTextControl'ün kendi COM tarzı iş parçacığı modelinden miras aldığı STA uyumlu barındırma durumlarına ihtiyaç duymadan çalışır.

Bağlam Yönetimi Yok: ServerTextControl oluşturma seremonisini ve üç-enumlu (StringStreamType / BinaryStreamType / StreamType) yükleme/kaydetme dansını ortadan kaldırın — ChromePdfRenderer durumsuzdur.

Modern İşleme Motoru: IronPDF'nin Chromium tabanlı işlemesi, kelime işleme motoru HTML ithalat yolundan ziyade mevcut HTML5/CSS3/JavaScript standartlarını hedefler.

Lütfen dikkate alın: Metin Kontrol, ilgili sahibinin tescilli ticari markasıdır. Bu site, Text Control ile bağlantılı değildir, onaylanmamış veya Text Control tarafından desteklenmemektedir. Tüm ürün adları, logolar ve markalar kendi sahiplerine aittir. 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ılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez