IRONSOFTWAREHOME
VIDEOLAR

VB.NET Kütüphanesi ile PDF Dosyaları Nasıl Üretilir | IronPDF

Curtis Chau
Curtis Chau
Updated: 19 Temmuz 2026

SQL Server Reporting Services (SSRS)'den IronPDF'ye geçiş yapmak, PDF oluşturma iş akışınızı ağır sunucu tabanlı bir altyapıdan, herhangi bir .NET uygulamasına doğrudan gömülebilen hafif, yerinde bir kütüphaneye dönüştürür. Bu kılavuz, SQL Server bağımlılıklarını, rapor sunucu yükünü ve Microsoft ekosistemi bağımlılığını ortadan kaldıran eksiksiz, adım adım bir geçiş yolu sağlar.

Neden SSRS'den IronPDF'ye Geçmeli

SSRS'yi Anlamak

SQL Server Reporting Services (SSRS), Microsoft'un SQL Server ekosistemi ile sıkı bir şekilde entegre olan kurumsal raporlama platformudur — raporlar oluşturmak, dağıtmak ve yönetmek için tam bir takımdır. Microsoft, SSRS 2022'nin son bağımsız sürüm olduğunu doğruladı: SQL Server 2025'ten itibaren, şirket içi raporlamalar Power BI Report Server (PBIRS) olarak birleştirilir ve yeni SSRS sürümleri gönderilmeyecek. SSRS 2022, 11 Ocak 2033 tarihine kadar SQL Server 2022 yaşam döngüsüne uygun olarak güvenlik güncellemeleri alacak (bkz. Raporlama Hizmetleri Konsolidasyon SSS).

Birçok PDF oluşturma senaryosu için, SSRS altyapısı fazladır. Geçiş yapılmak için temel nedenler şunlardır:

  1. SSRS çizgisin sonu: SQL Server 2025, SSRS olmadan gönderilecek; PBIRS yerine geçer. SSRS'yi hedef alan yeni çalışma bir çıkmaz yoldur.
  2. Ağır Altyapı: SQL Server, Rapor Sunucusu ve (eski Web Forms görüntüleyicisi için) IIS yapılandırması gerektirir
  3. Microsoft Ekosistemi Kapanı: SQL Server lisanslamasına ve Windows Server'a bağlı
  4. Karmaşık Dağıtım: Rapor dağıtımı, güvenlik yapılandırması ve abonelik yönetimi
  5. Pahalı Lisanslama: Özellikle kurumsal özellikler için SQL Server lisansları
  6. Birinci Sınıf .NET Core Desteği Yok: Microsoft'un Microsoft.ReportingServices.ReportViewerControl.WebForms / .Winforms paketleri yalnızca .NET Framework 4.0–4.8.1 için hedeflenmiştir. .NET Core / .NET 5+ kullanıcıları topluluk portu ReportViewerCore.NETCore'e dayanır.
  7. Bakım Yükü: Sunucu yamaları, veritabanı bakımı, rapor yönetimi
  8. Bulut Yerel Seçeneği Yok: Yerel için tasarlanmış, bulut desteği zorludur

SSRS Gereksiz Olduğunda

İhtiyacınızSSRS Aşırı Yük
Fatura oluşturmaTam rapor sunucusu
Veri tablolarını dışa aktarmaSQL Server lisansı
Verilerden PDF oluşturmaWindows Server
Basit belge oluşturmaRapor abonelikleri

IronPDF, herhangi bir sunucu altyapısı gerektirmeyen bir süreç içinde PDF oluşturma sağlar.

SSRS ve IronPDF Karşılaştırması

ÖzellikSSRSIronPDF
BağımlılıkSQL Server gerektirirBelirli bir veritabanı bağımlılığı yok
DağıtımSunucu tabanlıUygulamalara gömülü kütüphane
EntegrasyonMicrosoft ile sıkı entegrasyonHerhangi bir veri kaynağı ile çalışır
Veri GörselleştirmeGeniş kapsamlı yerel seçeneklerPDF odaklı görselleştirmeler
KarmaşıklıkYüksek (sunucu kurulumu gerektirir)Orta ila düşük (kütüphane kurulumu)
MaliyetSQL Server lisanslama maliyetleriGeliştirici başına lisans maliyeti
HTML'den PDF'yeHayırTam Chromium
URL'den PDF'yeHayırEvet
CSS DesteğiSınırlıTam CSS3
JavaScriptHayırTam ES2024

