Altbilgi içeriğine atla
IRONPDF KULLANARAK

C#'da PDF Dosyalarını Okuma

Raporlar, verileri yapılandırılmış ve görsel olarak çekici bir formatta sunmak için gereklidir. Bu, satış verileri, analizler veya finansal özetler olsun, web uygulamalarında rapor oluşturma yaygındır. Microsoft, Web Forms Report Viewer Control kullanarak web uygulamalarına entegre edilebilen RDLC rapor hizmetleri sağlar. Ancak, süreç genellikle karmaşık ve zaman alıcı olabilir.

IronPDF'in burada devreye girdiği yer burasıdır. IronPDF, ASP.NET ve diğer web çerçevelerinde PDF raporları oluşturmayı basitleştiren, güçlü özellikler sunan ve kullanımı kolay bir çok yönlü kütüphanedir. Bu makalede, IronPDF kullanarak ASP.NET'de bir rapor oluşturmanın nasıl olacağını inceleyeceğiz.

ASP.NET İçin Rapor Nasıl Oluşturulur

  1. Visual Studio kullanarak bir ASP.NET Web Uygulaması oluşturun
  2. IronPDF ve IronPdf.Extensions.MVC.Core yükleyin
  3. Genç görev göndericisini oluşturmak için ChromePdfRenderer nesnesini oluşturun
  4. Görünümden PDF'ye dönüştürmek için RenderRazorViewToPdf yöntemini çağırın
  5. Response.Headers.Append kullanarak "Content-Disposition" ekleyin
  6. Bir PDF.BinaryData methodu ile Dosya kullanarak bir Rapor oluşturun

IronPDF'ye Giriş

IronPDF, ASP.NET ve diğer web çerçevelerinde PDF belgeleri oluşturmayı basitleştiren çok yönlü bir kütüphanedir. Zengin özellik seti ve sezgisel API'leri sayesinde, dinamik raporlar, faturalar, makbuzlar ve daha fazlasını doğrudan web uygulamalarından oluşturmak isteyen geliştiriciler için ideal bir seçimdir. IronPDF ile, geliştiriciler HTML, CSS ve hatta Razor görünümlerini yüksek kaliteli PDF belgelerine zahmetsizce dönüştürebilir, bu da raporlama işlevselliğinin ASP.NET projelerine sorunsuz bir şekilde entegrasyonunu sağlar.

IronPDF Özellikleri

  • HTML'den PDF'ye Dönüştürme: CSS stiller de dahil olmak üzere HTML içeriğini kolayca yüksek kaliteli PDF belgelerine dönüştürün.
  • PDF Düzenleme: Metin ekleyerek veya kaldırarak, resimler ve açıklamalar yaparak mevcut PDF belgelerini değiştirin.
  • PDF Formu Doldurma: PDF formlarını, web uygulamanızdan alınan verilerle dinamik olarak doldurun.
  • Barkod Oluşturma: PDF belgelerinde ürün etiketleri veya envanter takibi için barkodlar ve QR kodlar oluşturun.
  • Filigran Ekleme: Gizli bilgileri korumak veya belgeleri markalamak için PDF sayfalarına filigranlar ekleyin.
  • Şifreleme ve Güvenlik: PDF belgelerini şifreleme, parolalar ve izin ayarları ile güvence altına alın.

Gereksinimler

Başlamadan önce, aşağıdaki ön koşullara sahip olduğunuzdan emin olun:

  • ASP.NET geliştirme hakkında temel bilgi.
  • Makinenize Visual Studio kurulu olmalıdır.
  • IronPDF ve IronPdf.Extensions.Mvc.Core

Visual Studio'da ASP.NET Projesi Oluşturma Adımları

  1. Visual Studio'yu açın ve yeni bir ASP.NET Core projesi oluşturun.
  2. İstediğiniz proje şablonunu seçin (örneğin, MVC veya Razor Pages).

