IRONSOFTWAREHOME
VIDEOLAR

ASPNET'te Görünümleri PDF'lere Nasıl Dönüştürürüz

Curtis Chau
Curtis Chau
Updated: 19 Temmuz 2026

SAP Crystal Reports'tan IronPDF'ye geçmek, raporlama iş akışınızı COM-çağı bağımlılıkları olan bir runtime MSI yeniden dağıtılabilirden modern birNuGetpaketine dönüştürür. Bu kılavuz, runtime yükleyicisi gerekliliğini ortadan kaldıran, SAP ekosisteminden bağımsızlık sağlayan ve Crystal Reports for Visual Studio'nun (CR4VS) desteklemediği .NET 6/8/9 ve Linux/Docker hedeflerini açan bir adımdan-adıma geçiş yolu sunar.

SAP Crystal Reports'tan IronPDF'e Neden Geçilmeli

SAP Crystal Reports'u Anlama

SAP Crystal Reports, 'piksel mükemmelliğinde' raporlar üretmek için özellikle kullanılan, geniş veri kaynağı bağlantısı ve uzun süreli bir tasarımcı ekosistemine sahip bir kurumsal raporlama platformudur. Crystal Reports Designer, SAP yığını içinde karmaşık rapor düzenleri oluşturmak için üretken bir araç olarak kalır.

Ancak, runtime'ın COM-çağı mimarisi ve yalnızca Windows/.NET Framework varlığı, .NET 6/8/9, Linux veya konteyner-öncelikli dağıtımları hedefleyen ekipler için sürtünme yaratır.

Göç Etmenin Temel Nedenleri

  1. Runtime MSI Yeniden Dağıtılabilir: Crystal Reports Runtime, birNuGetpaketi yerine bir MSI yükleyici olarak gönderilir (tipik olarak 32/64-bit ve yerel dile göre boyutlar düzinelerce ila birkaç yüz MB arasında olabilir)
  2. SAP Ekosistem Bağımlılığı: SAP'nin sürüm döngüleri ve ürün yol haritasına bağlıdır; SAP, CR4VS için ana akım bakımın 2027 yılı sonunda sona ereceğini onayladı
  3. Lisanslama: CR4VS kendisi indirilebilir ve runtime yeniden dağıtılabilir, ancak Crystal Reports tasarımcı ailesi (CR 2020 / CR 2025) ve BI Platformu ticari SAP SKUs'udur
  4. Miras Mimarisi: COM'ye bağımlı runtime DLL'leri .NET Framework 4.x'i hedefler ve.NET Core / .NET 5+altında yüklenemez
  5. Modern .NET Desteği Yok: Crystal Reports runtime'ı modern .NET'i hedefleyen bir yol haritası yoktur; projeler .NET Framework 4.x'e sabit kalır
  6. 32-bit Runtime Sonlandırıldı: SAP, 32-bit CR .NET runtime'ın SP 39'dan sonra (Aralık 2025) sonlandırıldığını onayladı; gelecek hizmet paketleri yalnızca 64-bittir
  7. Rapor Tasarımcısı Bağımlılığı: .rpt dosyaları oluşturmak için CR4VS Visual Studio uzantısına veya bağımsız bir Crystal Reports tasarımcısına ihtiyaç duyar

SAP Crystal Reports'un Gizli Maliyetleri