IronPDF, SSRS'den farklı olarak belirli bir veritabanı veya sunucu ekosistemine bağlı değildir. Geliştiricilere doğrudan C# içinde PDF belgelerini dinamik olarak oluşturma, düzenleme ve manipüle etme esnekliğini sağlar. Sunucu tabanlı altyapıdan ayrılmak belirgin bir avantaj sunar—kapsamlı ve uyarlanabilir, raporlamanın ötesinde geniş bir uygulama yelpazesi için uygundur.

Modern .NET'i benimseyen ekipler için, IronPDF, SSRS'nin altyapı karmaşıklığını ortadan kaldıran bir Chromium işleme motoru sağlar.


Başlamadan Önce

Ön Koşullar

  1. .NET Ortamı: .NET Framework 4.6.2+ veya .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet Erişimi: NuGet paketlerini yükleyebilme
  3. IronPDF Lisansı: Lisans anahtarınızı ironpdf.com adresinden edinin

NuGet Paket Değişiklikleri

# SSRS itself is server-based, but the in-process LocalReport API
# ships via Microsoft's ReportViewerControl packages (latest 150.1652.0,
# June 2024 — .NET Framework 4.0–4.8.1 only).
dotnet remove package Microsoft.ReportingServices.ReportViewerControl.WebForms
dotnet remove package Microsoft.ReportingServices.ReportViewerControl.Winforms

# If your project used the community .NET Core port, remove it too:
# dotnet remove package ReportViewerCore.NETCore

# Install IronPDF
dotnet add package IronPdf
SHELL

Lisans Yapılandırması

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Tam API Referansı

Ad Alanı Değişiklikleri

// Before: SSRS
using Microsoft.Reporting.WebForms;
using Microsoft.Reporting.WinForms;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;

Temel API Eşlemeleri

SSRS KavramıIronPDF EşdeğeriNotlar
LocalReportChromePdfRendererÇekirdek oluşturma
ServerReportRenderUrlAsPdf()URL tabanlı işleme
.rdlc dosyalarıHTML/CSS şablonlarıŞablon formatı
ReportParameterDizi iç içe dizimiParametreler
ReportDataSourceC# verisi + HTMLVeri bağlama
LocalReport.Render("PDF")RenderHtmlAsPdf()PDF çıktısı
SubReportBirleştirilmiş PDF'lerİç içe raporlar
Report Server URLGerekli değilSunucu gerekmez
ReportViewer kontrolüGerekli değilDoğrudan PDF oluşturma
Dışa verilme formatlarıPDF yerlidirOdaklanmış çıktı

Kod Göç Örnekleri

Örnek 1: HTML'den PDF'ye Dönüştürme

Önce (SSRS):

// SSRS - SQL Server Reporting Services
using System;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.IO;

class SSRSHtmlToPdf
{
    static void Main()
    {
        // Create a ReportViewer instance
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        
        // Load RDLC report definition
        reportViewer.LocalReport.ReportPath = "Report.rdlc";
        
        // Add HTML content as a parameter or dataset
        var htmlContent = "<h1>Hello World</h1><p>This is HTML content.</p>";
        var param = new ReportParameter("HtmlContent", htmlContent);
        reportViewer.LocalReport.SetParameters(param);
        
        // Render the report to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;
        
        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF",
            null,
            out mimeType,
            out encoding,
            out fileNameExtension,
            out streams,
            out warnings);
        
        File.WriteAllBytes("output.pdf", bytes);
    }
}

Sonrası (IronPDF):

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

class IronPdfHtmlToPdf
{
    static void Main()
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();
        
        // Convert HTML string to PDF
        var htmlContent = "<h1>Hello World</h1><p>This is HTML content.</p>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        
        // Save the PDF file
        pdf.SaveAs("output.pdf");
    }
}

Bu örnek, temel yapısal farkı gösterir. SSRS, bir ReportViewer örneği oluşturmayı, bir .rdlc rapor tanım dosyası yüklemeyi, parametreleri ayarlamayı ve ardından metadata için birden fazla out parametresi ile LocalReport.Render("PDF") çağırmayı gerektirir.

IronPDF, sadece üç satır kodla ChromePdfRenderer kullanır ve RenderHtmlAsPdf() ile işlemi tamamlar. Rapor tanım dosyaları, parametre nesneleri, meta veri işlemi gerekmez. Kapsamlı örnekler için HTML'den PDF'e dönüşüm belgelerine bakın.

Örnek 2: Üst ve Alt Bilgilerle URL'den PDF'ye

Önce (SSRS):

// SSRS - SQL Server Reporting Services
using System;
using System.IO;
using System.Net;
using Microsoft.Reporting.WebForms;