ASP .NET'te Rapor Nasıl Oluşturulur: Şekil 1

  1. Proje ayarlarını, örneğin proje adı, konumu ve çerçeve sürümünü yapılandırın.

ASP .NET'te Rapor Nasıl Oluşturulur: Şekil 2

  1. Proje yapısını oluşturmak için "Create"'ye tıklayın.

IronPDF ve IronPdf.Extensions.Mvc.Core'un Kurulumu

Şimdi, NuGet Paket Yöneticisi'ni kullanarak IronPDF ve MVC genişletme paketini yükleyelim:

  1. Çözüm Gezgini'ne sağ tıklayarak Çözümler için NuGet Paket Yöneticisi'ni açın.
  2. "IronPDF" ve "IronPdf.Extensions.Mvc.Core" tuşlarını arayın.

ASP .NET'te Rapor Nasıl Oluşturulur: Şekil 3

  1. Her iki paketi de çözümünüze yükleyin.

ASP.NET Web Uygulamasında Rapor Görüntüleyici Oluşturma Adımları

Şimdi, ASP.NET projemizde IronPDF kullanarak bir PDF raporu oluşturmak için adımlara geçelim. Görünümü bir rapora dönüştürmeden önce, yeni bir raporu PDF formatında oluşturup indirmek için bir Veri modeline, Görünüme ve Denetleyiciye gereksinimimiz var.

Adım 1: Bir Model Sınıfı Tanımlayın

İlk olarak, satış verilerini temsil etmek için bir model sınıfı (SalesModel.cs) oluşturun. Bu örnek SalesModel sınıfı, Tarih, Ürün Adı, Miktar, Birim Fiyat ve Toplam Tutar gibi özellikleri içerecektir. Bu, Microsoft SQL Server veya MySQL Server gibi bir veri kaynağından bilgi almak için kullanışlıdır.

namespace ReportGenerator.Models
{
    public class SalesModel
    {
        public DateTime Date { get; set; }
        public string ProductName { get; set; }
        public int Quantity { get; set; }
        public decimal UnitPrice { get; set; }
        public decimal TotalAmount => Quantity * UnitPrice;
    }
}
namespace ReportGenerator.Models
{
    public class SalesModel
    {
        public DateTime Date { get; set; }
        public string ProductName { get; set; }
        public int Quantity { get; set; }
        public decimal UnitPrice { get; set; }
        public decimal TotalAmount => Quantity * UnitPrice;
    }
}
Namespace ReportGenerator.Models
	Public Class SalesModel
		Public Property [Date]() As DateTime
		Public Property ProductName() As String
		Public Property Quantity() As Integer
		Public Property UnitPrice() As Decimal
		Public ReadOnly Property TotalAmount() As Decimal
			Get
				Return Quantity * UnitPrice
			End Get
		End Property
	End Class
End Namespace
$vbLabelText   $csharpLabel

Adım 2: Yeni Bir Web Form Görünümü Oluşturun

Bir sonraki adım olarak, satış verilerini tablo formatında görüntülemek ve PDF raporu oluşturmak için bir düğme sağlamak amacıyla bir Razor görünümü (Sales.cshtml) oluşturun.


@model List<SalesModel>
<!DOCTYPE html>
<html>
<head>
    <title>Sales Report</title>
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
        }
        th, td {
            border: 1px solid #dddddd;
            text-align: left;
            padding: 8px;
        }
        th {
            background-color: #f2f2f2;
        }
    </style>
</head>
<body>
    <h2>Sales Report</h2>
    <table>
        <tr>
            <th>Date</th>
            <th>Product Name</th>
            <th>Quantity</th>
            <th>Unit Price</th>
            <th>Total Amount</th>
        </tr>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.Date.ToShortDateString()</td>
                <td>@item.ProductName</td>
                <td>@item.Quantity</td>
                <td>@item.UnitPrice.ToString("C")</td>
                <td>@item.TotalAmount.ToString("C")</td>
            </tr>
        }
    </table>
    <br />
    @using (Html.BeginForm("GeneratePdf", "Sales", FormMethod.Post))
    {
        <button type="submit">Generate PDF Report</button>
    }