Maliyet FaktörüSAP Crystal ReportsIronPDF
Runtime DağıtımıMSI yeniden dağıtılabilir yükleyiciNuGetpaketi
KurulumRuntime yükleyici + VS uzantısıdotnet add package IronPdf
DağıtımHedef makinede MSI çalıştırınxcopy / yayımla
64-bit DesteğiEvet (32-bit runtime SP 39'dan sonra sona erer, Aralık 2025)Yerel
.NET Core / .NET 5+Desteklenmiyor (sadece Framework 4.x)Tam destek (.NET 6/8/9, Framework 4.6.2+)
Bulut DağıtımıSadece Windows VM'lerBasit
Linux / DockerDesteklenmiyor (sadece Windows)Desteklenen

SAP Crystal Reports ve IronPDF Karşılaştırması

ÖzellikSAP Crystal ReportsIronPDF
Birincil İşlevsellikKurumsal raporlama platformuHTML'den PDF'e dönüşüm motoru ve PDF düzenleme
EntegrasyonSAP ekosistemi içinde en iyiModern .NET entegrasyonu, hafifNuGetpaketi
Kullanım KolaylığıKarmaşık kurulum ve dağıtımBasitleştirilmiş entegrasyon, .NET geliştiricilerini destekler
Rapor TasarımcısıGereklidirİsteğe bağlı (HTML/CSS)
Şablon Formatı.rpt (ikili)HTML/CSS
HTML'den PDF'yeHayırTam Chromium
URL'den PDF'yeHayırEvet
CSS DesteğiHayırTam CSS3
JavaScriptHayırTam ES2024
PDF ManipülasyonuHayırTam (birleştirme, bölme, düzenleme)
Dijital İmzalarHayırEvet
PDF/A UyumluHayırEvet
Modern GeçerlilikAzalan, modern alternatiflerle değiştirildiModern, çağdaş teknolojilerle iyi entegre

Modern .NET'i (6, 8, 9) ve çapraz platform dağıtımı hedefleyen ekipler için, IronPDF, Crystal Reports runtime'nin sunamayacağı, .NET Framework 4.x'e sabitlenmiş olan yerleşik desteği sağlar.


Başlamadan Önce

Ön Koşullar

  1. .NET Environment: .NET Framework 4.6.2+ or .NET 6 / 8 / 9
  2. **NuGet Erişimi:**NuGetpaketlerini yükleyebilme
  3. IronPDF Lisansı: Lisans anahtarınızı ironpdf.com adresinden edinin

NuGet Paket Değişiklikleri

# Crystal Reports for Visual Studio is not distributed by SAP on NuGet.
# Projects typically reference the GAC-installed CrystalDecisions.*.dll
# assemblies delivered by the CR4VS / CR runtime MSI. Community-maintained
# NuGet wrappers such as CrystalReports.Engine exist for build automation
# but are not official SAP packages.

# 1. Remove direct assembly references (CrystalDecisions.*.dll) from your .csproj
# 2. If using a community NuGet wrapper, remove it:
dotnet remove package CrystalReports.Engine

# 3. Uninstall the Crystal Reports runtime MSI from build/deploy targets

# 4. 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: SAP Crystal Reports
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using CrystalDecisions.ReportAppServer;

// After: IronPDF
using IronPdf;

Temel API Eşlemeleri

SAP Crystal ReportsIronPDFNotlar
ReportDocumentChromePdfRendererÇekirdek oluşturma
ReportDocument.Load()RenderHtmlAsPdf()İçerik yükle
.rpt dosyalarıHTML/CSSşablonlarıŞablon formatı
SetDataSource()Veri ile HTMLVeri bağlama
SetParameterValue()Dizi iç içe dizimiParametreler
ExportToDisk()pdf.SaveAs()Dosyayı kaydet
ExportToStream()pdf.BinaryDataBaytları al
PrintToPrinter()pdf.Print()Yazdırma
Database.TablesC# veri erişimiVeri kaynağı
FormulaFieldDefinitionsC# mantığıHesaplamalar
SummaryInfopdf.MetaDataPDF meta verileri
ExportFormatType.PortableDocFormatVarsayılan çıktıPDF yerel

Kod Göç Örnekleri

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

Önce (SAP Crystal Reports):

// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;

class Program
{
    static void Main()
    {
        // Crystal Reports requires a .rpt file template
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("Report.rpt");
        
        // Crystal Reports doesn't directly support HTML
        // You need to bind data to the report template
        // reportDocument.SetDataSource(dataSet);
        
        ExportOptions exportOptions = reportDocument.ExportOptions;
        exportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
        exportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
        
        DiskFileDestinationOptions diskOptions = new DiskFileDestinationOptions();
        diskOptions.DiskFileName = "output.pdf";
        exportOptions.DestinationOptions = diskOptions;
        
        reportDocument.Export();
        reportDocument.Close();
        reportDocument.Dispose();
    }
}

Sonrası (IronPDF):

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

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        
        string htmlContent = "<h1>Hello World</h1><p>This is a PDF generated from HTML.</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created successfully!");
    }
}