class SSRSUrlToPdf
{
    static void Main()
    {
        // Download HTML content from URL
        string url = "https://example.com";
        string htmlContent;
        
        using (var client = new WebClient())
        {
            htmlContent = client.DownloadString(url);
        }
        
        // Create RDLC report with header/footer configuration
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.ReportPath = "WebReport.rdlc";
        
        // Set parameters for header and footer
        var parameters = new ReportParameter[]
        {
            new ReportParameter("HeaderText", "Company Report"),
            new ReportParameter("FooterText", "Page " + DateTime.Now.ToString()),
            new ReportParameter("HtmlContent", htmlContent)
        };
        reportViewer.LocalReport.SetParameters(parameters);
        
        // Render to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;
        
        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF", null, out mimeType, out encoding,
            out fileNameExtension, out streams, out warnings);
        
        File.WriteAllBytes("webpage.pdf", bytes);
    }
}

Sonrası (IronPDF):

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

class IronPdfUrlToPdf
{
    static void Main()
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();
        
        // Configure rendering options with header and footer
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Company Report</div>"
        };
        
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages} - " + DateTime.Now.ToString("MM/dd/yyyy") + "</div>"
        };
        
        // Convert URL to PDF
        string url = "https://example.com";
        var pdf = renderer.RenderUrlAsPdf(url);
        
        // Save the PDF file
        pdf.SaveAs("webpage.pdf");
    }
}

SSRS, URL'leri doğrudan PDF'ye dönüştüremez. HTML içeriğini WebClient.DownloadString() ile manuel olarak indirmeniz, ayrı bir .rdlc rapor dosyası oluşturmanız, HTML ve üstbilgi/altbilgi metnini ReportParameter dizileri olarak geçirmeniz, ardından karmaşık Render() yöntem imzasıyla işlemi gerçekleştirmeniz gerekmektedir.

IronPDF'in RenderUrlAsPdf() işlemin tamamını tek bir çağrıda ele alır. Üstbilgiler ve altbilgiler tam HTML/CSS ve {page} ve {total-pages} gibi yer tutucuları destekleyen HtmlHeaderFooter nesneleri ile yapılandırılır. Daha fazla bilgiyi kılavuzlarımızda öğrenin.

Örnek 3: Veritabanı Tabanlı Rapor

Önce (SSRS):

// SSRS - SQL Server Reporting Services
using System;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.IO;

class SSRSDatabaseReport
{
    static void Main()
    {
        // Create a ReportViewer instance
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.ReportPath = "SalesReport.rdlc";
        
        // Create database connection and fetch data
        string connString = "Server=localhost;Database=SalesDB;Integrated Security=true;";
        using (var connection = new SqlConnection(connString))
        {
            var adapter = new SqlDataAdapter("SELECT * FROM Sales", connection);
            var dataSet = new DataSet();
            adapter.Fill(dataSet, "Sales");
            
            // Bind data to report
            var dataSource = new ReportDataSource("SalesDataSet", dataSet.Tables[0]);
            reportViewer.LocalReport.DataSources.Clear();
            reportViewer.LocalReport.DataSources.Add(dataSource);
        }
        
        // Render to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;
        
        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF", null, out mimeType, out encoding,
            out fileNameExtension, out streams, out warnings);
        
        File.WriteAllBytes("sales-report.pdf", bytes);
    }
}

