C#'ta Telerik Belge İşleme'den IronPDF'ye Nasıl Geçilir
Telerik Doküman İşleme, DevCraft paketinin bir parçası olarak, geliştiricilere PDF oluşturma yetenekleri sunarak .NET ekosistemine hizmet etmiştir. Ancak, modern web standartları geliştikçe ve projeler tam CSS3, Flexbox ve Bootstrap desteği talep ettikçe, birçok geliştirme ekibi Telerik'in HTML'den PDF'e dönüştürme mimarisindeki temel sınırlamaları keşfediyor.
Bu kılavuz, gerçek geçiş senaryolarından doğrudan alınmış adım adım talimatlar, kod karşılaştırmaları ve pratik örneklerle, Telerik Document Processing'den IronPDF'e tam bir geçiş yolu sunar.
Telerik Document Processing'den Neden Geçiş Yapmalısınız?
Telerik Document Processing'den geçiş kararı, genellikle modern web içeriği ile çalışırken belirginleşen teknik sınırlardan kaynaklanır. Bu sınırlamaları anlamak, geçiş çabasını haklı çıkarır ve IronPDF'nin çözdüğü konular için beklentileri belirler.
Kritik Teknik Sınırlamalar
Telerik Document Processing, modern HTML ve CSS ile çalışırken temel sorunlara sahiptir:
| Sorun | Etkisi | IronPDF Çözümü |
|---|---|---|
| CSS ayrıştırma sınırlamaları | Bootstrap gibi modern CSS çerçeveleri başarısız | Tam Chromium CSS desteği |
| Div'den paragrafa dönüştürme | HTML yapısı düzleştirilmiş, düzenler bozulur | Dogrudan HTML rendering |
| Akış belge modeli | Ara dönüşüme zorlar | Yerel HTML'den PDF'e |
| Harici CSS sorunları | Karmaşık seçiciler yok sayılır | Tam CSS dosya desteği |
| Bellek sorunları | Büyük belgelerde OutOfMemoryException | Etkili akış |
Temel Sorun: HTML Doğru Şekilde İşlenmiyor
Telerik Document Processing, PDF oluşturmadan önce HTML'yi bir ara "Akış Belgesi" modeline dönüştürür. Bu mimari karar, zincirleme sorunlar yaratır:
- HTML yapısını düzleştirir —
<div>öğeleri paragraflara dönüşür - Modern CSS'i yok sayar — Flexbox ve Grid düzenleri tamamen başarısız olur
- Bootstrap'u bozar — Sütun sistemleri sütun olarak işlenmez
- Biçimlendirmeyi kaybeder — Karmaşık CSS seçiciler göz ardı edilir
Standart CSS düzenleri kullanan bu modern HTML'yi düşünün:
<div class="container">
<div class="row">
<div class="col-md-6">Column 1</div>
<div class="col-md-6">Column 2</div>
</div>
</div>
<div style="display: flex; gap: 20px;">
<div style="flex: 1;">Flex Item 1</div>
<div style="flex: 1;">Flex Item 2</div>
</div>
<div style="display: grid; grid-template-columns: repeat(3, 1fr);">
<div>Grid Item 1</div>
<div>Grid Item 2</div>
<div>Grid Item 3</div>
</div>
<div class="container">
<div class="row">
<div class="col-md-6">Column 1</div>
<div class="col-md-6">Column 2</div>
</div>
</div>
<div style="display: flex; gap: 20px;">
<div style="flex: 1;">Flex Item 1</div>
<div style="flex: 1;">Flex Item 2</div>
</div>
<div style="display: grid; grid-template-columns: repeat(3, 1fr);">
<div>Grid Item 1</div>
<div>Grid Item 2</div>
<div>Grid Item 3</div>
</div>
Telerik Document Processing'de, tüm bu düzenler ardışık paragraflar olarak işlenir. İki sütunlu Bootstrap düzeni iki metin satırı haline gelir. Flexbox öğeleri dikey olarak yığılır. CSS Grid öğeleri ardışık olarak görünür.
Telerik Document Processing'de Başarısız Olan CSS Özellikleri
Geliştiriciler geniş kapsamlı CSS uyumluluk sorunlarını belgelemişlerdir:
/* ❌ These CSS features DON'T WORK inTelerik Belge İşleme*/
/* Flexbox - Desteklenmiyor */
.container { display: flex; }
.item { flex: 1; }
/* CSS Grid - Desteklenmiyor */
.grid { display: grid; grid-template-columns: repeat(3, 1fr); }
/* Bootstrap columns - Converted to paragraphs */
.col-md-6 { /* Ignored, becomes linear text */ }
/* CSS Variables - Desteklenmiyor */
:root { --primary: #007bff; }
.btn { color: var(--primary); }
/* Complex selectors - Often ignored */
.container > .row:first-child { }
.item:hover { }
.content::before { }
/* Modern units - Limited support */
.box { width: calc(100% - 20px); }
.text { font-size: 1.2rem; }
Büyük Belgelerle Performans Sorunları
CSS sınırlamalarının ötesinde,Telerik Belge İşlemebüyük dosyaları işlerken OutOfMemoryException hatalarını belgeledi. Yüksek hacimli belge oluşturma ile çalışan geliştirme ekipleri, diğer kütüphanelerin daha verimli bir şekilde ele alabileceği kararlılık sorunları ile karşılaşmıştır.
IronPDF vs Telerik Document Processing: Özellik Karşılaştırması
Özellik farklarını anlamak, teknik karar alıcıların geçiş yatırımını değerlendirmelerine yardımcı olur:
| Özellik | Telerik Belge İşleme | IronPDF |
|---|---|---|
| HTML İşleme | Akış Belgesi dönüştürme | Doğrudan Chromium render |
| CSS3 Desteği | Sınırlı, birçok özellik başarısız | Tam CSS3 |
| Flexbox | Desteklenmiyor | Desteklenir |
| CSS Grid | Desteklenmiyor | Desteklenir |
| Bootstrap | Bozuk (div düzleme) | Bootstrap 5 dahil olmak üzere desteklenmektedir |
| Harici CSS | Kısmen | Desteklenir |
| JavaScript | Desteklenmiyor | Tam ES2024 desteği |
| Buyuk Belgeler | Bellek sorunları | Etkili akış |
| API Karmaşıklığı | Karmaşık (sağlayıcılar, modeller) | Basit (tek bir sınıf) |
| Lisans Modeli | Ticari, DevCraft'ın parçası | Basit bağımsız lisanslama |
Hızlı Başlangıç Geçişi: İlk PDF'nize 5 Dakikada Ulaşın
Telerik Document Processing'den IronPDF'e geçiş hemen başlayabilir.IronPDFile ilk PDF'nizi oluşturmanın en hızlı yolu burada.
Adım 1: NuGet Paketlerini Güncelleyin
Tüm Telerik belge işleme paketlerini kaldırın:
# Remove Telerik packages
dotnet remove package Telerik.Documents.Core
dotnet remove package Telerik.Documents.Flow
dotnet remove package Telerik.Documents.Flow.FormatProviders.Pdf
dotnet remove package Telerik.Documents.Fixed
# Remove Telerik packages
dotnet remove package Telerik.Documents.Core
dotnet remove package Telerik.Documents.Flow
dotnet remove package Telerik.Documents.Flow.FormatProviders.Pdf
dotnet remove package Telerik.Documents.Fixed
IronPDF'i yükleyin:
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
Adım 2: Kullanım İfadelerini Güncelleyin
Telerik ad alanlarını IronPdf ad alanı ile değiştirin:
// Before (Telerik Document Processing)
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using Telerik.Documents.Primitives;
// After (IronPDF)
using IronPdf;
// Before (Telerik Document Processing)
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using Telerik.Documents.Primitives;
// After (IronPDF)
using IronPdf;
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports Telerik.Documents.Primitives
' After (IronPDF)
Imports IronPdf
Adım 3: Lisans Anahtarını Ekleyin
Uygulama başlangıcında lisansınızı başlatın:
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Adım 4: PDF Oluşturma Kodunuzu Güncelleyin
Telerik Document Processing'den IronPDF'e geçiş, kod tabanınızı önemli ölçüde basitleştirir.
Önceki (Telerik Document Processing):
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(htmlContent);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
byte[] pdfBytes = pdfProvider.Export(document);
File.WriteAllBytes("output.pdf", pdfBytes);
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(htmlContent);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
byte[] pdfBytes = pdfProvider.Export(document);
File.WriteAllBytes("output.pdf", pdfBytes);
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(htmlContent)
Dim pdfProvider As New PdfFormatProvider()
Dim pdfBytes As Byte() = pdfProvider.Export(document)
File.WriteAllBytes("output.pdf", pdfBytes)
Sonra (IronPDF):
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
using IronPdf;
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(htmlContent);
pdf.SaveAs("output.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(htmlContent)
pdf.SaveAs("output.pdf")
Fark hemen belirginleşiyor:IronPDFkodunun 3 satırı,Telerik Belge İşlemekodunun 15+ satırının yerine geçer. Daha da önemlisi,IronPDFsürümü, Telerik'in Akış Belgesi modelinin ele alamadığı modern CSS'i doğru bir şekilde işleyecektir.
Kod Geçiş Örnekleri
HTML'i PDF'ye Dönüştürme
Bu, PDF oluşturma için en yaygın kullanım senaryosudur.Telerik Belge İşlemeveIronPDFarasındaki mimari farklılıklar bu karşılaştırmada netleşir.
Telerik Document Processing Yaklaşımı:
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("output.pdf"))
{
pdfProvider.Export(document, output);
}
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("output.pdf"))
{
pdfProvider.Export(document, output);
}
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports System.IO
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(html)
Dim pdfProvider As New PdfFormatProvider()
Using output As FileStream = File.OpenWrite("output.pdf")
pdfProvider.Export(document, output)
End Using
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
// NuGet: Install-Package IronPdf
using IronPdf;
string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SaveAs("output.pdf");
Imports IronPdf
Dim html As String = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SaveAs("output.pdf")
Telerik sürümü bir HtmlFormatProvider oluşturmayı, bir RadFlowDocument'e ithal etmeyi, bir PdfFormatProvider oluşturmayı ve dosya akışlarını elle yönetmeyi gerektirir. IronPDF'nin ChromePdfRenderer'si tüm süreci tek bir yöntem çağrısıyla yönetir.
Daha ileri HTML'den PDF'e senaryoları için, HTML'den PDF'e dönüştürme kılavuzuna bakın.
URL'leri PDF'ye Dönüştürme
Web sayfalarını PDF olarak yakalamak, kütüphaneler arasındaki diğer önemli bir farkı ortaya çıkarır.
Telerik Document Processing Yaklaşımı:
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
string url = "https://example.com";
using HttpClient client = new HttpClient();
string html = await client.GetStringAsync(url);
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("webpage.pdf"))
{
pdfProvider.Export(document, output);
}
// NuGet: Install-Package Telerik.Documents.Flow
// NuGet: Install-Package Telerik.Documents.Flow.FormatProviders.Pdf
using Telerik.Windows.Documents.Flow.FormatProviders.Html;
using Telerik.Windows.Documents.Flow.FormatProviders.Pdf;
using Telerik.Windows.Documents.Flow.Model;
using System.IO;
using System.Net.Http;
using System.Threading.Tasks;
string url = "https://example.com";
using HttpClient client = new HttpClient();
string html = await client.GetStringAsync(url);
HtmlFormatProvider htmlProvider = new HtmlFormatProvider();
RadFlowDocument document = htmlProvider.Import(html);
PdfFormatProvider pdfProvider = new PdfFormatProvider();
using (FileStream output = File.OpenWrite("webpage.pdf"))
{
pdfProvider.Export(document, output);
}
Imports Telerik.Windows.Documents.Flow.FormatProviders.Html
Imports Telerik.Windows.Documents.Flow.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Flow.Model
Imports System.IO
Imports System.Net.Http
Imports System.Threading.Tasks
Module Module1
Sub Main()
Dim url As String = "https://example.com"
Using client As New HttpClient()
Dim html As String = Await client.GetStringAsync(url)
Dim htmlProvider As New HtmlFormatProvider()
Dim document As RadFlowDocument = htmlProvider.Import(html)
Dim pdfProvider As New PdfFormatProvider()
Using output As FileStream = File.OpenWrite("webpage.pdf")
pdfProvider.Export(document, output)
End Using
End Using
End Sub
End Module
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
string url = "https://example.com";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
// NuGet: Install-Package IronPdf
using IronPdf;
string url = "https://example.com";
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf(url);
pdf.SaveAs("webpage.pdf");
Imports IronPdf
Dim url As String = "https://example.com"
Dim renderer As New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf(url)
pdf.SaveAs("webpage.pdf")
Telerik Document Processing'in yerel URL'den PDF'e dönüştürme yeteneği yoktur. HttpClient kullanarak HTML içeriğini manuel olarak almanız gerekir, bu süreçte dış CSS, JavaScript çalıştırması ve dinamik içerik kaybolur. IronPDF'nin RenderUrlAsPdf yöntemi, tarayıcıda göründüğü gibi tamamen işlenmiş sayfayı yakalar.
Kimlik doğrulama ve özel başlıklar dahil ek seçenekler için URL'den PDF'e belgelerine göz atın.
Birden Fazla PDF'yi Birleştirme
PDF birleştirme, bu .NET PDF kütüphaneleri arasındaki detay farkını gösterir.
Telerik Document Processing Yaklaşımı:
// NuGet: Install-Package Telerik.Documents.Fixed
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
using Telerik.Windows.Documents.Fixed.Model;
using System.IO;
PdfFormatProvider provider = new PdfFormatProvider();
RadFixedDocument document1;
using (FileStream input = File.OpenRead("document1.pdf"))
{
document1 = provider.Import(input);
}
RadFixedDocument document2;
using (FileStream input = File.OpenRead("document2.pdf"))
{
document2 = provider.Import(input);
}
RadFixedDocument mergedDocument = new RadFixedDocument();
foreach (var page in document1.Pages)
{
mergedDocument.Pages.Add(page);
}
foreach (var page in document2.Pages)
{
mergedDocument.Pages.Add(page);
}
using (FileStream output = File.OpenWrite("merged.pdf"))
{
provider.Export(mergedDocument, output);
}
// NuGet: Install-Package Telerik.Documents.Fixed
using Telerik.Windows.Documents.Fixed.FormatProviders.Pdf;
using Telerik.Windows.Documents.Fixed.Model;
using System.IO;
PdfFormatProvider provider = new PdfFormatProvider();
RadFixedDocument document1;
using (FileStream input = File.OpenRead("document1.pdf"))
{
document1 = provider.Import(input);
}
RadFixedDocument document2;
using (FileStream input = File.OpenRead("document2.pdf"))
{
document2 = provider.Import(input);
}
RadFixedDocument mergedDocument = new RadFixedDocument();
foreach (var page in document1.Pages)
{
mergedDocument.Pages.Add(page);
}
foreach (var page in document2.Pages)
{
mergedDocument.Pages.Add(page);
}
using (FileStream output = File.OpenWrite("merged.pdf"))
{
provider.Export(mergedDocument, output);
}
Imports Telerik.Windows.Documents.Fixed.FormatProviders.Pdf
Imports Telerik.Windows.Documents.Fixed.Model
Imports System.IO
Dim provider As New PdfFormatProvider()
Dim document1 As RadFixedDocument
Using input As FileStream = File.OpenRead("document1.pdf")
document1 = provider.Import(input)
End Using
Dim document2 As RadFixedDocument
Using input As FileStream = File.OpenRead("document2.pdf")
document2 = provider.Import(input)
End Using
Dim mergedDocument As New RadFixedDocument()
For Each page In document1.Pages
mergedDocument.Pages.Add(page)
Next
For Each page In document2.Pages
mergedDocument.Pages.Add(page)
Next
Using output As FileStream = File.OpenWrite("merged.pdf")
provider.Export(mergedDocument, output)
End Using
IronPDF Yaklaşımı:
// NuGet: Install-Package IronPdf
using IronPdf;
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;
var pdf1 = PdfDocument.FromFile("document1.pdf");
var pdf2 = PdfDocument.FromFile("document2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
Imports IronPdf
Dim pdf1 = PdfDocument.FromFile("document1.pdf")
Dim pdf2 = PdfDocument.FromFile("document2.pdf")
Dim merged = PdfDocument.Merge(pdf1, pdf2)
merged.SaveAs("merged.pdf")
Telerik versiyonu, her belgiyi ayrı ayrı içe aktarmayı, sayfalar arasında manuel gezinmeyi, bunları yeni bir belgeye eklemeyi ve birden çok dosya akışını yönetmeyi gerektirir. IronPDF'nin PdfDocument.Merge() yöntemi, her şeyi tek bir çağrıda ele alır.
Seçici sayfa çıkarma dahil ileri birleştirme senaryoları için PDF'leri birleştir ve parçala kılavuzuna bakın.
Telerik Belge İşlemeAPI'denIronPDFEşlemeleri
Bu referans tablosu, doğrudan API eşdeğerlerini göstererek geçişi hızlandırır:
| Telerik Belge İşleme | IronPDF |
|---|---|
HtmlFormatProvider |
ChromePdfRenderer |
RadFlowDocument |
Gerekli değil |
PdfFormatProvider |
pdf.SaveAs() |
RadFlowDocumentEditor |
HTML düzenleme |
Section |
HTML <section> |
Paragraph |
HTML <p> |
PdfExportSettings |
RenderingOptions |
RadFixedDocument |
PdfDocument |
| Manuel sayfa iterasyonu | PdfDocument.Merge() |
Başlık ve Altlıkları Ele Alma
Telerik Document Processing başlık ve altlıklar için programatik bir model kullanır.IronPDFdinamik yer tutucular ile HTML tabanlı başlıklar sağlar.
Telerik Document Processing:
section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text");
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text");
section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text");
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text");
section.Headers.Default.Blocks.AddParagraph().Inlines.AddRun("Header Text")
section.Footers.Default.Blocks.AddParagraph().Inlines.AddRun("Footer Text")
IronPDF:
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'in HTML tabanlı yaklaşımı, başlık ve altlıklarda tam CSS stilini, ayrıca sayfa numaraları ve tarihler için dinamik yer tutucular sağlar. Daha fazla bilgi için başlık ve altlık belgelerine bakın.
Birim Dönüşümü: DIPs'ten Milimetreye
Telerik Document Processing ölçümler için cihazdan bağımsız pikseller (DIPs) kullanır.IronPDFise milimetreleri kullanır. Bu, geçiş sırasında dönüştürme gerektirir:
// Telerik uses DIPs (device-independent pixels)
//IronPDFuses millimeters
// 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4; // 1 inch
renderer.RenderingOptions.MarginBottom = 25.4;
// Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
// Telerik uses DIPs (device-independent pixels)
//IronPDFuses millimeters
// 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4; // 1 inch
renderer.RenderingOptions.MarginBottom = 25.4;
// Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11);
' Telerik uses DIPs (device-independent pixels)
' IronPDF uses millimeters
' 1 inch = 25.4mm
renderer.RenderingOptions.MarginTop = 25.4 ' 1 inch
renderer.RenderingOptions.MarginBottom = 25.4
' Or use the helper method for paper size
renderer.RenderingOptions.SetCustomPaperSizeInInches(8.5, 11)
Telerik Belge İşlemeGeçiş Kontrol Listesi
Ön Taşınma Görevleri
Kod tabanınızda, tümTelerik Belge İşlemekullanımını tanımlamak için denetim yapın:
grep -r "using Telerik.Windows.Documents" --include="*.cs" .
grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" .
grep -r "using Telerik.Windows.Documents" --include="*.cs" .
grep -r "RadFlowDocument\|HtmlFormatProvider\|PdfFormatProvider" --include="*.cs" .
Kullanılan format sağlayıcılar, başlık/altlık yapılandırmaları, özel sayfa ayarları ve herhangi bir Akış Belgesi modeli değişiklikleri dahil mevcut uygulamaları belgeler.
Göç Sırasında
- Telerik NuGet paketlerini kaldırın
- IronPdf NuGet paketini kurun
Telerik.Windows.Documents'denIronPdf'a 'using' deyimlerini güncelleyin- Başlangıçta lisans anahtarı başlatma ekleyin
HtmlFormatProvider'iChromePdfRendererile değiştirinRadFlowDocumentara adımları kaldırınPdfFormatProviderihracatları doğrudanSaveAs()çağrılarıyla değiştirin- Üstbilgi/altbilgileri
HtmlHeaderFooterkullanacak şekilde güncelleyin - Sayfa ayarlarını
RenderingOptions'e dönüştürün - Kenar boşluğu birimlerini DIPs'ten milimetrelere güncelleyin
Geçiş Sonrası Doğrulama
Geçişten sonra, bu geliştirmeleri doğrulayın:
- CSS işleme önemli derecede iyileşmiş olmalıdır
- Bootstrap düzenleri doğru şekilde işlenmelidir (Telerik'te işlerlenmez)
- Flexbox ve Grid düzenleri çalışmalıdır (Telerik'te çalışmaz)
- Dinamik içerik için JavaScript çalışmalıdır
- Büyük belge üretimi bellek istisnaları olmadan tamamlanmalıdır
IronPDF'e Geçişin Temel Avantajları
Telerik Document Processing'den IronPDF'e geçiş, anında avantajlar sağlar:
Modern Chromium İşleme Motoru: IronPDF, Google Chrome ile aynı işleme motorunu kullanarak, PDF'lerin modern tarayıcılarda içerik göründüğü gibi işlenmesini sağlar. Bu, Telerik'in Akış Belgesi modelindekinden ibaret olan CSS uyumluluk sorunlarını ortadan kaldırır.
Tam CSS3 ve JavaScript Desteği: Flexbox, Grid, Bootstrap 5, CSS değişkenleri ve modern JavaScript hepsi düzgün çalışır. 2026'ya kadar .NET 10 ve C# 14'ün benimsenmesi arttıkça, IronPDF'in modern işleme motoru, çağdaş web standartlarına uyumluluğu sağlar.
Daha Basit API: Daha az kod satırı, ara belge modelleri yok, ve sezgisel yöntem adları geliştirme süresini ve bakım yükünü azaltır.
Bağımsız Lisanslama: IronPDF, kapsamlı bir paket satın almayı gerektirmeyen, yalnızca PDF yeteneklerine ihtiyaç duyan ekipler için uygun maliyetli bir çözüm sunar.
Aktif Geliştirme: Düzenli güncellemeler, mevcut ve gelecekteki .NET sürümleri, güvenlik yamaları ve özellik iyileştirmeleri ile uyumluluğu sağlar.