</body>
</html>

@model List<SalesModel>
<!DOCTYPE html>
<html>
<head>
    <title>Sales Report</title>
    <style>
        table {
            border-collapse: collapse;
            width: 100%;
        }
        th, td {
            border: 1px solid #dddddd;
            text-align: left;
            padding: 8px;
        }
        th {
            background-color: #f2f2f2;
        }
    </style>
</head>
<body>
    <h2>Sales Report</h2>
    <table>
        <tr>
            <th>Date</th>
            <th>Product Name</th>
            <th>Quantity</th>
            <th>Unit Price</th>
            <th>Total Amount</th>
        </tr>
        @foreach (var item in Model)
        {
            <tr>
                <td>@item.Date.ToShortDateString()</td>
                <td>@item.ProductName</td>
                <td>@item.Quantity</td>
                <td>@item.UnitPrice.ToString("C")</td>
                <td>@item.TotalAmount.ToString("C")</td>
            </tr>
        }
    </table>
    <br />
    @using (Html.BeginForm("GeneratePdf", "Sales", FormMethod.Post))
    {
        <button type="submit">Generate PDF Report</button>
    }
</body>
</html>
HTML

Şimdi, _Layout.cshtml dosyasında Görünümler->Paylaşılan klasöründe bulunan Satış'ı menü öğesi olarak ekleyerek bir rapor sihirbazı görünümü oluşturun:

<!— Layout.cshtml —>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-controller="Sales" asp-action="Sales">Sales</a>
</li>
<!— Layout.cshtml —>
<li class="nav-item">
    <a class="nav-link text-dark" asp-area="" asp-controller="Sales" asp-action="Sales">Sales</a>
</li>
HTML

ASP .NET'te Rapor Nasıl Oluşturulur: Şekil 4

Adım 3: Görünüm Render Servisi Kaydını Yapma

Bağımlılık enjeksiyonunun düzgün çalışması için Program.cs dosyasına görünüm render servisinin kaydının eklenmesi önemlidir. Program.cs dosyasına IRazorViewRenderer servisinin kaydını yapmak için aşağıdaki kodu ekleyin:

// Register the IRazorViewRenderer service
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
// Register the IRazorViewRenderer service
builder.Services.AddSingleton<IRazorViewRenderer, RazorViewRenderer>();
' Register the IRazorViewRenderer service
builder.Services.AddSingleton(Of IRazorViewRenderer, RazorViewRenderer)()
$vbLabelText   $csharpLabel

Adım 4: Web API Denetleyici Sınıfını Uygulama

Denetleyiciye (SalesController.cs) eylemleri işleyen satış görünümünü uygulayın ve PDF raporunu oluşturun. Denetleyici oluşturucusuna IronPDF tarafından sağlanan IRazorViewRenderer servisini enjekte edin.

using ReportGenerator.Models;
namespace ReportGenerator.Controllers
{
    public class SalesController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        private readonly List<SalesModel> salesData;

        public SalesController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
            // Example data with sales information
            salesData = new List<SalesModel>
            {
                new SalesModel { Date = DateTime.Parse("2024-03-01"), ProductName = "Product A", Quantity = 10, UnitPrice = 50.00m },
                new SalesModel { Date = DateTime.Parse("2024-03-02"), ProductName = "Product B", Quantity = 15, UnitPrice = 40.00m },
                new SalesModel { Date = DateTime.Parse("2024-03-03"), ProductName = "Product C", Quantity = 20, UnitPrice = 30.00m }
                // Add more data as needed
            };
        }

        public IActionResult Sales()
        {
            // Renders the sales view with the sales data
            return View(salesData);
        }
    }
}
using ReportGenerator.Models;
namespace ReportGenerator.Controllers
{
    public class SalesController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        private readonly List<SalesModel> salesData;