Sonrası (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Data;
using System.Data.SqlClient;
using System.Text;

class IronPdfDatabaseReport
{
    static void Main()
    {
        // Create database connection and fetch data
        string connString = "Server=localhost;Database=SalesDB;Integrated Security=true;";
        var dataTable = new DataTable();
        
        using (var connection = new SqlConnection(connString))
        {
            var adapter = new SqlDataAdapter("SELECT * FROM Sales", connection);
            adapter.Fill(dataTable);
        }
        
        // Build HTML table from data
        var htmlBuilder = new StringBuilder();
        htmlBuilder.Append("<h1>Sales Report</h1><table border='1'><tr>");
        
        foreach (DataColumn column in dataTable.Columns)
            htmlBuilder.Append($"<th>{column.ColumnName}</th>");
        htmlBuilder.Append("</tr>");
        
        foreach (DataRow row in dataTable.Rows)
        {
            htmlBuilder.Append("<tr>");
            foreach (var item in row.ItemArray)
                htmlBuilder.Append($"<td>{item}</td>");
            htmlBuilder.Append("</tr>");
        }
        htmlBuilder.Append("</table>");
        
        // Convert to PDF
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
        pdf.SaveAs("sales-report.pdf");
    }
}

SSRS, önceden tasarlanmış bir .rdlc rapor dosyası ('SalesReport.rdlc'), bir DataSet doldurma, rapor tanımı ile eşleşmesi gereken belirli bir ad ('SalesDataSet') ile bir ReportDataSource oluşturma, mevcut veri kaynaklarını temizleme, yeni veri kaynağını ekleme ve ardından çıktıyı gerçekleştirme gerektirir.

IronPDF, mevcut veri erişim kodunuzu (aynı SqlDataAdapter deseni) kullanır, ardından HTML'i dinamik olarak StringBuilder ile oluşturur. Standart HTML/CSS kullanarak düzen üzerinde tam kontrole sahipsiniz—özel rapor tanım dosyalarına gerek yok.


Özellik Karşılaştırması

ÖzellikSSRSIronPDF
:Altyapı:
SQL Server LisansıGereklidirGerekli değil
Windows ServerGereklidirHerhangi bir platform
Veritabanı GerekliEvet (ReportServer DB)Hayır
:Geliştirme:
Şablon BiçimiRDLC/RDLHTML/CSS/Razor
Veri KaynaklarıYerleşik DSNHerhangi bir C# verisi
:Oluşturma:
URL'yi PDF'ye çevirHayırEvet
CSS DesteğiSınırlıTam CSS3
JavaScriptHayırTam ES2024
GrafiklerYerleşikJS kütüphaneleri ile
:Dağıtım:
YapılandırmaKarmaşıkBasit
BakımYüksekDüşük

Yaygın Geçiş Sorunları

Sorun 1: RDLC Rapor Tanımlamaları

SSRS: Özel .rdlc XML formatını kullanır.

Çözüm: HTML şablonlarına dönüştür:

  1. Visual Studio'da .rdlc'yi açın
  2. Düzen yapısını belgeleyin
  3. HTML/CSS'de yeniden oluşturun
  4. Veri bağlama için Razor kullanın

Sorun 2: Paylaşılan Veri Kaynakları

SSRS: Rapor Sunucusunda bağlantı dizeleri.

Çözüm: Uygulamanızın veri erişim katmanını kullanın:

var data = await _dbContext.Sales.ToListAsync();
// Then bind to HTML template

Sorun 3: Rapor Parametreleri UI

SSRS: Dahili parametre istemleri.

Çözüm: Uygulamanızda parametre UI'si oluşturun:

// Your own parameter form, then:
var pdf = GenerateReport(startDate, endDate, region);

Sorun 4: Abonelikler/Programlanmış Raporlar

SSRS: Dahili abonelik motoru.

Çözüm: Arka plan iş çerçevesini kullanın:

// Using Hangfire or similar
RecurringJob.AddOrUpdate("weekly-report",
    () => GenerateAndEmailReport(), Cron.Weekly);

Geçiş Kontrol Listesi

Öncesi-Geçiş

  • Tüm SSRS raporlarını envanterleyin (.rdlc dosyaları)
  • Veri kaynaklarını ve bağlantıları belgeleyin
  • Görsel referans için rapor düzenlerinin ekran görüntüsünü alın
  • Her rapor için rapor parametrelerini listeleyin
  • Abonelik programlarını not alın
  • ironpdf.com adresinden IronPDF lisans anahtarını edinin

Kod Güncellemeleri

  • ReportViewer paketlerini kaldır
  • IronPdf NuGet paketini kurun
  • .rdlc dosyalarını HTML şablonlarına dönüştürün
  • LocalReport yerine ChromePdfRenderer kullanın
  • ReportDataSource yerine C# veri + HTML şablonları kullanın
  • ReportParameter yerine dize interpolasyonu kullanın
  • LocalReport.Render("PDF") yerine RenderHtmlAsPdf() kullanın
  • HtmlHeaderFooter ile üstbilgi/altbilgi uygulayın
  • Uygulama başlangıcında lisans başlatma ekle

Altyapı

  • Rapor Sunucusu devre dışı bırakma planı yap
  • Abonelikleri iş planlayıcısına (Hangfire, vb.) taşı
  • Dağıtım betiklerini güncelleyin

Test Etme

  • PDF çıktısını görsel olarak karşılaştır
  • Veri doğruluğunu kontrol et
  • Sayfalandırmayı test et
  • Tüm parametreleri kontrol et
  • Performans testi yapın

Lütfen dikkate alın: SSRS, ilgili sahibinin tescilli ticari markasıdır. Bu site, Microsoft tarafından onaylanmamış, desteklenmemiş veya finanse edilmemiştir. 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