Bu örnek, temel paradigma farkını göstermektedir. SAP Crystal Reports, Crystal Reports Tasarımcısında oluşturulmuş önceden tasarlanmış bir .rpt dosya şablonu gerektirir, ardından ExportOptions, ExportDestinationType, ExportFormatType ve DiskFileDestinationOptions yapılandırmanız gerekir. Kütüphane doğrudan HTML içeriğini desteklemez—veriyi rapor şablonuna bağlamanız gerekir.

IronPDF, HTML dizgilerini doğrudan kabul eder: bir ChromePdfRenderer oluşturun, herhangi bir HTML içeriği ile RenderHtmlAsPdf() çağırın ve SaveAs(). Tasarımcı gerekmez, ikili şablon yok, karmaşık ihracat yapılandırması yok. Kapsamlı örnekler için HTML'den PDF'e dönüşüm belgelerine bakın.

Örnek 2: URL'den PDF'ye Dönüştürme

Önce (SAP Crystal Reports):

// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;
using System.Net;

class Program
{
    static void Main()
    {
        // Crystal Reports cannot directly convert URLs to PDF
        // You need to create a report template first
        
        // Download HTML content
        WebClient client = new WebClient();
        string htmlContent = client.DownloadString("https://example.com");
        
        // Crystal Reports requires .rpt template and data binding
        // This approach is not straightforward for URL conversion
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("WebReport.rpt");
        
        // Manual data extraction and binding required
        // reportDocument.SetDataSource(extractedData);
        
        reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, "output.pdf");
        reportDocument.Close();
        reportDocument.Dispose();
    }
}

Sonrası (IronPDF):

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

class Program
{
    static void Main()
    {
        // Create a PDF from a URL
        var renderer = new ChromePdfRenderer();
        
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created from URL successfully!");
    }
}

SAP Crystal Reports, URL'leri doğrudan PDF'e dönüştüremez. HTML içeriğini WebClient ile manuel olarak indirmeniz, ardından o verileri önceden tasarlanmış bir .rpt şablonuna çıkartmanız ve bağlamanız gerekecektir - bu, doğrudan olmayan ve önemli manuel çalışma gerektiren bir süreçtir.

IronPDF'nin RenderUrlAsPdf() yöntemi, tüm CSS,JavaScriptve resimler ile tam olarak oluşturulmuş web sayfasını tek bir çağrıyla yakalar. Daha fazla bilgiyi kılavuzlarımızda öğrenin.

Örnek 3: Sayfa Numaraları ile Başlıklar ve Alt Bilgiler

Önce (SAP Crystal Reports):

// NuGet: Install-Package CrystalReports.Engine
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
using System;

class Program
{
    static void Main()
    {
        // Crystal Reports requires design-time configuration
        ReportDocument reportDocument = new ReportDocument();
        reportDocument.Load("Report.rpt");
        
        // Headers and footers must be designed in the .rpt file
        // using Crystal Reports designer
        // You can set parameter values programmatically
        reportDocument.SetParameterValue("HeaderText", "Company Name");
        reportDocument.SetParameterValue("FooterText", "Page ");
        
        // Crystal Reports handles page numbers through formula fields
        // configured in the designer
        
        reportDocument.ExportToDisk(ExportFormatType.PortableDocFormat, "output.pdf");
        reportDocument.Close();
        reportDocument.Dispose();
    }
}

Sonrası (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        
        // Configure headers and footers
        renderer.RenderingOptions.TextHeader.CenterText = "Company Name";
        renderer.RenderingOptions.TextHeader.FontSize = 12;
        
        renderer.RenderingOptions.TextFooter.LeftText = "Confidential";
        renderer.RenderingOptions.TextFooter.RightText = "Page {page} of {total-pages}";
        renderer.RenderingOptions.TextFooter.FontSize = 10;
        
        string htmlContent = "<h1>Document Title</h1><p>Document content goes here.</p>";
        
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF with headers and footers created!");
    }
}

SAP Crystal Reports üstbilgi ve altbilgiler için tasarım zamanı yapılandırması gerektirir. Onları Crystal Reports Tasarımcısını kullanarak .rpt dosyasında tasarlamalı, ardından çalışma zamanında "HeaderText" ve "FooterText" gibi parametre değerlerini aktarmalısınız. Sayfa numaraları, tasarımcıdaki formül alanları aracılığıyla yapılandırılmalıdır.

IronPDF, TextHeader ve TextFooter özellikleri ile programlanabilir başlık/altbilgi yapılandırması sağlar. CenterText, LeftText, RightText ve FontSize doğrudan kod içerisinde ayarlayın. Sayfa numaraları, tasarımcı gerektirmeyen {page} ve {total-pages} yer tutucularını kullanır.


Yaygın Geçiş Sorunları

Sorun 1: .rpt Dosya Dönüşümü

SAP Crystal Reports: Gömülü düzen, veri, formüllere sahip ikili .rpt dosyaları.

Çözüm: Doğrudan dönüştürülemez—HTML olarak yeniden oluşturulmalıdır:

  1. Crystal Reports tasarımcısında .rpt açın
  2. Düzen, yazı tipleri, renkleri belgeleyin
  3. Tüm formül alanlarını not edin 4.HTML/CSSolarak yeniden oluşturun
  4. Formülleri C# koduna dönüştürün

Sorun 2: Veritabanı Bağlantıları

SAP Crystal Reports: Gömülü bağlantı dizeleri ve ODBC.

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

// Instead of Crystal's database integration
var data = await _dbContext.Orders
    .Where(o => o.Date >= startDate && o.Date <= endDate)
    .ToListAsync();

// Bind to HTML template
var html = GenerateReportHtml(data);

Sorun 3: Çalışma Zamanı Bağımlılıkları

SAP Crystal Reports: Crystal Reports Çalışma Zamanı kurulumunu gerektirir (500MB+).

**Çözüm:**IronPDF kendi kendine yeterlidir:

# Just add theNuGetpackage
dotnet add package IronPdf
# That's it - no additional installs needed
SHELL

Önem 4: 32-bit/64-bit ve .NET Framework Bağımlılığı

SAP Crystal Reports: Crystal Reports runtime, COM'ye bağımlıdır ve ayrı 32-bit ve 64-bit MSI'ler halinde gönderilir. SAP, 32-bit CR .NET runtime'ın SP 39'dan sonra (Aralık 2025) sonlandırıldığını onayladı; gelecek hizmet paketleri yalnızca 64-bittir. Runtime, .NET Framework 4.x'i hedeflemektedir ve.NET Core / .NET 5+altında yüklenemez.

Çözüm: IronPDF, .NET Framework 4.6.2+, .NET 6, .NET 8 ve .NET 9'da çalışır — Linux ve Docker dahil olmak üzere. 64-bit veya AnyCPU için özel bir yapılandırma gerekmemektedir.


Geçiş Sonrası Yeni Özellikler

IronPDF'ye geçiş yaptıktan sonra, SAP Crystal Reports'un sunamayacağı yetenekler kazanırsınız:

PDF Birleştirme

