FastReport'tan IronPDF'e C# ile Nasıl Geçilir
FastReport.NET, .NET ekosistemi için inşa edilmiş güçlü bir raporlama çözümüdür ve karmaşık veri odaklı raporlar oluşturmak için görsel bir rapor tasarımcısına ve bant tabanlı bir mimariye sahiptir. Ancak, FastReport, modern PDF üretim iş akışları için önemli zorluklar sunar: kod ilk geliştirme gereksinimini sınırlayan rapor tasarımcısı bağımlılığı, bant tabanlı kavramlar (DataBand, PageHeaderBand) etrafında dik bir öğrenme eğrisi, özel formatlar kullanarak CSS desteği kısıtlı, RegisterData() şablonları ile karmaşık veri bağlama, çoklu kurulumlar gerektiren parçalı NuGet paketleri. Bu kapsamlı kılavuz, FastReport'tan IronPDF'ye adım adım bir geçiş yolu sunar—HTML/CSS web teknolojilerini kullanan esnek, programatik belge üretimi için genel bir PDF kütüphanesi.
FastReport'tan IronPDF'ye Neden Geçilmeli?
FastReport.NET raporlamada uzmanlaşmıştır ve farklı PDF üretimine ihtiyaç duyan geliştirme ekipleri için sürtüşme yaratır. Bu mimari farkları anlamak, göç planlamanız için esastır.
FastReportZorlukları
-
Rapor Tasarımcısı Bağımlılığı: Karmaşık düzenler oluşturmak, görsel tasarımcıyı ya da .frx dosya yapısının derin bilgisini gerektirir—kod ilk geliştirme yaklaşımları için uygun değildir.
-
Dik Öğrenme Eğrisi: FastReport'un bant tabanlı mimarisi (DataBand, PageHeaderBand, PageFooterBand), diğer teknolojilere aktarılamayan rapor özelinde kavramları anlamayı gerektirir.
-
Sınırlı CSS Desteği: Web-standart stilizasyon yerli olarak desteklenmez; stilizasyon, tanıdık CSS yerine FastReport'un özel formatı üzerinden yapılır.
-
Karmaşık Veri Bağlama: RegisterData() ve DataSource bağlantıları, basit PDF üretim senaryoları için şablon ekler.
-
Parçalı Paketler: Tam işlevsellik için birden fazla NuGet paketi gereklidir (FastReport.OpenSource, FastReport.OpenSource.Export.PdfSimple, vb.).
- Lisanslama Karmaşıklığı: Açık kaynak sürümü sınırlı özelliklere sahiptir; PDF şifreleme, dijital imzalama ve yazı tipi gömme için ticari sürüm gereklidir.
Mimari Karşılaştırma
| Bağlam | FastReport | IronPDF |
|---|---|---|
| Tasarim Yaklasimi | Gorsel tasarimci + .frx dosyalari | HTML/CSS (web teknolojileri) |
| Öğrenme Eğrisi | Dik (bant tabanli kavramlar) | Yumuskak (HTML/CSS bilgisi) |
| Veri Baglama | RegisterData(), DataBand | String interpolasyonu, Razor, sablonlama |
| CSS Desteği | Sınırlı | Flexbox/Grid ile tam CSS3 |
| Paket Modeli | Birden fazla paket | Tek paket (tüm özellikler) |
| Render Motoru | Ozel | En Son Chromium |
| PDF Manipulasyonu | Ihracat odakli | Tam (birlesme, bolme, guvenlik, formlar) |
| Modern .NET | .NET Standard 2.0 | .NET 6/7/8/9+ yerel |
Ana Geçiş Avantajları
- Web Teknolojileri: Tanıdık HTML/CSS kullanın, özel bant tabanlı yerleşimler yerine
- Kod-Önce Geliştirme: Görsel tasarımcı bağımlılığı olmadan programatik PDF üretin
- Tek Paket: Tüm PDF özelliklerini içeren bir NuGet paketi
- Modern Rendering: Piksel-hassas CSS3 çıktısı için en son Chromium motoru
- Tam PDF Manipülasyonu: Birleştirme, ayırma, güvenlik, formlar—sadece dışa aktarma değil
Önceden Taşıma Hazırlığı
Önkoşullar
Ortamınızın bu gereksinimlere uygun olduğunu doğrulayın:
- .NET Framework 4.6.2+ veya .NET Core 3.1 / .NET 5-9
- Visual Studio 2019+ veya C# uzantılı VS Code
- NuGet Paket Yöneticisi erişimi -IronPDFlisans anahtarı (ücretsiz deneme ironpdf.com adresinde mevcuttur)
FastReportKullanımı Denetlenmesi
FastReport referanslarını belirlemek için çözüm dizininizde bu komutları çalıştırın:
# Find allFastReportreferences
grep -r "FastReport\|\.frx\|PDFExport\|PDFSimpleExport\|DataBand\|RegisterData" --include="*.cs" --include="*.csproj" .
# Check NuGet packages
dotnet list package | grep FastReport
# Find allFastReportreferences
grep -r "FastReport\|\.frx\|PDFExport\|PDFSimpleExport\|DataBand\|RegisterData" --include="*.cs" --include="*.csproj" .
# Check NuGet packages
dotnet list package | grep FastReport
Rapor Şablonlarınızı Dökümante Edin
Goc oncesi, tüm .frx dosyalarini ve amaclarini kataloglayin:
- Rapor adı ve amacı
- Kullanılan veri kaynakları
- Başlık/altbilgi yapılandırması
- Sayfa numaralandırma gereksinimleri
- Özel formatlama veya stilizasyon
Paradigma Değişimini Anlamak
FastReport'tan IronPDF'ye geçişte en büyük değişiklik, temel tasarım yaklaşımıdır. FastReport, .frx sablon dosyalari ve DataBand, PageHeaderBand, RegisterData() gibi özgün kavramlarla bant tabanli gorunum tasarimi kullanir. IronPDF, çoğu geliştiricinin zaten bildiği web teknolojileri olan HTML/CSS kullanır.
Bu, FastReport'un bant yapılandırmalarını HTML şablonlarına dönüştürmek, RegisterData()'yı direkt veri bağlamasıyla değiştirmek ve PageHeaderBand/PageFooterBand'i HTML tabanlı başlık ve altbilgilere dönüştürmek anlamına gelir.
Adım Adım Geçiş Süreci
Adım 1: NuGet Paketlerini Güncelleyin
TümFastReportpaketlerini kaldırın ve IronPDF'yi yükleyin:
# Remove allFastReportpackages
dotnet remove package FastReport.OpenSource
dotnet remove package FastReport.OpenSource.Export.PdfSimple
dotnet remove package FastReport.OpenSource.Web
dotnet remove package FastReport.OpenSource.Data.MsSql
# InstallIronPDF(includes all features)
dotnet add package IronPdf
# Remove allFastReportpackages
dotnet remove package FastReport.OpenSource
dotnet remove package FastReport.OpenSource.Export.PdfSimple
dotnet remove package FastReport.OpenSource.Web
dotnet remove package FastReport.OpenSource.Data.MsSql
# InstallIronPDF(includes all features)
dotnet add package IronPdf
2. Adım: Namespace Referanslarını Güncelleyin
FastReport ad alanlarınıIronPDFile değiştirin:
// Remove these
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
// Add this
using IronPdf;
// Remove these
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
// Add this
using IronPdf;
Imports IronPdf
3. Adım: Lisansı Yapılandır
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Tam API Geçiş Referansı
Çekirdek Sınıf Eşleştirmesi
| FastReportSınıfı | IronPDF Eşdeğeri |
|---|---|
Report |
ChromePdfRenderer |
PDFExport |
ChromePdfRenderer + SecuritySettings |
PDFSimpleExport |
ChromePdfRenderer |
ReportPage |
HTML <body> veya <div> |
TextObject |
HTML <p>, <span>, <div> |
HTMLObject |
Dogrudan HTML rendering |
PageHeaderBand |
HtmlHeaderFooter |
PageFooterBand |
HtmlHeaderFooter |
Yöntem Eşleştirme
| FastReportMetodu | IronPDF Eşdeğeri |
|---|---|
report.Load("template.frx") |
HTML şablon dosyası veya dize |
report.RegisterData(data, "name") |
Dize interpolasyonu veya Razor |
report.Prepare() |
N/A |
report.Export(export, stream) |
pdf.SaveAs(path) |
Sayfa Numarası Yer Tutucu Dönüşümü
FastReport veIronPDFfarklı sayfa numarası sözdizimi kullanır:
| FastReport | IronPDF |
|---|---|
[Page] |
{page} |
[TotalPages] |
{total-pages} |
Kod Geçiş Örnekleri
HTML'den PDF'ye Dönüşüm
Bu örnek, FastReport'un HTMLObject yaklaşımı ile IronPDF'nin direkt renderi arasındaki temel farkı gösterir.
FastReport Uygulaması:
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
class Program
{
static void Main()
{
using (Report report = new Report())
{
// Create HTML object
FastReport.HTMLObject htmlObject = new FastReport.HTMLObject();
htmlObject.Width = 500;
htmlObject.Height = 300;
htmlObject.Text = "<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>";
// Prepare report
report.Prepare();
// Export to PDF
PDFSimpleExport pdfExport = new PDFSimpleExport();
using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
{
report.Export(pdfExport, fs);
}
}
}
}
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
class Program
{
static void Main()
{
using (Report report = new Report())
{
// Create HTML object
FastReport.HTMLObject htmlObject = new FastReport.HTMLObject();
htmlObject.Width = 500;
htmlObject.Height = 300;
htmlObject.Text = "<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>";
// Prepare report
report.Prepare();
// Export to PDF
PDFSimpleExport pdfExport = new PDFSimpleExport();
using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
{
report.Export(pdfExport, fs);
}
}
}
}
Imports FastReport
Imports FastReport.Export.PdfSimple
Imports System.IO
Class Program
Shared Sub Main()
Using report As New Report()
' Create HTML object
Dim htmlObject As New FastReport.HTMLObject()
htmlObject.Width = 500
htmlObject.Height = 300
htmlObject.Text = "<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>"
' Prepare report
report.Prepare()
' Export to PDF
Dim pdfExport As New PDFSimpleExport()
Using fs As New FileStream("output.pdf", FileMode.Create)
report.Export(pdfExport, fs)
End Using
End Using
End Sub
End Class
IronPDF Uygulaması:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>");
pdf.SaveAs("output.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>");
pdf.SaveAs("output.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>")
pdf.SaveAs("output.pdf")
End Sub
End Class
FastReport, bir Rapor nesnesi, sabit boyutlu bir HTMLObject oluşturmaya, raporu hazırlamaya ve stream üzerinden dışa aktarmaya ihtiyaç duyar—kullanma ifadeleriyle yedi satır kod. IronPDF, aynı sonucu üç satırda doğrudan HTML renderi ile ulaştırır. Daha fazla seçenek icin HTML'den PDF'ye belgelerini gorun.
URL'den PDF'ye Dönüşüm
Bu örnek, FastReport'un manuel HTML indirme gerektirirken IronPDF'nin URL renderini yerel olarak nasıl yönettiğini vurgular.
FastReport Uygulaması:
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
using System.Net;
class Program
{
static void Main()
{
// Download HTML content from URL
string htmlContent;
using (WebClient client = new WebClient())
{
htmlContent = client.DownloadString("https://example.com");
}
using (Report report = new Report())
{
FastReport.HTMLObject htmlObject = new FastReport.HTMLObject();
htmlObject.Width = 800;
htmlObject.Height = 600;
htmlObject.Text = htmlContent;
report.Prepare();
PDFSimpleExport pdfExport = new PDFSimpleExport();
using (FileStream fs = new FileStream("webpage.pdf", FileMode.Create))
{
report.Export(pdfExport, fs);
}
}
}
}
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
using System.Net;
class Program
{
static void Main()
{
// Download HTML content from URL
string htmlContent;
using (WebClient client = new WebClient())
{
htmlContent = client.DownloadString("https://example.com");
}
using (Report report = new Report())
{
FastReport.HTMLObject htmlObject = new FastReport.HTMLObject();
htmlObject.Width = 800;
htmlObject.Height = 600;
htmlObject.Text = htmlContent;
report.Prepare();
PDFSimpleExport pdfExport = new PDFSimpleExport();
using (FileStream fs = new FileStream("webpage.pdf", FileMode.Create))
{
report.Export(pdfExport, fs);
}
}
}
}
Imports FastReport
Imports FastReport.Export.PdfSimple
Imports System.IO
Imports System.Net
Class Program
Shared Sub Main()
' Download HTML content from URL
Dim htmlContent As String
Using client As New WebClient()
htmlContent = client.DownloadString("https://example.com")
End Using
Using report As New Report()
Dim htmlObject As New FastReport.HTMLObject()
htmlObject.Width = 800
htmlObject.Height = 600
htmlObject.Text = htmlContent
report.Prepare()
Dim pdfExport As New PDFSimpleExport()
Using fs As New FileStream("webpage.pdf", FileMode.Create)
report.Export(pdfExport, fs)
End Using
End Using
End Sub
End Class
IronPDF Uygulaması:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("webpage.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
static void Main()
{
var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderUrlAsPdf("https://example.com");
pdf.SaveAs("webpage.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = New ChromePdfRenderer()
Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
pdf.SaveAs("webpage.pdf")
End Sub
End Class
FastReport, WebClient ile manuel olarak HTML içeriğini indirip, sabit boyutlu bir HTMLObject'e yerleştirmeyi gerektirir—bu, JavaScript çalıştırmayı veya göreli kaynak URL'lerini düzgün yönetemeyen bir geçici çözüm. IronPDF'nin RenderUrlAsPdf, Chromium motorunu kullanarak JavaScript'in tam calistirilmasiyla canli web sayfasini dogrudan gösterir. Daha fazla seçenek icin URL to PDF dokümantasyonuna bakin.
Sayfa Numaralı Başlıklar ve Alt Bilgiler
Bu örnek, FastReport'un bant tabanlı sistemi ile IronPDF'nin HTML tabanlı yaklaşımı arasındaki karmaşıklık farkını gösterir.
FastReport Uygulaması:
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
class Program
{
static void Main()
{
using (Report report = new Report())
{
report.Load("template.frx");
// Set report page properties
FastReport.ReportPage page = report.Pages[0] as FastReport.ReportPage;
// Add page header
FastReport.PageHeaderBand header = new FastReport.PageHeaderBand();
header.Height = 50;
FastReport.TextObject headerText = new FastReport.TextObject();
headerText.Text = "Document Header";
header.Objects.Add(headerText);
page.Bands.Add(header);
// Add page footer
FastReport.PageFooterBand footer = new FastReport.PageFooterBand();
footer.Height = 50;
FastReport.TextObject footerText = new FastReport.TextObject();
footerText.Text = "Page [Page]";
footer.Objects.Add(footerText);
page.Bands.Add(footer);
report.Prepare();
PDFSimpleExport pdfExport = new PDFSimpleExport();
using (FileStream fs = new FileStream("report.pdf", FileMode.Create))
{
report.Export(pdfExport, fs);
}
}
}
}
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
class Program
{
static void Main()
{
using (Report report = new Report())
{
report.Load("template.frx");
// Set report page properties
FastReport.ReportPage page = report.Pages[0] as FastReport.ReportPage;
// Add page header
FastReport.PageHeaderBand header = new FastReport.PageHeaderBand();
header.Height = 50;
FastReport.TextObject headerText = new FastReport.TextObject();
headerText.Text = "Document Header";
header.Objects.Add(headerText);
page.Bands.Add(header);
// Add page footer
FastReport.PageFooterBand footer = new FastReport.PageFooterBand();
footer.Height = 50;
FastReport.TextObject footerText = new FastReport.TextObject();
footerText.Text = "Page [Page]";
footer.Objects.Add(footerText);
page.Bands.Add(footer);
report.Prepare();
PDFSimpleExport pdfExport = new PDFSimpleExport();
using (FileStream fs = new FileStream("report.pdf", FileMode.Create))
{
report.Export(pdfExport, fs);
}
}
}
}
Imports FastReport
Imports FastReport.Export.PdfSimple
Imports System.IO
Class Program
Shared Sub Main()
Using report As New Report()
report.Load("template.frx")
' Set report page properties
Dim page As FastReport.ReportPage = TryCast(report.Pages(0), FastReport.ReportPage)
' Add page header
Dim header As New FastReport.PageHeaderBand()
header.Height = 50
Dim headerText As New FastReport.TextObject()
headerText.Text = "Document Header"
header.Objects.Add(headerText)
page.Bands.Add(header)
' Add page footer
Dim footer As New FastReport.PageFooterBand()
footer.Height = 50
Dim footerText As New FastReport.TextObject()
footerText.Text = "Page [Page]"
footer.Objects.Add(footerText)
page.Bands.Add(footer)
report.Prepare()
Dim pdfExport As New PDFSimpleExport()
Using fs As New FileStream("report.pdf", FileMode.Create)
report.Export(pdfExport, fs)
End Using
End Using
End Sub
End Class
IronPDF Uygulaması:
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
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("<html><body><h1>Report Content</h1><p>This is the main content.</p></body></html>");
pdf.SaveAs("report.pdf");
}
}
// NuGet: Install-Package IronPdf
using IronPdf;
class Program
{
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("<html><body><h1>Report Content</h1><p>This is the main content.</p></body></html>");
pdf.SaveAs("report.pdf");
}
}
Imports IronPdf
Class Program
Shared Sub Main()
Dim renderer = 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("<html><body><h1>Report Content</h1><p>This is the main content.</p></body></html>")
pdf.SaveAs("report.pdf")
End Sub
End Class
FastReport, bir şablon dosyasını yüklemeyi, sayfa nesnelerini dönüştürmeyi, bant nesneleri oluşturmayı, yükseklik ayarlamayı, metin nesneleri oluşturmayı, bant koleksiyonlarına eklemeyi ve bantları sayfalara eklemeyi gerektirir. IronPDF, basit HTML parcaciklari ile HtmlHeaderFooter kullanir—ustbilgi ve altbilgiyi tam CSS ile stillendirebilirsiniz. Sayfa numarasi sözdizimi değişikligine dikkat edin: [Page], {page} olur ve [TotalPages], {total-pages} olur. Daha fazla seçenek için bkz. başlıklar ve altbilgiler belgeleri.
Kritik Geçiş Notları
Hiçbir .frx Şablon Dosyası Yok
FastReport şablonları (.frx),IronPDFile çalışmayacak. Yerleşimlerinizi HTML/CSS şablonlarına dönüştürün:
//FastReport- loads .frx template
report.Load("report.frx");
//IronPDF- use HTML template
var html = File.ReadAllText("template.html");
var pdf = renderer.RenderHtmlAsPdf(html);
//FastReport- loads .frx template
report.Load("report.frx");
//IronPDF- use HTML template
var html = File.ReadAllText("template.html");
var pdf = renderer.RenderHtmlAsPdf(html);
' FastReport - loads .frx template
report.Load("report.frx")
' IronPDF - use HTML template
Dim html As String = File.ReadAllText("template.html")
Dim pdf = renderer.RenderHtmlAsPdf(html)
Veri Bağlama Dönüşümü
RegisterData()'yı direkt HTML üretimi ile değiştirin:
// FastReport
report.RegisterData(dataSet, "Data");
report.GetDataSource("Data").Enabled = true;
//IronPDF- use string interpolation or StringBuilder
var html = new StringBuilder();
foreach (var item in data)
{
html.Append($"<tr><td>{item.Name}</td><td>{item.Value}</td></tr>");
}
var pdf = renderer.RenderHtmlAsPdf(html.ToString());
// FastReport
report.RegisterData(dataSet, "Data");
report.GetDataSource("Data").Enabled = true;
//IronPDF- use string interpolation or StringBuilder
var html = new StringBuilder();
foreach (var item in data)
{
html.Append($"<tr><td>{item.Name}</td><td>{item.Value}</td></tr>");
}
var pdf = renderer.RenderHtmlAsPdf(html.ToString());
Imports System.Text
' FastReport
report.RegisterData(dataSet, "Data")
report.GetDataSource("Data").Enabled = True
' IronPDF - use string interpolation or StringBuilder
Dim html As New StringBuilder()
For Each item In data
html.Append($"<tr><td>{item.Name}</td><td>{item.Value}</td></tr>")
Next
Dim pdf = renderer.RenderHtmlAsPdf(html.ToString())
Güvenlik Ayarları
//IronPDFsecurity
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "password";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
//IronPDFsecurity
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "password";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
'IronPDFsecurity
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SecuritySettings.UserPassword = "password"
pdf.SecuritySettings.OwnerPassword = "ownerPassword"
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights
Kapsamlı güvenlik seçenekleri için şifreleme belgelerine bakın.
Göç Sonrası Kontrol Listesi
Kod göçünü tamamladıktan sonra, aşağıdakileri doğrulayın:
- Oluşturulan PDF'lerin görsel karşılaştırması
- Başlıklar/Altbilgiler ve sayfa numaralarını doğrulayın
- Üretim veri hacimleri ile test edin
- Güvenlik/şifreleme özelliklerini doğrulayın
- Performans kıyaslaması
- Kullanılmamış .frx şablon dosyalarını silin -FastReportile ilgili kodları silin
- Belgeleri güncelleyin
PDF Altyapınızı Geleceğe Hazırlama
.NET 10'ın ufukta olduğu ve C# 14'ün yeni dil özellikleri getirdiği bu dönemde, modern web teknolojilerini kucaklayan bir PDF kütüphanesi seçmek, uzun dönem bakımı garanti eder. IronPDF'nin HTML/CSS yaklaşımı, şablonlarınızın web geliştiriminde kullanılan aynı becerilerden faydalanması anlamına gelir—diğer teknolojilere aktarılamayan özel bant tabanlı kavramlar yok. Projeler 2025 ve 2026'ya uzadıkça, Flexbox ve Grid gibi CSS3 özelliklerine sahip standart HTML şablonlarını kullanma yeteneği, FastReport'un özel formatlamasının eşleşemeyeceği bir tasarım esnekliği sağlar.
Ek Kaynaklar
FastReport'tan IronPDF'ye geçiş, görsel tasarımcı bağımlılığını, bant tabanlı öğrenme eğrisini ve parçalı paket modelini ortadan kaldırır. HTML/CSS tabanlı PDF üretimine geçiş, belirli web teknolojilerini kullanırken, tam PDF manipülasyon yetenekleri sunar: birleştirme, ayırma, güvenlik ve formlar—tek bir pakette.

