Altbilgi içeriğine atla
GEçIş KıLAVUZLARı

C#'ta Telerik Reporting'den IronPDF'ye Nasıl Geçilir

Telerik Reporting, etkileşimli raporlar ile görsel tasarımcılar ve derinlemesine inceleme yetenekleri için güçlü bir kurumsal raporlama platformudur ve .NET geliştiricilere iyi hizmet etmiştir. Ancak, birincil ihtiyaçları PDF üretimi olan ekipler için,Telerik Reportinggenellikle lisanslama maliyetlerinde, dağıtım karmaşıklığında ve çalışma zamanı yükünde önemli bir genel temsil eder.

Bu kılavuz, profesyonel .NET geliştiricilerinin bu geçişi değerlendirirken adım adım yönergeler, kod karşılaştırmaları ve pratik örneklerle birlikte Telerik Reporting'den IronPDF'ye eksiksiz bir geçiş yolu sağlar.

Neden Telerik Reporting'ten Geçilmelidir

Telerik Reporting'ten geçiş kararı genellikle araçlarınızı gerçek gereksinimlerinize uyacak şekilde eşleştirmeye odaklanır. Geliştirme ekiplerinin geçiş düşünmesinin ana nedenleri şunlardır:

Geliştirici Başına Lisanslama: Bağımsız Telerik Raporlama, geliştirici başına ~685 $'dan başlar ve daha geniş DevCraft Complete paketi ~1.763 $'dan başlar (2026 Q1, ComponentSource). Her ikisi de süresiz + 1 yıl bakım veya yıllık abonelik olarak satılır. Yalnızca PDF üretimi ihtiyacı olan ekipler için, bu önemli kullanılmayan yetenekleri temsil eder.