var pdf1 = PdfDocument.FromFile("report1.pdf");
var pdf2 = PdfDocument.FromFile("report2.pdf");
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("complete_report.pdf");

PDF Güvenliği

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf(reportHtml);

pdf.MetaData.Title = "Quarterly Sales Report";
pdf.MetaData.Author = "Finance Department";

pdf.SecuritySettings.OwnerPassword = "admin123";
pdf.SecuritySettings.UserPassword = "view123";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("secure_report.pdf");

Dijital İmzalar

var signature = new PdfSignature("certificate.pfx", "password");
pdf.Sign(signature);

Filigranlar

using IronPdf.Editing;

pdf.ApplyWatermark("<h1 style='color:red; opacity:0.3;'>DRAFT</h1>");

Özellik Karşılaştırması Özeti

ÖzellikSAP Crystal ReportsIronPDF
:Kurulum:
Kurulum YöntemiMSI + Visual Studio uzantısıNuGet
DağıtımHedef makinede MSI çalıştırınxcopy / yayımla
:Platform Desteği:
.NET Core / .NET 5+DesteklenmiyorEvet (.NET 6/8/9)
64-bit YerelEvet (32-bit SP 39'dan sonra sona erer, Aralık 2025)Evet
Linux / DockerDesteklenmiyor (sadece Windows)Evet
Azure / AWSSadece Windows VM'lerBasit
:Geliştirme:
Şablon Biçimi.rpt (ikili)HTML/CSS
Öğrenme EğrisiCrystal sözdizimiWeb standartları
IntelliSenseHayırTam C#
:Oluşturma:
URL'yi PDF'ye çevirHayırEvet
CSS DesteğiHayırTam CSS3
JavaScriptHayırTam ES2024
:PDF Özellikleri:
PDF AyırmaHayırEvet
FiligranlarSınırlıTam HTML
Dijital İmzalarHayırEvet
PDF/AHayırEvet

Geçiş Kontrol Listesi

Öncesi-Geçiş

  • Tüm .rpt dosyalarını envanterleyin
  • Her rapor düzenini referans için ekran görüntüsü alın
  • Formül alanları ve hesaplamaları belgeleyin
  • Tüm veri kaynaklarını ve parametrelerini listeleyin
  • Baskı gereksinimlerini belirleyin
  • ironpdf.com adresinden IronPDF lisans anahtarını edinin

Kod Güncellemeleri

  • Crystal Reports paketlerini (CrystalDecisions.CrystalReports.Engine, vb.) kaldırın
  • Dağıtımdan çalışma zamanı kurulumunu kaldırın
  • IronPdfNuGetpaketini yükleyin
  • .rpt düzenleriniHTML/CSSşablonlarına dönüştürün
  • Crystal formüllerini C# koduna dönüştürün
  • Veri bağlama işlemini SetDataSource()'den HTML dizgi interpolasyonuna güncelleyin
  • Yazdırma kodunu PrintToPrinter()'den pdf.Print()'ya güncelleyin
  • Uygulama başlangıcında lisans başlatma ekle

Altyapı

  • Crystal Çalışma Zamanını sunuculardan kaldırın
  • Dağıtım betiklerini güncelleyin
  • 32-bit uyumluluk modunu kaldırın
  • Docker görüntülerini güncelleyin (varsa)

Test Etme

  • PDF çıktısını orijinal raporlarla karşılaştırın
  • Tüm hesaplamaları doğrulayın
  • Tüm parametreleri test edin
  • Baskı işlevselliğini test edin
  • Performans testi yapın
  • 64-bit testi

SAP Crystal Reports, ilgili sahibi tarafından tescilli bir ticari markadır. Bu site SAP ile ilişkilendirilmemiştir, onun tarafından onaylanmamış veya desteklenmemiştir. Tüm ürün adları, logolar ve markalar ilgili sahiplerinin malıdır. 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