        public SalesController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
            // Example data with sales information
            salesData = new List<SalesModel>
            {
                new SalesModel { Date = DateTime.Parse("2024-03-01"), ProductName = "Product A", Quantity = 10, UnitPrice = 50.00m },
                new SalesModel { Date = DateTime.Parse("2024-03-02"), ProductName = "Product B", Quantity = 15, UnitPrice = 40.00m },
                new SalesModel { Date = DateTime.Parse("2024-03-03"), ProductName = "Product C", Quantity = 20, UnitPrice = 30.00m }
                // Add more data as needed
            };
        }

        public IActionResult Sales()
        {
            // Renders the sales view with the sales data
            return View(salesData);
        }
    }
}
Imports ReportGenerator.Models
Namespace ReportGenerator.Controllers
	Public Class SalesController
		Inherits Controller

		Private ReadOnly _viewRenderService As IRazorViewRenderer
		Private ReadOnly salesData As List(Of SalesModel)

		Public Sub New(ByVal viewRenderService As IRazorViewRenderer)
			_viewRenderService = viewRenderService
			' Example data with sales information
			salesData = New List(Of SalesModel) From {
				New SalesModel With {
					.Date = DateTime.Parse("2024-03-01"),
					.ProductName = "Product A",
					.Quantity = 10,
					.UnitPrice = 50.00D
				},
				New SalesModel With {
					.Date = DateTime.Parse("2024-03-02"),
					.ProductName = "Product B",
					.Quantity = 15,
					.UnitPrice = 40.00D
				},
				New SalesModel With {
					.Date = DateTime.Parse("2024-03-03"),
					.ProductName = "Product C",
					.Quantity = 20,
					.UnitPrice = 30.00D
				}
			}
		End Sub

		Public Function Sales() As IActionResult
			' Renders the sales view with the sales data
			Return View(salesData)
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Yukarıdaki kodda, oluşturucu içindeki IRazorViewRenderer servisi özel _viewRenderService alanına atanır. Ayrıca, denetleyici, satış bilgilerinin gösterim amaçlı olduğu bir SalesModel sınıfı örneklerinden oluşan salesData adlı bir liste başlatır.

Sales() eylem metodu, modeli salesData listesini geçerek "Sales" adlı bir görünüm döndürür. Bu eylem, ilişkili görünümde satış verilerini işlemekten sorumludur, kullanıcılara satış bilgilerini tablo formatında veya istenen başka bir düzenle görselleştirme imkanı sağlar.

ASP .NET'te Rapor Nasıl Oluşturulur: Şekil 5

Adım 5: PDF Raporu Oluşturma

GeneratePdf eyleminde, IronPDF'nin ChromePdfRenderer kullanarak Razor görünümünü bir PDF Rapordakümanına dönüştürün. Uygun yanıt başlıklarını ayarlayın ve PDF dosyasını istemciye geri döndürün.

public FileContentResult GeneratePdf()
{
    // Set license key for IronPDF
    License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

    // Initialize the ChromePdfRenderer
    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Render the Sales Razor view to a PDF document
    PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);

    // Set HTTP response header to display the PDF inline
    Response.Headers.Append("Content-Disposition", "inline");

    // Return the PDF document as a FileContentResult
    return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
}
public FileContentResult GeneratePdf()
{
    // Set license key for IronPDF
    License.LicenseKey = "YOUR-LICENSE-KEY-HERE";

    // Initialize the ChromePdfRenderer
    ChromePdfRenderer renderer = new ChromePdfRenderer();

    // Render the Sales Razor view to a PDF document
    PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);

    // Set HTTP response header to display the PDF inline
    Response.Headers.Append("Content-Disposition", "inline");

    // Return the PDF document as a FileContentResult
    return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
}
Public Function GeneratePdf() As FileContentResult
	' Set license key for IronPDF
	License.LicenseKey = "YOUR-LICENSE-KEY-HERE"

	' Initialize the ChromePdfRenderer
	Dim renderer As New ChromePdfRenderer()

	' Render the Sales Razor view to a PDF document
	Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData)

	' Set HTTP response header to display the PDF inline
	Response.Headers.Append("Content-Disposition", "inline")

	' Return the PDF document as a FileContentResult
	Return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf")