Rapor Tasarımcısı Bağımlılığı: Telerik Raporlama, Standalone, Web veya Visual Studio ile entegre tasarımcıya ve özel Telerik NuGet deposundan (https://nuget.telerik.com/v3/index.json, lisans anahtarı gereklidir) derlenen çalışma zamanı derlemelerine ihtiyaç duyar. Bu, geliştirme ortamlarına ve CI/CD boru hatlarına karmaşıklık ekler.

Karmaşık Altyapı: HTML5 görüntüleyici senaryoları için ayrıca bir Raporlama REST Servisi (Telerik.Reporting.Services.AspNetCore) barındırırsınız ve depolama, çözümleyici ve görüntüleyici betik yapılandırması ile düz PDF oluşturma görevleri için bakım yükü ekleyen bir altyapı oluşturursunuz.

Özel Format: .trdp ve .trdx XML rapor tanımları (Telerik'in kendine özgü formatı - RDL/RDLC desteklenmemektedir) sizi Telerik ekosistemine kilitler. Şablonları geçirmek veya değiştirmek Telerik araçlarını gerektirir.

Ağır Çalışma Zamanı: Basit HTML'den PDF'ye dönüşüm için büyük dağıtım izleri ve ayrıca DOCX/XLSX/PPTX/XPS için isteğe bağlı işleme DLL'leri.

Yenilenebilir Bakım: Süresiz bir lisansa bile güncellemeler, düzeltmeler ve destek almaya devam etmek için bakım aboneliğinin yenilenmesi gerekir.

Telerik Reporting Aşırı Olduğunda

Temelde veri üzeri PDF üretmek içinTelerik Reportingkullanıyorsanız, muhtemelen kullanılmayan özellikler için ödeme yapıyorsunuz:

İhtiyacınız Var Telerik Sağlar (Kullanılmayan)
HTML'den PDF Görsel tasarımcı, derinlemesine inceleme
Basit raporlar Etkileşimli görüntüleyici, dışa aktarmalar
Sunucu tarafı PDF'ler Masaüstü kontrolleri, grafik motoru

IronPDF, kurumsal raporlama yükü olmadan odaklanmış PDF üretimi sağlar.

IronPDF vs Telerik Reporting: Ö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 Telerik Reporting IronPDF
Odak PDF dışa aktarma seçeneğiyle rapor oluşturma HTML'den kapsamlı PDF üretimi
Entegrasyon ASP.NET Core uygulamalarıyla sorunsuz Herhangi bir .NET uygulamasına entegre edilebilir
Kurulum Karmaşıklığı Bir rapor tasarımcısının kurulumunu gerektirir Basit NuGet kurulumu
Fiyatlandırma DevCraft ticari paketinin bir parçası Ayrı lisanslama, bağımsız PDF oluşturma için daha maliyet etkilidir
PDF Oluşturma Rapor dışa aktarımlarıyla sınırlıdır Gelişmiş PDF manipülasyonu ile tam özellikler
Hedef Kitle Rapor odaklı çözümler arayan geliştiriciler Esnek PDF oluşturma çözümleri arayan geliştiriciler
Şablon Formatı .trdp / .trdx (XML; RDL/RDLC değil) HTML/CSS/Razor
Öğrenme Eğrisi Telerik'e özgü (ifade dili, bölümler) Standart web teknolojileri
HTML'den PDF'ye Sunucu tarafında HtmlTextBox (sınırlı HTML/CSS) Tam Chromium render
URL'den PDF'ye Yerleşik değil (HTML'i kendiniz getirin) Evet
CSS Desteği Sınırlı (tasarımcıda CSS benzeri seçiciler) Tam CSS3
Çalışma zamanında JavaScript Hayır (sunucu motoru JS çalıştırmaz) Tam ES2024
Dijital İmzalar Evet (X.509 / .PFX ile PDF aygıt bilgisi) Evet
PDF/A PDF/A-1b, PDF/A-2b, PDF/A-3b PDF/A-3
Çalışma Zamanı Boyutu Geniş (motor + format başına işleme DLL'leri) Daha küçük

Hızlı Başlangıç: Telerik Reporting'den IronPDF'ye Geçiş

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

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

TümTelerik Reportingpaketlerini kaldırın:

# RemoveTelerik Reportingpackages (hosted on the private Telerik NuGet feed)
dotnet remove package Telerik.Reporting
dotnet remove package Telerik.Reporting.Services.AspNetCore
dotnet remove package Telerik.ReportViewer.Mvc
# RemoveTelerik Reportingpackages (hosted on the private Telerik NuGet feed)
dotnet remove package Telerik.Reporting
dotnet remove package Telerik.Reporting.Services.AspNetCore
dotnet remove package Telerik.ReportViewer.Mvc
SHELL

IronPDF'i yükleyin:

# Install IronPDF(hosted on nuget.org)
dotnet add package IronPdf
# Install IronPDF(hosted on nuget.org)
dotnet add package IronPdf
SHELL

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

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

// Before (Telerik Reporting)
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

// After (IronPDF)
using IronPdf;
// Before (Telerik Reporting)
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

// After (IronPDF)
using IronPdf;
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports Telerik.Reporting.Drawing

' After (IronPDF)
Imports IronPdf
$vbLabelText   $csharpLabel

Adım 3: Lisansa İzin Verin

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

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

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.

Telerik Reporting Yaklaşımı:

// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Collections.Specialized;

class TelerikExample
{
    static void Main()
    {
        var reportSource = new Telerik.Reporting.TypeReportSource();
        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = new Telerik.Reporting.Report()
        {
            Items = { new Telerik.Reporting.HtmlTextBox() { Value = "<h1>Hello World</h1><p>Sample HTML content</p>" } }
        };

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("output.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Collections.Specialized;

class TelerikExample
{
    static void Main()
    {
        var reportSource = new Telerik.Reporting.TypeReportSource();
        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = new Telerik.Reporting.Report()
        {
            Items = { new Telerik.Reporting.HtmlTextBox() { Value = "<h1>Hello World</h1><p>Sample HTML content</p>" } }
        };

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("output.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports System.Collections.Specialized
Imports System.IO

Class TelerikExample
    Shared Sub Main()
        Dim reportSource As New Telerik.Reporting.TypeReportSource()
        Dim instanceReportSource As New Telerik.Reporting.InstanceReportSource()
        instanceReportSource.ReportDocument = New Telerik.Reporting.Report() With {
            .Items = {New Telerik.Reporting.HtmlTextBox() With {.Value = "<h1>Hello World</h1><p>Sample HTML content</p>"}}
        }

        Dim reportProcessor As New ReportProcessor()
        Dim result = reportProcessor.RenderReport("PDF", instanceReportSource, Nothing)

        Using fs As New FileStream("output.pdf", FileMode.Create)
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF Yaklaşımı:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>Sample HTML content</p>");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>Sample HTML content</p>");
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System

Class IronPdfExample
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>Sample HTML content</p>")
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Telerik versiyonunda bir TypeReportSource, bir InstanceReportSource, bir Report nesnesi ve bir HtmlTextBox, bir ReportProcessor ve manuel dosya akışı yönetimi oluşturmanız gerekir. IronPDF'nin ChromePdfRenderer tüm süreci üç satır kodla halleder.

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

URL'leri PDF'ye Dönüştürme

URL'den PDF'ye dönüştürme, Telerik Reporting'de önemli bir yetenek açığını ortaya koyar.

Telerik Reporting Yaklaşımı:

// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Net;

class TelerikExample
{
    static void Main()
    {
        string htmlContent;
        using (var client = new WebClient())
        {
            htmlContent = client.DownloadString("https://example.com");
        }

        var report = new Telerik.Reporting.Report();
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = htmlContent
        };
        report.Items.Add(htmlTextBox);

        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("webpage.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Net;

class TelerikExample
{
    static void Main()
    {
        string htmlContent;
        using (var client = new WebClient())
        {
            htmlContent = client.DownloadString("https://example.com");
        }

        var report = new Telerik.Reporting.Report();
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = htmlContent
        };
        report.Items.Add(htmlTextBox);

        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("webpage.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports System.Net
Imports System.IO

Class TelerikExample
    Shared Sub Main()
        Dim htmlContent As String
        Using client As New WebClient()
            htmlContent = client.DownloadString("https://example.com")
        End Using

        Dim report As New Telerik.Reporting.Report()
        Dim htmlTextBox As New Telerik.Reporting.HtmlTextBox() With {
            .Value = htmlContent
        }
        report.Items.Add(htmlTextBox)

        Dim instanceReportSource As New Telerik.Reporting.InstanceReportSource()
        instanceReportSource.ReportDocument = report

        Dim reportProcessor As New ReportProcessor()
        Dim result = reportProcessor.RenderReport("PDF", instanceReportSource, Nothing)

        Using fs As New FileStream("webpage.pdf", FileMode.Create)
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF Yaklaşımı:

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
Imports IronPdf
Imports System

Class IronPdfExample
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
        pdf.SaveAs("webpage.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Telerik Raporlama'nın yerleşik bir URL'den PDF'ye yöntemi yoktur—HTML'yi kendiniz indirirsiniz (burada WebClient kullanılarak), ve sunucu tarafı motoru JavaScript çalıştırmaz, bu nedenle dış betikler ve dinamik içerikler render edilmez. IronPDF'nin RenderUrlAsPdf yöntemi, tam olarak bir tarayıcıda göründüğü gibi tam render edilmiş sayfayı yakalar.

Kimlik doğrulama ve özel başlık seçenekleri için URL'den PDF'ye dokümantasyonu inceleyin.

Sayfa Numaralarıyla Üstbilgi ve Altbilgi Uygulama

Dinamik sayfa numaralarına sahip üstbilgi ve altbilgiler, profesyonel belgeler için gereklidir. Uygulama yaklaşımları önemli ölçüde farklılık gösterir.

Telerik Reporting Yaklaşımı:

// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

class TelerikExample
{
    static void Main()
    {
        var report = new Telerik.Reporting.Report();

        // Add page header
        var pageHeader = new Telerik.Reporting.PageHeaderSection();
        pageHeader.Height = new Unit(0.5, UnitType.Inch);
        pageHeader.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Document Header",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageHeaderSection = pageHeader;

        // Add page footer
        var pageFooter = new Telerik.Reporting.PageFooterSection();
        pageFooter.Height = new Unit(0.5, UnitType.Inch);
        pageFooter.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Page {PageNumber} of {PageCount}",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageFooterSection = pageFooter;

        // Add content
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = "<h1>Report Content</h1><p>This is the main content.</p>"
        };
        report.Items.Add(htmlTextBox);

        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("report_with_headers.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

class TelerikExample
{
    static void Main()
    {
        var report = new Telerik.Reporting.Report();

        // Add page header
        var pageHeader = new Telerik.Reporting.PageHeaderSection();
        pageHeader.Height = new Unit(0.5, UnitType.Inch);
        pageHeader.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Document Header",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageHeaderSection = pageHeader;

        // Add page footer
        var pageFooter = new Telerik.Reporting.PageFooterSection();
        pageFooter.Height = new Unit(0.5, UnitType.Inch);
        pageFooter.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Page {PageNumber} of {PageCount}",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageFooterSection = pageFooter;

        // Add content
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = "<h1>Report Content</h1><p>This is the main content.</p>"
        };
        report.Items.Add(htmlTextBox);

        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("report_with_headers.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports Telerik.Reporting.Drawing
Imports System.IO

Class TelerikExample
    Shared Sub Main()
        Dim report As New Telerik.Reporting.Report()

        ' Add page header
        Dim pageHeader As New Telerik.Reporting.PageHeaderSection()
        pageHeader.Height = New Unit(0.5, UnitType.Inch)
        pageHeader.Items.Add(New Telerik.Reporting.TextBox() With {
            .Value = "Document Header",
            .Location = New PointU(0, 0),
            .Size = New SizeU(New Unit(6, UnitType.Inch), New Unit(0.3, UnitType.Inch))
        })
        report.PageHeaderSection = pageHeader

        ' Add page footer
        Dim pageFooter As New Telerik.Reporting.PageFooterSection()
        pageFooter.Height = New Unit(0.5, UnitType.Inch)
        pageFooter.Items.Add(New Telerik.Reporting.TextBox() With {
            .Value = "Page {PageNumber} of {PageCount}",
            .Location = New PointU(0, 0),
            .Size = New SizeU(New Unit(6, UnitType.Inch), New Unit(0.3, UnitType.Inch))
        })
        report.PageFooterSection = pageFooter

        ' Add content
        Dim htmlTextBox As New Telerik.Reporting.HtmlTextBox() With {
            .Value = "<h1>Report Content</h1><p>This is the main content.</p>"
        }
        report.Items.Add(htmlTextBox)

        Dim instanceReportSource As New Telerik.Reporting.InstanceReportSource()
        instanceReportSource.ReportDocument = report

        Dim reportProcessor As New ReportProcessor()
        Dim result = reportProcessor.RenderReport("PDF", instanceReportSource, Nothing)

        Using fs As New FileStream("report_with_headers.pdf", FileMode.Create)
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF Yaklaşımı:

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Document Header</div>"
        };

        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>This is the main content.</p>");
        pdf.SaveAs("report_with_headers.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Document Header</div>"
        };

        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>This is the main content.</p>");
        pdf.SaveAs("report_with_headers.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System

Class IronPdfExample
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()

        ' Configure header and footer
        renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
            .HtmlFragment = "<div style='text-align:center'>Document Header</div>"
        }

        renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
            .HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
        }

        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>This is the main content.</p>")
        pdf.SaveAs("report_with_headers.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Telerik Raporlama, PageHeaderSection ve PageFooterSection nesneleri oluşturmayı, Unit ölçümlerini yapılandırmayı, Location ve Size özelliklerini ayarlamayı ve belirli koordinatlarla TextBox öğelerini yönetmeyi gerektirir. IronPDF'nin HTML tabanlı yaklaşımı, tanıdık CSS stilini ve {page} ve {total-pages} gibi basit yer tutucular kullanır.

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

Telerik Reporting API to IronPDF Haritalandırma Referansı

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

Telerik Reporting IronPDF
Report sınıfı ChromePdfRenderer
ReportProcessor renderer.RenderHtmlAsPdf()
ReportSource HTML dizgisi veya dosyası
.trdp / .trdx dosyaları HTML/CSS şablonları
ReportParameter Dizgi interpolasyonu / Razor
ReportDataSource C# veri bağlama
RenderReport("PDF") RenderHtmlAsPdf()
Export() pdf.SaveAs()
TextBox rapor öğesi HTML ,

,

Table rapor öğesi HTML
PictureBox HTML
PageSettings RenderingOptions

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

Sorun 1: Rapor Tanımları (.trdp/.trdx dosyaları)

Telerik Reporting, doğrudan dönüştürülemeyen özel XML rapor tanımlarını kullanır.

Çözüm: Raporu tasarımcısında açarak, düzeni, veri bağlamalarını ve formatlamayı belgeleyip ardından HTML/CSS şablonlar olarak yeniden oluşturarak HTML şablonlarına dönüştürün. Karmaşık senaryolarda veri bağı için Razor kullanın.

Sorun 2: Veri Kaynağı Bağlama

Telerik Raporlama SqlDataSource ve ifade bağlayıcı ile nesne veri kaynaklarını kullanır.

Çözüm: Verileri C# ile alın ve HTML'ye bağlayın:

var data = await dbContext.Orders.ToListAsync();
var html = $"<table>{string.Join("", data.Select(d => $"<tr><td>{d.Name}</td></tr>"))}</table>";
var data = await dbContext.Orders.ToListAsync();
var html = $"<table>{string.Join("", data.Select(d => $"<tr><td>{d.Name}</td></tr>"))}</table>";
Dim data = Await dbContext.Orders.ToListAsync()
Dim html = $"<table>{String.Join("", data.Select(Function(d) $"<tr><td>{d.Name}</td></tr>"))}</table>"
$vbLabelText   $csharpLabel

Sorun 3: Rapor Parametreleri

Telerik Raporlama yerleşik parametre kullanıcı arayüzü ile ReportParameter kullanır.

Çözüm: Parametreleri doğrudan HTML oluşturma işlemine iletin:

public string GenerateReport(string customerId, DateTime fromDate)
{
    return $"<h1>Report for {customerId}</h1><p>From: {fromDate:d}</p>";
}
public string GenerateReport(string customerId, DateTime fromDate)
{
    return $"<h1>Report for {customerId}</h1><p>From: {fromDate:d}</p>";
}
Public Function GenerateReport(customerId As String, fromDate As DateTime) As String
    Return $"<h1>Report for {customerId}</h1><p>From: {fromDate:d}</p>"
End Function
$vbLabelText   $csharpLabel

Sorun 4: Etkileşimli Özellikler

Telerik Reporting, görüntüleyicisinde drill-down, sıralama ve filtreleme sağlar.

Çözüm:IronPDF statik PDF'ler oluşturur. Etkileşim için verileri web arayüzünüzde tutun ve kullanıcı 'Dışa Aktar'a tıkladığında PDF oluşturun. Bu, etkileşimli veri keşfi ile belge oluşturma işlevlerini ayırır.

Telerik Reporting Geçiş Kontrol Listesi

Geçiş Öncesi Görevler

Telerik Reporting kullanımını belirlemek için kod tabanınızı denetleyin:

grep -r "using Telerik.Reporting" --include="*.cs" .
grep -r "Report\|ReportProcessor" --include="*.cs" .
grep -r "using Telerik.Reporting" --include="*.cs" .
grep -r "Report\|ReportProcessor" --include="*.cs" .
SHELL

Veri kaynaklarını ve parametreleri belgeleyin, mevcut rapor düzenlerinin görsel referansı için ekran görüntüsü alın ve yeniden kullanılabilir HTML şablonlarına dönüştürülebilecek ortak rapor bileşenlerini belirleyin.

Kod Güncelleme Görevleri

  1. Telerik NuGet paketlerini kaldırın 2.IronPDF NuGet paketini yükleyin
  2. .trdx dosyalarını HTML şablonlarına dönüştür
  3. ReportProcessor ile ChromePdfRenderer değiştir
  4. Veri bağlamayı dize interpolasyonu veya Razor ile güncelleyin
  5. Başlıkları/altbilgileri HtmlHeaderFooter kullanarak HTML'ye dönüştür
  6. Başlangıçta lisans başlatmayı ekleyin

Geçiş Sonrası Testler

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

  • PDF çıktısını orijinal raporlara karşı görsel olarak karşılaştırın
  • Üretilen PDF'lerde veri doğruluğunu doğrulayın
  • Çok sayfalı belgeler için sayfalamayı test edin
  • Tüm sayfalarda başlıkların/altlıkların doğru göründüğünü kontrol edin
  • Yüksek hacim senaryoları için performans testi yapın

IronPDF'e Geçmenin Temel Faydaları

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

Modern Chromium İşleme Motoru: IronPDF, aynı işleme motorunu Google Chrome gibi kullanır, bu da PDF'lerin modern tarayıcılarda görünen içerik gibi doğru şekilde işlenmesini sağlar. Tam CSS3 ve JavaScript desteği, web tasarımlarınızın doğrudan PDF'ye çevrilmesi anlamına gelir.

Kapsamlı Lisanslama: IronPDF, kapsamlı bir süit satın almayı gerektirmeyen geliştirici başına lisans sunar. Sadece PDF üretimine ihtiyacı olan ekipler için bu, önemli maliyet tasarrufu anlamına gelir.

Standart Web Teknolojileri: HTML, CSS ve JavaScript, her web geliştiricisinin sahip olduğu becerilerdir. Öğrenilecek veya özel tasarım araçları gereken herhangi bir özel şablon formatı yoktur.

Daha Küçük Dağıtım Ayak İzi: Rapor hizmeti altyapısı ve tasarım bileşenleri olmadan, dağıtımlar daha basit ve daha hızlıdır.

Aktif Geliştirme: IronPDF'nin düzenli güncellemeleri, modern .NET sürümlerini takip eder, böylece modern .NET üzerindeki projeler, üç ayda bir rapor sürümünü beklemeksizin desteklenmeye devam eder.

Lütfen dikkate alınTelerik, ilgili sahibinin tescilli ticari markasıdır. Bu site, Progress Software ile ilişkili, onaylanmış veya desteklenmiş değildir. 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ı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara