HTML'i PDF'ye ASP.NET Core'da Nasıl Dönüştürursunuz
Bir ASP.NET Core uygulamasında PDF görüntüleyici oluşturmak, çoğu geliştiricinin beklediğinden daha kolaydır. PDF'leri sunucu tarafında üreterek ve doğru MIME türüyle geri döndürerek, belgeleri doğrudan herhangi bir modern tarayıcıda gösterebilirsiniz -- eklenti veya Adobe Acrobat Reader gerekmez. IronPDF, HTML, CSS ve JavaScript'i yüksek sadakatli PDF'lere dönüştüren Chrome tabanlı motoru üzerinden render işlemini yönetir ve bu PDF'ler tarayıcının yerleşik görüntüleyicisinde satır içi olarak görünür.
Bu eğitim, HTML dizelerinden oluşturulan PDF'leri görüntüleme, canlı URL'leri render etme, Razor görünümlerini dönüştürme, büyük dosyaları akıtma ve hepsini bir ASP.NET Core MVC kontrolcüsünde bağlama gibi her büyük senaryoyu adım adım açıklar. Kod örnekleri, üst düzey ifadelerle nerede uygulanabilir olduğunu hedefleyen .NET 10 ile hedeflenmiştir.
ASP.NET'te Tarayıcı Tabanlı PDF Görüntüleme Nasıl Çalışır?
Modern tarayıcılar bir yerleşik PDF görüntüleyici ile gelir. Bir sunucu Content-Type: application/pdf başlığı ile yanıt verdiğinde, tarayıcı belgeyi satır içine gömerek görüntüler, dosya indirmeyi tetiklemez. Anahtar, bu başlığı Content-Disposition: inline ile eşleştirmektedir.
Sunucu tarafında, göreviniz geçerli bir PDF ikili dosyası üretmek ve bunu bir FileResult üzerinden döndürmektir. Tarayıcı, herhangi bir ek UI kodu olmadan sayfa numaralandırma, yakınlaştırma, metin seçimi, arama, yazdırma ve indirme işlemlerini kendisi halleder.
IronPDF bu paternle doğal olarak uyumludur. Onun ChromePdfRenderer sınıfı HTML'yi (veya canlı bir URL'yi) PDF ikili dosyasına dönüştürür ve bu ikili dosyayı doğrudan ASP.NET'in File() yardımcısına geçirirsiniz. Sonuç, Chrome, Firefox, Edge ve Safari'de çalışan tam özellikli bir belge görüntüleyicisidir.
Modern tarayıcılar, yerel görüntüleme motorları aracılığıyla W3C PDF render spesifikasyonu'nu uygular, bu da sunucunuzun döndürdüğü herhangi bir uygun PDF'nin ek bir yapılandırmaya ihtiyaç duymadan düzgün bir şekilde görüntüleneceği anlamına gelir. IronPDF'in çıktısı tamamen standartlara uygundur, bu nedenle tarayıcı sürümleri arasında tutarlı render sağlanır.
Konteynerleşmiş dağıtımlar için, IronPDF resmi Docker görüntüleri sağlayarak Chromium bağımlılıklarını önceden yapılandırır, böylece her düğüme manuellen Chrome kurmanıza gerek kalmaz. Linux ve Windows konteynerleri her ikisi de desteklenir. PDF oluşturmayı bağımsız bir şekilde ölçeklendirmeniz gerekiyorsa, IronPDF Engine Docker görüntüsü render işlemini bağımsız bir mikro hizmet olarak çalıştırmanıza olanak tanır.
[30] ## IronPDF'i bir ASP.NET Core Projesinde Nasıl Kurarsınız?
ASP.NET Core projenizi Visual Studio'da açın, ardından NuGet Paket Yöneticisi Konsolu aracılığıyla IronPDF'i yükleyin:
Install-Package IronPdf
Veya .NET CLI kullanın:
dotnet add package IronPdf
Yüklemeden sonra, herhangi bir IronPDF API'sini çağırmadan önce lisans anahtarınızı Program.cs'e ekleyin:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Azure'a dağıtım yapıyorsanız, lisans anahtarınızı Azure Key Vault veya App Configuration'da saklayın, doğrudan kodlamak yerine. AWS Lambda dağıtımları için, Lambda fonksiyon ayarlarınızda yapılandırılmış ortam değişkenlerini kullanın.
Tüm kurulum bu kadar. IronPDF, Windows üzerinde çalışırken Chromium'u otomatik olarak algılar ve yapılandırır. Linux üzerinde, gerekli olan birkaç sistem paketi için Linux kurulum kılavuzu'na bakınız.
Ücretsiz bir deneme ile başlayarak tüm özellik setini değerlendirebilir ve üretim için bir lisans katmanı seçmeden önce deneyebilirsiniz.
Bir HTML Dizesinden PDF Nasıl Oluşturur ve Gösterirsiniz?
Bir PDF'yi kullanıcıya sunmanın en hızlı yolu bir HTML dizesi oluşturarak satır içine gömülü olarak döndürmektir. PdfController adlı bir kontrolör oluşturun ve şöyle bir eylem ekleyin:
using IronPdf;
using Microsoft.AspNetCore.Mvc;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
var app = builder.Build();
app.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
public class PdfController : Controller
{
private readonly ChromePdfRenderer _renderer;
public PdfController()
{
_renderer = new ChromePdfRenderer();
_renderer.RenderingOptions.WaitFor.RenderDelay(100);
_renderer.RenderingOptions.Timeout = 30;
}
public IActionResult DisplayFromHtml()
{
string html = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; padding: 40px; }
h1 { color: #2c3e50; }
p { line-height: 1.7; color: #444; }
</style>
</head>
<body>
<h1>Sample PDF Document</h1>
<p>This PDF was generated using IronPDF in an ASP.NET Core application.</p>
</body>
</html>";
PdfDocument pdf = _renderer.RenderHtmlAsPdf(html);
Response.Headers.Append("Content-Disposition", "inline; filename=document.pdf");
return File(pdf.BinaryData, "application/pdf");
}
}
using IronPdf;
using Microsoft.AspNetCore.Mvc;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddControllersWithViews();
var app = builder.Build();
app.MapControllerRoute(name: "default", pattern: "{controller=Home}/{action=Index}/{id?}");
app.Run();
public class PdfController : Controller
{
private readonly ChromePdfRenderer _renderer;
public PdfController()
{
_renderer = new ChromePdfRenderer();
_renderer.RenderingOptions.WaitFor.RenderDelay(100);
_renderer.RenderingOptions.Timeout = 30;
}
public IActionResult DisplayFromHtml()
{
string html = @"
<html>
<head>
<style>
body { font-family: Arial, sans-serif; padding: 40px; }
h1 { color: #2c3e50; }
p { line-height: 1.7; color: #444; }
</style>
</head>
<body>
<h1>Sample PDF Document</h1>
<p>This PDF was generated using IronPDF in an ASP.NET Core application.</p>
</body>
</html>";
PdfDocument pdf = _renderer.RenderHtmlAsPdf(html);
Response.Headers.Append("Content-Disposition", "inline; filename=document.pdf");
return File(pdf.BinaryData, "application/pdf");
}
}
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc
Dim builder = WebApplication.CreateBuilder(args)
builder.Services.AddControllersWithViews()
Dim app = builder.Build()
app.MapControllerRoute(name:="default", pattern:="{controller=Home}/{action=Index}/{id?}")
app.Run()
Public Class PdfController
Inherits Controller
Private ReadOnly _renderer As ChromePdfRenderer
Public Sub New()
_renderer = New ChromePdfRenderer()
_renderer.RenderingOptions.WaitFor.RenderDelay(100)
_renderer.RenderingOptions.Timeout = 30
End Sub
Public Function DisplayFromHtml() As IActionResult
Dim html As String = "
<html>
<head>
<style>
body { font-family: Arial, sans-serif; padding: 40px; }
h1 { color: #2c3e50; }
p { line-height: 1.7; color: #444; }
</style>
</head>
<body>
<h1>Sample PDF Document</h1>
<p>This PDF was generated using IronPDF in an ASP.NET Core application.</p>
</body>
</html>"
Dim pdf As PdfDocument = _renderer.RenderHtmlAsPdf(html)
Response.Headers.Append("Content-Disposition", "inline; filename=document.pdf")
Return File(pdf.BinaryData, "application/pdf")
End Function
End Class
Render Edilen PDF Tarayıcıda Nasıl Görünür?

ChromePdfRenderer, motorunda Chromium'u kullanır, bu yüzden CSS grid, flexbox, web yazı tipleri ve modern CSS özellikleri hepsi doğru şekilde render edilir. Content-Disposition'yi inline olarak ayarlamak, tarayıcıya dosyayı görüntülemesini, kaydetmek yerine göstermesini talimat verir. Bu değeri attachment olarak değiştirirseniz, tarayıcı kullanıcıdan indirebilmesi için uyarır.
Ayrıntılı düzenlemelere sahip belgeler için, özel kağıt boyutları, kenar boşlukları ve yazdırma CSS medya türü gibi render seçenekleri ile çıktıyı ince ayarlayabilirsiniz. Ağ gecikmesinin dış varlıkların yüklenmesini geciktirebileceği kapsayıcı ortamlarda özellikle kullanışlı olan WaitFor API bulunmaktadır.
HTML dönüşüm seçeneklerine daha derin bir bakış için, HTML dizesinden PDF'a kılavuzu inceleyin.
URL ve Razor Görünümlerinden PDF Dosyalarını Nasıl Render Edersiniz?
IronPDF, herhangi bir canlı web sayfasını PDF olarak yakalayabilir - web içeriğini arşivlemek veya mevcut sayfalardan rapor oluşturmak için idealdir. ASP.NET Core belgesi, burada kullanılan kalıp olan kontrolcü eylemleri sonuçlarının nasıl döndürüleceğini kapsar.
public IActionResult RenderFromUrl(string url = "https://en.wikipedia.org/wiki/Main_Page")
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.NetworkIdle();
PdfDocument pdf = renderer.RenderUrlAsPdf(url);
Response.Headers.Append("Content-Disposition", "inline; filename=webpage.pdf");
Response.Headers.Append("Cache-Control", "public, max-age=3600");
return File(pdf.BinaryData, "application/pdf");
}
public IActionResult RenderFromUrl(string url = "https://en.wikipedia.org/wiki/Main_Page")
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.EnableJavaScript = true;
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print;
renderer.RenderingOptions.WaitFor.NetworkIdle();
PdfDocument pdf = renderer.RenderUrlAsPdf(url);
Response.Headers.Append("Content-Disposition", "inline; filename=webpage.pdf");
Response.Headers.Append("Cache-Control", "public, max-age=3600");
return File(pdf.BinaryData, "application/pdf");
}
Public Function RenderFromUrl(Optional url As String = "https://en.wikipedia.org/wiki/Main_Page") As IActionResult
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.EnableJavaScript = True
renderer.RenderingOptions.CssMediaType = IronPdf.Rendering.PdfCssMediaType.Print
renderer.RenderingOptions.WaitFor.NetworkIdle()
Dim pdf As PdfDocument = renderer.RenderUrlAsPdf(url)
Response.Headers.Append("Content-Disposition", "inline; filename=webpage.pdf")
Response.Headers.Append("Cache-Control", "public, max-age=3600")
Return File(pdf.BinaryData, "application/pdf")
End Function
URL Tabanlı PDF Render'ı Nasıl Gösterir?

Bir Razor görünümü (örneğin bir fatura veya beyanat şablonu) dönüştürmeniz gerektiğinde, ilk önce görünümü bir HTML dizesine render edin, ardından bu dizeyi IronPDF'e iletin. Bu, şablonlarınızı hem web hem de PDF çıktısı arasında yeniden kullanılabilir hale getirir:
public async Task<IActionResult> ViewToPdf()
{
var model = new InvoiceModel
{
InvoiceNumber = 1001,
InvoiceDate = DateTime.Now,
CustomerName = "Acme Corp.",
Items = new List<ItemModel>
{
new ItemModel { Description = "Product A", Quantity = 2, UnitPrice = 50.00m },
new ItemModel { Description = "Service B", Quantity = 1, UnitPrice = 150.00m }
}
};
model.TotalAmount = model.Items.Sum(i => i.LineTotal);
string htmlContent = await RenderViewToStringAsync("Invoice", model);
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 40;
renderer.RenderingOptions.MarginBottom = 40;
string baseUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent, baseUrl);
return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToStringAsync(string viewName, object model)
{
var actionContext = new ActionContext(
HttpContext, RouteData, ControllerContext.ActionDescriptor);
var viewEngine = HttpContext.RequestServices.GetRequiredService<IRazorViewEngine>();
var tempDataFactory = HttpContext.RequestServices.GetRequiredService<ITempDataDictionaryFactory>();
var tempData = tempDataFactory.GetTempData(HttpContext);
ViewData.Model = model;
var viewResult = viewEngine.FindView(actionContext, viewName, isMainPage: false);
if (!viewResult.Success)
{
string searched = string.Join(
Environment.NewLine,
viewResult.SearchedLocations ?? Array.Empty<string>());
throw new InvalidOperationException(
$"Could not find view '{viewName}'. Searched:{Environment.NewLine}{searched}");
}
await using var writer = new StringWriter();
var viewContext = new ViewContext(
actionContext, viewResult.View, ViewData, tempData,
writer, new HtmlHelperOptions());
await viewResult.View.RenderAsync(viewContext);
return writer.ToString();
}
public async Task<IActionResult> ViewToPdf()
{
var model = new InvoiceModel
{
InvoiceNumber = 1001,
InvoiceDate = DateTime.Now,
CustomerName = "Acme Corp.",
Items = new List<ItemModel>
{
new ItemModel { Description = "Product A", Quantity = 2, UnitPrice = 50.00m },
new ItemModel { Description = "Service B", Quantity = 1, UnitPrice = 150.00m }
}
};
model.TotalAmount = model.Items.Sum(i => i.LineTotal);
string htmlContent = await RenderViewToStringAsync("Invoice", model);
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 40;
renderer.RenderingOptions.MarginBottom = 40;
string baseUrl = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}";
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent, baseUrl);
return File(pdf.BinaryData, "application/pdf");
}
private async Task<string> RenderViewToStringAsync(string viewName, object model)
{
var actionContext = new ActionContext(
HttpContext, RouteData, ControllerContext.ActionDescriptor);
var viewEngine = HttpContext.RequestServices.GetRequiredService<IRazorViewEngine>();
var tempDataFactory = HttpContext.RequestServices.GetRequiredService<ITempDataDictionaryFactory>();
var tempData = tempDataFactory.GetTempData(HttpContext);
ViewData.Model = model;
var viewResult = viewEngine.FindView(actionContext, viewName, isMainPage: false);
if (!viewResult.Success)
{
string searched = string.Join(
Environment.NewLine,
viewResult.SearchedLocations ?? Array.Empty<string>());
throw new InvalidOperationException(
$"Could not find view '{viewName}'. Searched:{Environment.NewLine}{searched}");
}
await using var writer = new StringWriter();
var viewContext = new ViewContext(
actionContext, viewResult.View, ViewData, tempData,
writer, new HtmlHelperOptions());
await viewResult.View.RenderAsync(viewContext);
return writer.ToString();
}
Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc
Imports Microsoft.AspNetCore.Mvc.ViewEngines
Imports Microsoft.AspNetCore.Mvc.Rendering
Imports Microsoft.AspNetCore.Mvc.ViewFeatures
Imports Microsoft.Extensions.DependencyInjection
Imports IronPdf
Public Class YourController
Inherits Controller
Public Async Function ViewToPdf() As Task(Of IActionResult)
Dim model As New InvoiceModel With {
.InvoiceNumber = 1001,
.InvoiceDate = DateTime.Now,
.CustomerName = "Acme Corp.",
.Items = New List(Of ItemModel) From {
New ItemModel With {.Description = "Product A", .Quantity = 2, .UnitPrice = 50.0D},
New ItemModel With {.Description = "Service B", .Quantity = 1, .UnitPrice = 150.0D}
}
}
model.TotalAmount = model.Items.Sum(Function(i) i.LineTotal)
Dim htmlContent As String = Await RenderViewToStringAsync("Invoice", model)
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.MarginTop = 40
renderer.RenderingOptions.MarginBottom = 40
Dim baseUrl As String = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host}"
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent, baseUrl)
Return File(pdf.BinaryData, "application/pdf")
End Function
Private Async Function RenderViewToStringAsync(viewName As String, model As Object) As Task(Of String)
Dim actionContext As New ActionContext(HttpContext, RouteData, ControllerContext.ActionDescriptor)
Dim viewEngine As IRazorViewEngine = HttpContext.RequestServices.GetRequiredService(Of IRazorViewEngine)()
Dim tempDataFactory As ITempDataDictionaryFactory = HttpContext.RequestServices.GetRequiredService(Of ITempDataDictionaryFactory)()
Dim tempData As ITempDataDictionary = tempDataFactory.GetTempData(HttpContext)
ViewData.Model = model
Dim viewResult As ViewEngineResult = viewEngine.FindView(actionContext, viewName, isMainPage:=False)
If Not viewResult.Success Then
Dim searched As String = String.Join(Environment.NewLine, viewResult.SearchedLocations ?? Array.Empty(Of String)())
Throw New InvalidOperationException($"Could not find view '{viewName}'. Searched:{Environment.NewLine}{searched}")
End If
Await Using writer As New StringWriter()
Dim viewContext As New ViewContext(actionContext, viewResult.View, ViewData, tempData, writer, New HtmlHelperOptions())
Await viewResult.View.RenderAsync(viewContext)
Return writer.ToString()
End Using
End Function
End Class
Public Class InvoiceModel
Public Property InvoiceNumber As Integer
Public Property InvoiceDate As DateTime
Public Property CustomerName As String
Public Property Items As List(Of ItemModel)
Public Property TotalAmount As Decimal
End Class
Public Class ItemModel
Public Property Description As String
Public Property Quantity As Integer
Public Property UnitPrice As Decimal
Public ReadOnly Property LineTotal As Decimal
Get
Return Quantity * UnitPrice
End Get
End Property
End Class
Razor Görünümünden PDF Oluşturmanın Sonuçları Nelerdir?

Razor görünümünüz göreli CSS veya resim yollarına başvuruyorsa, baseUrl parametresi önemlidir. Mevcut ana bilgisayar URL'sini geçirerek IronPDF'in bu yolları doğru şekilde çözmesine izin verir. Razor to PDF tutorial (Razor'dan PDF'e öğretici) için Blazor uygulama desenleri dahil detaylı kılavuzu görün.
Büyük PDF Dosyalarını Yayınlamak İçin Nasıl İşlersiniz?
Birkaç megabayt boyutunda olabilecek belgeler için yayınlama, bellek tepe kullanımını azaltır ve baytları daha hızlı müşteriye iletmeye başlar. Ham bayt dizisi ile File() yerine FileStreamResult kullanın:
public async Task<IActionResult> StreamLargePdf()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = false;
PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(
"<h1>Large Document</h1><p>Full content here...</p>");
pdf.CompressImages(80);
var stream = new MemoryStream(pdf.BinaryData);
Response.Headers.Append("Content-Length", pdf.BinaryData.Length.ToString());
Response.Headers.Append("Accept-Ranges", "bytes");
return new FileStreamResult(stream, "application/pdf");
}
public async Task<IActionResult> StreamLargePdf()
{
var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.CreatePdfFormsFromHtml = false;
PdfDocument pdf = await renderer.RenderHtmlAsPdfAsync(
"<h1>Large Document</h1><p>Full content here...</p>");
pdf.CompressImages(80);
var stream = new MemoryStream(pdf.BinaryData);
Response.Headers.Append("Content-Length", pdf.BinaryData.Length.ToString());
Response.Headers.Append("Accept-Ranges", "bytes");
return new FileStreamResult(stream, "application/pdf");
}
Imports System.IO
Imports System.Threading.Tasks
Imports Microsoft.AspNetCore.Mvc
Public Class YourController
Inherits Controller
Public Async Function StreamLargePdf() As Task(Of IActionResult)
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.CreatePdfFormsFromHtml = False
Dim pdf As PdfDocument = Await renderer.RenderHtmlAsPdfAsync("<h1>Large Document</h1><p>Full content here...</p>")
pdf.CompressImages(80)
Dim stream As New MemoryStream(pdf.BinaryData)
Response.Headers.Append("Content-Length", pdf.BinaryData.Length.ToString())
Response.Headers.Append("Accept-Ranges", "bytes")
Return New FileStreamResult(stream, "application/pdf")
End Function
End Class
CompressImages(80), JPEG kalitesini %80'e düşürür, bu da görüntü ağırlıklı belgelerde dosya boyutunu önemli ölçüde keserken gözle görülür kalite kaybını en aza indirir. Accept-Ranges: bytes ayarı tarayıcıya bayt aralığı parçaları talep edebileceğini bildirir, böylece büyük PDF'ler içinde, tüm dosyayı ilk başta indirmeden daha hızlı arama yapılmasını sağlar.
ISO'nın PDF/A spesifikasyonu, arşiv niteliğinde PDF gerekliliklerini tanımlar. Uygulamanız uzun vadeli arşiv belgeleri üretmek zorundaysa, IronPDF'in PDF/A uyum modu çıktının bu standartları karşıladığından emin olur, bu da özellikle düzenleyici veya yasal iş akışları için geçerlidir.
Eski ASP.NET Web Forms projeleri için desen hafifçe farklıdır çünkü doğrudan HTTP yanıtına yazarsın:
protected void btnGeneratePdf_Click(object sender, EventArgs e)
{
using var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>");
Response.ContentType = "application/pdf";
Response.BinaryWrite(pdf.BinaryData);
Response.End();
}
protected void btnGeneratePdf_Click(object sender, EventArgs e)
{
using var renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>");
Response.ContentType = "application/pdf";
Response.BinaryWrite(pdf.BinaryData);
Response.End();
}
Protected Sub btnGeneratePdf_Click(sender As Object, e As EventArgs)
Using renderer As New ChromePdfRenderer()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>Web Form PDF</h1>")
Response.ContentType = "application/pdf"
Response.BinaryWrite(pdf.BinaryData)
Response.End()
End Using
End Sub
Birçok PDF'yi aynı anda oluşturan iş yükleri için, yüksek through-put durumlarında bellek yükünü azaltan ayarlar için IronPDF asenkron API kılavuzu ve performans optimizasyon referans inceleyin.
Bir Tarayıcı Tabanlı Görüntüleyici Kullanıcılarınıza Ne Özellikler Sunar?
Bir tarayıcı bir PDF'yi satır içi görüntülediğinde, otomatik olarak tam özellikli bir görüntüleyici sunar. Kullanıcılarınız içerik kopyalaması için metin seçimi, belirli kelime veya numaraları bulmak için yerleşik bir arama çubuğu, yazdırma kontrolü ve bir tıklama ile indirme gibi özelliklere -- ön uç kodunuza eklemeden -- sahiptir.
Temel görüntüleme dışında, IronPDF kullanıcıların görüntüleyicide ne göreceklerini etkileyen geniş bir belge özelliği yelpazesi sunar:
- Dinamik metin, sayfa numaraları ve tarihlerle başlıklar ve alt bilgi
- Taslak veya gizli işaretlemeler için özel filigranlar
- Tarayıcıda kullanıcıların doğrudan doldurabilecekleri etkileşimli form alanları
- Belge doğrulama için dijital imzalar
- Uzun vadeli arşiv gereksinimleri için PDF/A uyumluluğu
- Sınırlı erişim için şifreleme ve parola koruması
Aşağıdaki tablo, kütüphanede mevcut birincil dönüştürme yöntemlerini ve her birinin kullanılacağı zamanı özetlemektedir:
| Yöntem | Giriş | En İyi İçin |
|---|---|---|
RenderHtmlAsPdf |
HTML stringi | Şablonlu belgeler, faturalar, raporlar |
RenderUrlAsPdf |
URL | Web sayfası arşivleme, canlı içerik anlık görüntüleri |
RenderHtmlAsPdf + Razor |
Render edilmiş görünüm HTML | Mevcut MVC şablonlarının PDF olarak yeniden kullanımı |
RenderHtmlFileAsPdf |
Yerel HTML dosyası | Diskte saklanan statik şablonlar |
Konteynerleştirilmiş dağıtımlar için, IronPDF Ayrıca, PDF oluşturmayı özel bir mikro hizmet olarak çalıştırabilmek için uzatan motor desteği sağlar. Kaynak kısıtlı ortamlara göre ayarlanan ayarlarla bellek optimizasyon kılavuzu inceleyin.
Yeteneklerin tam bir genel bakışı için, IronPDF özellik sayfasını ziyaret edin.
IronPDF Ne Tür Biçimlendirme ve Düzenleme Seçenekleri Destekler?
IronPDF, temel renderlemenin ötesine geçer. Aşağıdaki seçenekleri kullanarak her belgeye yapı ve markalama ekleyebilirsiniz.
Sayfa düzeni kontrolleri, özel kağıt boyutları, yön ayarları ve kenar boşlukları yapılandırmasını içerir. Tipografi desteği, CSS @font-face beyanları üzerinden tam web fontlarının render edilmesini kapsar, belgelerin marka yazı tiplerinize tam olarak uymasını sağlar. Ayrıca, PDF sayfalarına görselleri gömüp yeniden boyutlandırarak görsel sadakat üzerinde tam kontrole sahip olabilirsiniz.
Belge manipülasyonu için, IronPDF mevcut PDF'leri birleştirme veya ayırma, bireysel sayfaları ekleme veya kaldırma ve programatik olarak metin ve görselleri çıkarma olanağı tanır. JavaScript yakalama öncesi yürütme, Chart.js veya D3.js gibi istemci tarafı işleme kütüphanelerine dayanan raporlar oluştururken dinamik grafikler ve veri görselleştirmeleri için destek sunar.
Bu yetenekler, uygulamanızdan doğrudan cilalı, baskı hazır belgeler üretmenize olanak tanır, ayrı bir belge işleme katmanına gerek kalmadan.
Kullanıcıdan yüklenmiş PDF'leri kabul etmeye ve oluşturulanlarla yan yana göstermeye ihtiyacınız varsa, IronPDF, yeni olanlar kadar kolay bir şekilde mevcut PDF ikililerini okur. PdfDocument.FromFile() ile bir dosyayı yükleyin ve BinaryData'ını aynı File() yardımıyla döndürün.
Mevcut belgelerin düzenlenmesi, not eklenmesi ve değiştirilmesi konusunda detaylı bir kılavuz için C# PDF düzenleme eğitimini inceleyin.
IronPDF Alternatif Yaklaşımlarla Nasıl Karşılaştırılır?
Bir IronPDF sunucu tarafı yaklaşımına en sık alternatif olarak iki seçenek öne çıkıyor; istemci tarafı bir PDF görüntüleyici kütüphanesini gömme (örneğin, Mozilla'nın açık kaynak görüntüleyicisi PDF.js) ve kullanıcıları ayrı bir belge yönetim sistemine yönlendirme.
PDF.js gibi istemci tarafı görüntüleyiciler, basit görüntüleme durumları için iyi çalışır, ancak görüntüleyici JavaScript paketi hizmeti, harici PDF'ler için CORS'u yönetme ve tarayıcı uyumluluğunu kendiniz yönetme gerektirir. IronPDF ile sunucu tarafı oluşturma, PDF boru hattını tamamen .NET yığında tutarken, güvenlik politikalarını basitleştirir ve kökenler arası karmaşıklıktan kaçınır.
Özel bir belge yönetim sistemi, çoğu web uygulamasının ihtiyaç duymadığı operasyonel yük ekler. ASP.NET Core zaten çalıştıran ekipler için, doğrudan kontrolcüden PDF'leri oluşturmak ve akıtmak en az direnç yoludur.
Sonraki Adımlarınız Neler?
Bir ASP.NET Core web uygulamasında PDF görüntülemek yalnızca birkaç satır kod alır. PDF'yi ChromePdfRenderer ile oluşturun, Content-Disposition: inline ayarlayın, ve bir FileResult döndürün -- tarayıcının yerleşik görüntüleyicisi geri kalan her şeyi halleder.
Üretim dağıtımları için kurulumunuzu hazırlamak amacıyla şu adımları değerlendirin:
- PDF oluşturma sürelerini ve hata oranlarını izlemek için özelleştirilmiş loglama yapılandırın.
- Chromium başlatma yükünü azaltmak için sıkça istenen PDF'ler için önbellekleme uygulayın
- Renderi web katmanınızdan ayrı ölçeklendirmek için IronPDF Engine Docker Image kullanın
- Yanıt boyutlarını yönetilebilir tutmak için PDF sıkıştırma seçeneklerini gözden geçirin
Projenize PDF görüntüleme eklemeye hazır mısınız? Ücretsiz bir deneme ile başlayın ve yukarıdaki örnekleri birkaç dakika içinde çalıştırın. Dağıtıma hazır olduğunuzda, ekibinizin boyutuna ve kullanımınıza uygun lisanslama seçeneklerini gözden geçirin. İlişkili dönüştürmeleri keşfetmek için IronPDF'nin DOCX'ten PDF'e, görüntüden PDF'e ve diğer formatlarla nasıl başa çıktığını nasıl yapılır kılavuzu kütüphanesinde gezinin.
Sıkça Sorulan Sorular
ASP.NET web uygulamasında bir PDF görüntüleyici nasıl oluşturabilirim?
ASP.NET web uygulamasında IronPDF kullanarak bir PDF görüntüleyici oluşturabilirsiniz. Uygulamanız içinde PDF belgelerini doğrudan görüntülemeye olanak tanır ve Adobe Acrobat Reader gibi harici araçlara gerek kalmadan kesintisiz bir görüntüleme deneyimi sunar.
ASP.NET'te PDF görüntüleme için IronPDF kullanmanın avantajları nelerdir?
IronPDF, ASP.NET uygulamalarında pürüzsüz ve entegre bir PDF görüntüleme deneyimi sağlar. Belgeleri satır içi olarak görüntülemenizi, çeşitli dosya türlerini desteklemenizi ve üçüncü taraf PDF görüntüleyicilere gerek duymadan kullanıcı deneyimini iyileştirmenizi sağlar.
Interactive PDF formlarını ASP.NET web uygulamamda görüntüleyebilir miyim?
Evet, IronPDF ile ASP.NET web uygulamanızda etkileşimli PDF formları görüntüleyebilirsiniz. Form alanlarının ve etkileşimli unsurların render edilmesini destekleyerek kullanıcıların belgelerle doğrudan tarayıcıda etkileşimde bulunmasını sağlar.
ASP.NET'te IronPDF'i kullanarak faturalar ve raporlar görüntülenebilir mi?
Kesinlikle, IronPDF, ASP.NET uygulamalarında faturalar, raporlar ve diğer belge türlerini görüntülemek için son derece uygundur. Belgelerinizin web uygulaması içinde düzgün ve verimli bir şekilde görüntülenmesini sağlar.
IronPDF'i kullanarak ASP.NET uygulamalarında PDF'leri görüntülemek için Adobe Acrobat Reader'a ihtiyacım var mı?
Hayır, IronPDF kullanarak ASP.NET uygulamalarında PDF'leri görüntülemek için Adobe Acrobat Reader'a ihtiyacınız yoktur. Üçüncü taraf bağımlılıklar olmadan PDF'leri doğrudan tarayıcıda render etmenize ve görüntülemenize olanak tanır.