End Function
$vbLabelText   $csharpLabel

Yukarıdaki kodun çalışma mantığını detaylı olarak inceleyelim:

  1. Lisans Anahtarı Kurulumu:
    • License.LicenseKey = "LİSANS-ANAHTARINIZ-BURADA";
    • Bu satır, IronPDF için gereken lisans anahtarını ayarlar. IronPDF işlevlerini uygulama içinde kullanmak için gereklidir.
  2. Renderer Başlatma:
    • ChromePdfRenderer renderer = new ChromePdfRenderer();
    • Bir ChromePdfRenderer örneği oluşturulmuştur. Bu renderer, Chromium tarayıcı motorunu kullanarak Razor görünümlerini PDF formatına dönüştürmekten sorumludur.
  3. Görünümü PDF'ye Render Etme:
    • PdfDocument PDF = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Sales/Sales.cshtml", salesData);
    • ChromePdfRenderer'in RenderRazorViewToPdf() yöntemi, belirtilen Razor görünümünü (Views/Sales/Sales.cshtml) bir PDF belgesine render etmek için çağrılır. salesData değişkeni, görünüm için model olarak görev yapar.
  4. Content-Disposition Başlığı:
    • Response.Headers.Append("Content-Disposition", "inline");
    • HTTP yanıt başlığı Content-Disposition "inline" olarak ayarlanmıştır. Bu, tarayıcıyı PDF içeriğini doğrudan görüntüleyerek raporları tarayıcı penceresinde veya sekmesinde açıldığında görüntülenebilecek şekilde yönlendirir.
  5. PDF Dosyasını Geri Döndürme:
    • return File(pdf.BinaryData, "application/pdf", "SalesReport.pdf");
    • PDF belgesi içeriği bir FileContentResult olarak döndürülür. Bu, PDF'in ikili verilerini (pdf.BinaryData) içerir, MIME türünü "application/pdf" olarak belirtir ve "SalesReport.pdf" olarak dosya adını önerir.

Genel olarak, bu yöntem, Razor görünümünden bir PDF raporu oluşturma sürecini verimli bir şekilde organize eder, ASP.NET uygulaması içinde entegrasyonunu geliştirmek için uygun hale getirir.

ASP .NET'te Rapor Nasıl Oluşturulur: Şekil 6

IronPDF'nin PDF raporlama üretimi ve diğer PDF ile ilgili görevleri kolaylaştırdığı hakkında detaylı bilgi için, lütfen belgeler sayfasını ziyaret edin.

Sonuç

Bu makalede, IronPDF'nin ASP.NET uygulamalarında PDF raporları oluşturma sürecini nasıl basitleştirdiğini inceledik. Yukarıda sağlanan adım adım rehberi izleyerek ASP.NET projelerinize IronPDF'yi hızla entegre edebilir ve kolaylıkla dinamik PDF raporları oluşturabilirsiniz.

Zengin özellik seti ve sorunsuz entegrasyonu ile IronPDF, geliştiricilerin kullanıcılarının ve işlerinin ihtiyaçlarını karşılayan profesyonel kalitede raporlar oluşturmasını sağlar.

IronPDF, bir ücretsiz deneme sunuyor. Kütüphaneyi buradan indirin ve deneyin.

Sıkça Sorulan Sorular

ASP.NET'te bir PDF raporunu nasıl üretebilirim?

IronPDF kullanarak ASP.NET'te bir PDF raporu oluşturabilirsiniz. Başlamak için Visual Studio'da bir ASP.NET web uygulaması kurun, ardından IronPDF ve MVC uzantısını yükleyin. ChromePdfRenderer sınıfını kullanarak Razor görünümlerini PDF'lere dönüştürün ve rapor oluşturmak için File yöntemini kullanın.

ASP.NET için bir PDF kütüphanesi kullanmanın faydaları nelerdir?

ASP.NET için IronPDF gibi bir PDF kütüphanesi kullanmak, PDF raporlarını oluşturma ve yönetme sürecini basitleştirir. HTML'den PDF'ye dönüştürme, PDF düzenleme, form doldurma, barkod oluşturma ve belge güvenliği gibi çeşitli web uygulaması ihtiyaçlarına yönelik destek sunar.

ASP.NET'te Razor görünümlerini PDF'ye nasıl dönüştürürüm?

ASP.NET'te Razor görünümlerini PDF'ye dönüştürmek için IronPDF'nin ChromePdfRenderer.RenderRazorViewToPdf yöntemini kullanabilirsiniz. Bu, PDF oluşturmayı ASP.NET uygulamalarınıza sorunsuz bir şekilde entegre etmenizi sağlar.

IronPDF, PDF raporu üretimi için hangi özellikleri sunar?

IronPDF, HTML'den PDF'ye dönüştürme, PDF düzenleme, form doldurma, barkod oluşturma, filigran ekleme ve belge şifreleme ve güvenliği gibi özellikler sunar. Bu özellikler, dinamik ve güvenli PDF raporları oluşturmayı kolaylaştırır.

ASP.NET'te PDF belgelerini nasıl güvence altına alabilirim?

IronPDF, şifreleme, parola ve izin ayarlarıyla PDF belgelerini güvence altına alma özellikleri sağlar. Bu, ASP.NET uygulamalarınızdaki hassas bilgilerin korunmasını sağlar.

IronPDF için ücretsiz bir deneme mevcut mu?

Evet, IronPDF ücretsiz bir deneme sunar. Kütüphaneyi IronPDF web sitesinden indirip uygulamalarınızda profesyonel kalitede PDF raporları üretmek için özelliklerini keşfedebilirsiniz.

Bir ASP.NET uygulamasında PDF'ye filigran nasıl eklenir?

Bir ASP.NET uygulamasında PDF'ye filigran eklemek için IronPDF kullanabilirsiniz. Kütüphane, hassas bilgileri korumak veya belgelerinizi etkili bir şekilde markalamak için PDF belgelerine filigran eklemek için API'ler sağlar.

ASP.NET projemde IronPDF kullanmak için ön koşullar nelerdir?

IronPDF'yi kullanmadan önce, ASP.NET geliştirme konusunda temel bir anlayışa sahip olduğunuzdan ve Visual Studio'yu kurduğunuzdan emin olun. Ayrıca, projenize IronPDF ve MVC uzantısını kurarak onun özelliklerinden yararlanın.

IronPDF hakkında daha fazla bilgiye nereden ulaşabilirim?

Daha fazla detaylı bilgi için IronPDF'nin kurulum, özellikler ve örnek kodlara dair bilgi sağlayan belge sayfasını web sitesinde ziyaret edebilirsiniz.

IronPDF, .NET 10 ile uyumlu mu ve hangi avantajları sunar?

Evet, IronPDF, Web, Masaüstü ve Konsol proje türleriyle geniş çapta .NET 10 desteği sağlar. Yürütüm zamanı performans iyileştirmeleri (örneğin, azaltılmış yığın tahsisatları ve daha hızlı JIT), C# dil geliştirmeleri ve modern API'lardan yararlanır. Geliştiriciler, .NET 10 uygulamalarında RenderHtmlAsPdf ve RenderHtmlAsPdfAsync yöntemlerini sorunsuzca kullanarak çıktıyı hız, çapraz-platform dağıtımı ve daha temiz koddan faydalanabilirler.

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