ASP.NET Core'da PDF Görüntüleyici: C# ile PDF'leri Çevrimiçi Görüntüleme
ASP.NET Core uygulamasına bir 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 iade ederek, belgeleri doğrudan modern bir tarayıcıda görüntüleyebilirsiniz -- eklenti yok, Adobe Acrobat Reader gerekmez. IronPDF, Chrome tabanlı motoru aracılığıyla render işlemini gerçekleştirir, HTML, CSS ve JavaScript'i yüksek sadakatle PDF'lere dönüştürür, ve bunlar tarayıcının yerleşik görüntüleyicisinde çevrimiçi olarak görünür.
Bu eğitim, her önemli senaryoyu adım adım açıklar: HTML dizelerinden oluşturulan PDF'lerin görüntülenmesi, canlı URL'lerin render edilmesi, Razor görünümlerinin dönüştürülmesi, büyük dosyaların akışı ve bunların tümü ASP.NET Core MVC denetleyicisinde nasıl bir araya getirileceği. Kod örnekleri, üst düzey ifadelerle uyumlu olduğu yerlerde .NET 10'u hedefler.
Tarayıcı Tabanlı PDF Görüntüleme ASP.NET'te Nasıl Çalışır?
Modern tarayıcılar yerleşik bir PDF görüntüleyici ile birlikte gelir. Bir sunucu, tarayıcıya belgenin satır içinde görüntülenmesini sağlayan Content-Type: application/pdf üst bilgisiyle yanıt verdiğinde, dosya indirme tetiklenmez. Anahtar, bu üst bilgiyi Content-Disposition: inline ile eşleştirmektir.
Sunucu tarafında, görev'iniz geçerli bir PDF ikili verisi üretmek ve bu veriyi FileResult aracılığıyla geri döndürmektir. Tarayıcı, sayfalama, yakınlaştırma, metin seçimi, arama, yazdırma ve indirme işlemlerini ekstra UI kodu olmadan sizin yerinize halleder.
IronPDF bu modele doğrudan uyum sağlar. Bu ChromePdfRenderer sınıfı, HTML'yi (veya bir canlı URL'yi) bir PDF ikili verisine dönüştürür ve bu ikili veriyi ASP.NET'in File() yardımcısına doğrudan iletirsiniz. Sonuç, Chrome, Firefox, Edge ve Safari'de çalışan tam özellikli bir doküman görüntüleyicisidir.
Çağdaş tarayıcılar, yerleşik görüntüleyici motorları aracılığıyla W3C PDF render spesifikasyonunu uygular, bu da sunucunuzdan dönen herhangi bir uyumlu PDF'nin ekstra yapılandırma gerektirmeden doğru şekilde görüntüleneceği anlamına gelir. IronPDF'in çıktısı tamamen standartlara uyumludur, bu nedenle tarayıcı sürümlerinde tutarlı render işlemlerine güvenebilirsiniz.
Kapsayıcı dağıtımlarında, IronPDF, resmi Docker görüntüleri sağlar, bu da Chromium bağımlılıklarını önceden yapılandırır, böylece her düğüme Chrome manuel olarak yüklemeniz gerekmez. Linux ve Windows kapsayıcıları desteklenmektedir. PDF üretimini bağımsız olarak ölçeklendirmeniz gerekiyorsa, IronPDF Engine Docker görüntüsü, render işlemini ayrı bir mikro hizmet olarak yürütmenize olanak tanır.
IronPDF ASP.NET Core Projeye Nasıl Yüklenir?
ASP.NET Core projenizi Visual Studio'da açın ve ardından IronPDF'i NuGet Paket Yöneticisi Konsolu üzerinden yükleyin:
Install-Package IronPdf
Install-Package IronPdf
Ya da .NET CLI kullanın:
dotnet add package IronPdf
dotnet add package IronPdf
Lisans anahtarınızı kurulumdan sonra, herhangi bir IronPDF API'sini çağırmadan önce Program.cs ekleyin:
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
Azure dağıtımlarında, lisans anahtarını Azure Anahtar Kasası veya Uygulama Yapılandırmasında saklayın, doğrudan kodlamak yerine. AWS Lambda dağıtımlarında, Lambda işlev ayarlarınızda yapılandırılmış ortam değişkenlerini kullanın.
Tüm yapılandırma bu kadar. IronPDF, Windows'ta çalışma zamanında Chromium'u otomatik olarak algılar ve yapılandırır. Linux için, gerek duyulan birkaç sistem paketi hakkında bilgi almak için Linux kurulum kılavuzuna başvurun.
Üretim için bir lisans katmanı seçmeden önce tam özellik setini değerlendirmek üzere ücretsiz bir deneme ile başlayabilirsiniz.
HTML Dizesinden PDF Nasıl Üretilir ve Görüntülersiniz?
Bir kullanıcıya PDF'yi en hızlı şekilde sunmanın yolu, bir HTML dizesi işlemek ve bunu satır içinde geri döndürmektir. PdfController adında bir denetleyici oluşturun ve buna benzer 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
Tarayıcıda Render Edilen PDF Neye Benziyor?
Tarayıcıda 'Örnek PDF Belgesi' başlıklı ve 'Bu PDF IronPDF kullanılarak ASP.NET Core'da oluşturulmuştur' metniyle bir PDF belgesi gösterilir, konum localhost:7254/Pdf/DisplayFromHtml
ChromePdfRenderer kaputun altında Chromium kullanır, bu yüzden CSS grid, flexbox, web fontları ve modern CSS özelliklerinin tümü doğru şekilde işlenir. Content-Disposition ayarını inline olarak belirlemek, tarayıcıya dosyayı görüntülemesini, kaydetmek yerine bunu yapmasını söyler. Bu değeri attachment olarak değiştirirseniz, tarayıcı kullanıcıdan indirme yapmasını ister.
Karmaşık düzenlere sahip belgeler için, özel kağıt boyutları, kenar boşlukları ve yazdırma CSS medya türü gibi render seçenekleri aracılığıyla çıkışı ince ayarlayabilirsiniz. Ağ gecikmesinin dış kaynak yüklemesini geciktirebileceği kapsayıcı ortamlarda, WaitFor API özellikle yararlıdır.
HTML dönüştürme seçenekleri hakkında daha derinlemesine bir bakış için HTML dizesinden PDF'ye rehberine bakın.
URL'lerden ve Razor Görünümlerinden PDF dosyaları nasıl Render Edilir?
IronPDF, herhangi bir canlı web sayfasını PDF olarak yakalayabilir -- bu, web içeriği arşivleme veya mevcut sayfalardan rapor oluşturma için idealdir. ASP.NET Core belgeleri, denetleyici eylemlerinin nasıl sonuç döndüreceğini kapsamaktadır, bu, burada kullanılan desendir.
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örünür?
IronPDF kullanılarak bir ASP.NET web uygulamasında işlenmiş Wikipedia ana sayfasını gösteren bir PDF görüntüleyici ekran yakalaması, ana sayfa içeriği ve tam CSS stilleme korunmuş gezinme öğeleri
Bir Razor görünümünü dönüştürmeniz gerektiğinde -- örneğin bir fatura veya bildirim şablonu -- önce görünümü bir HTML dizesine render edin, sonra bu dizeyi IronPDF'e geçin. Bu, şablonlarınızı hem web hem de PDF çıktıları arasında yeniden kullanılabilir tutar:
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 Üretimin Sonuçları Nelerdir?

baseUrl parametresi, Razor görünümünüzün göreli CSS veya görüntü yollarına referans verdiği durumlarda önemlidir. Geçerli ana makine URL'sini geçirmek, IronPDF'in bu yolları doğru şekilde çözmesini sağlar. Razor'dan PDF'e rehberine Blazor uygulama kalıpları dahil olmak üzere tam yürütme için bakın.
Akış ile Büyük PDF Dosyaları Nasıl Yönetilir?
Birkaç megabayt büyüklüğünde olabilecek belgeler için, akış, bellek tepe kullanımını azaltır ve baytları daha hızlı sunucuya teslim etmeye başlar. Ham bir bayt dizisiyle FileStreamResult yerine File() 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ünüşte minimum kalite kaybı ile dosya boyutunu önemli ölçüde azaltır. Accept-Ranges: bytes ayarlanması, tarayıcıya bayt aralık dilimlerini isteyebileceğini bildiren bir sinyaldir, bu da büyük PDF'ler içinde tamamını indirmeden daha hızlı bir arama yapmayı sağlar.
ISO'dan PDF/A standardı arşiv kalitesinde PDF gereksinimlerini tanımlar. Uygulamanız uzun vadeli arşiv belgeleri üretmek zorunda kalıyorsa, IronPDF'in PDF/A uyumluluk modu, çıktının bu standartları karşılamasını garantiler, bu özellikle düzenleyici veya yasal iş akışları için önemlidir.
Eski ASP.NET Web Forms projeleri için, model biraz farklıdır çünkü doğrudan HTTP yanıtına yazarsınız:
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'nin eş zamanlı olarak üretildiği iş yükleri için, hafıza yükünü azaltan ayarlar için IronPDF async API kılavuzunu ve performans optimizasyon referansını inceleyin.
Tarayıcı Tabanlı Görüntüleyici Kullanıcılarınıza Hangi Özellikleri Sunar?
Tarayıcı bir PDF'yi çevrim içi görüntülediğinde, otomatik olarak tam özellikli bir görüntüleyici elde eder. Kullanıcılarınız içerik kopyalamak için metin seçimi, belirli kelime veya numaraları bulmak için yerleşik arama çubuğu, yazdırma kontrolleri ve tek tıklamayla indirme işlemlerini gerçekleştirebilir - bunların tümü için ön uç kodu yazmanıza gerek yoktur.
Temel görüntüleme dışında, IronPDF kullanıcıların görüntüleyicide gördüklerini etkileyen geniş bir belge özelliği yelpazesini destekler:
- Dinamik metin, sayfa numaraları ve tarihler içeren başlıklar ve altbilgiler
- Taslak veya gizli işaretler için özel filigranlar
- Kullanıcıların tarayıcıda doldurabileceği etkileşimli form alanları
- Belge kimlik doğrulaması için dijital imzalar
- Uzun vadeli arşiv gereksinimleri için PDF/A uyumluluğu
- Kısıtlı erişim için şifreleme ve parola koruması
Aşağıdaki tablo, kütüphanede mevcut olan birincil dönüşüm yöntemlerini ve her birinin ne zaman kullanılacağını özetler:
| Yöntem | Girdi | En İyi Kullanım Amacı |
|---|---|---|
RenderHtmlAsPdf |
HTML dizesi | Şablonlu belgeler, faturalar, raporlar |
RenderUrlAsPdf |
URL | Web sayfası arşivleme, canlı içerik anlık görüntüleri |
RenderHtmlAsPdf + Razor |
İşlenmiş görünüm HTML | Mevcut MVC şablonlarını PDF olarak yeniden kullanma |
RenderHtmlFileAsPdf |
Yerel HTML dosyası | Diskte saklanan statik şablonlar |
Konteynerleştirilmiş dağıtımlar için IronPDF, PDF oluşturmayı özel bir mikro hizmet olarak çalıştırabilmeniz için uzak motor desteği de sağlamaktadır. Kaynak sınırlı ortamlara göre ayarlanmış ayarlar için bellek optimizasyon kılavuzunu inceleyin.
Kabiliyetlere yönelik tam genel bakış için, IronPDF özellikler sayfasını ziyaret edin.
IronPDF Hangi Biçimlendirme ve Düzenleme Seçeneklerini Destekliyor?
IronPDF, temel işleme işlemlerinin çok ötesine geçer. Aşağıdaki seçenekleri kullanarak her belgeye yapı ve marka ekleyebilirsiniz.
Sayfa düzeni kontrolleri arasında özel kağıt boyutları, yön ayarları ve kenar boşluğu yapılandırması bulunur. Yazı tipi desteği, belgelerin marka yazı tiplerinizi tam olarak eşleştirdiği anlamına gelen, CSS @font-face deklarasyonları aracılığıyla tam web yazı tiplerini içerir. Ayrıca PDF sayfalarına resim ekleyebilir ve boyutlandırabilir, görsel sadakat üzerinde tam kontrol sağlayabilirsiniz.
Belge manipülasyonu için IronPDF, mevcut PDF'leri birleştirmenize veya ayırmanıza, bireysel sayfalar eklemenize veya kaldırmanıza ve metin ve resimleri programlama yoluyla çıkarmanıza olanak tanır. Yakalama öncesi JavaScript yürütülmesi, dinamik grafikler ve veri görselleştirmeyi destekler -- Chart.js veya D3.js gibi istemci tarafı işleme kütüphanelerine dayanan raporlar oluştururken faydalıdır.
Bu yetenekler, ayrı bir belge işleme katmanı olmadan uygulamanızdan doğrudan cilalı, baskıya hazır belgeler üretmenize olanak tanır.
Kullanıcı tarafından yüklenen PDF'leri kabul etmek ve bunları oluşturulan belgelerle birlikte görüntülemek istiyorsanız, IronPDF mevcut PDF ikili dosyalarını yeni oluşturdukları kadar kolay okur. PdfDocument.FromFile() ile bir dosya yükleyin ve BinaryData 'u aynı File() yardımcısı aracılığıyla geri döndürün.
Varolan belgeleri düzenleme, açıklama ekleme ve değiştirme konusunda ayrıntılı bir yol haritası için C# PDF düzenleme kılavuzunu inceleyin.
IronPDF Alternatif Yöntemlerle Nasıl Karşılaştırılır?
IronPDF sunucu tarafı yaklaşımına en yaygın iki alternatif, istemci tarafı bir PDF görüntüleyici kitaplığını gömme (örneğin Mozilla'nın açık kaynaklı görüntüleyicisi olan PDF.js) ve kullanıcıları ayrı bir belge yönetim sistemine yönlendirmektir.
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 sunmayı, dış PDF'ler için CORS'u yönetmeyi ve tarayıcı uyumluluğunu kendiniz yönetmeyi gerektirir. IronPDF ile sunucu tarafı oluşturma, PDF hattını tamamen .NET yığınına alır, güvenlik politikasını basitleştirir ve çapraz köken karmaşıklığından kaçınır.
Özel bir belge yönetim sistemi, çoğu web uygulamasının ihtiyaç duymadığı bir operasyonel yük ekler. Zaten ASP.NET Core çalıştıran ekipler için, denetleyiciden doğrudan PDF oluşturmak ve akışı sağlamak direnç yolu en az olan yoldur.
Sıradaki Adımlarınız Neler?
Bir ASP.NET Core web uygulamasında PDF'leri görüntülemek sadece birkaç satır kod alır. ChromePdfRenderer ile PDF oluşturun, Content-Disposition: inline ayarını yapın ve bir FileResult döndürün -- tarayıcının yerleşik görüntüleyicisi her şeyi ele alır.
Üretim dağıtımları için, işte kurulumunuzu hazırlamak için bu adımları düşünün:
- PDF oluşturma sürelerini ve hata oranlarını izlemek için özel günlük kaydı yapılandırın
- Sıkça istenen PDF'ler için Chromium başlangıç yükünü azaltmak için önbelleğe alma uygulayın
- Web katmanınızdan ayrı ölçeklendirmek için IronPDF Engine Docker görüntüsünü kullanın
- Yanıt boyutlarını yönetilebilir tutmak için PDF sıkıştırma seçeneklerini inceleyin
Projenize PDF görüntüleme eklemeye hazır mısınız? Ücretsiz bir denemeyle başlayın ve yukarıdaki örnekleri birkaç dakika içinde çalıştırın. Dağıtmaya hazır olduğunuzda, ekibinizin büyüklüğü ve kullanımınıza uygun lisanslama seçeneklerini inceleyin. İlgili dönüşümleri keşfetmek için IronPDF'nin DOCX'ten PDF'e, görüntüden PDF'e ve diğer formatları nasıl ele aldığını kılavuz kitaplığında gezin.
Sıkça Sorulan Sorular
ASP.NET web uygulamasında nasıl PDF görüntüleyici oluşturabilirim?
ASP.NET web uygulamasında IronPDF kullanarak bir PDF görüntüleyici oluşturabilirsiniz. Bu, PDF belgelerini doğrudan uygulamanızda görüntülemenize imkan tanır ve Adobe Acrobat Reader gibi harici araçlar gerektirmeden kesintisiz bir görüntüleme deneyimi sunar.
ASP.NET'te PDF görüntüleme için IronPDF kullanmanın faydaları nelerdir?
IronPDF, ASP.NET uygulamalarında sorunsuz ve entegre bir PDF görüntüleme deneyimi sunar. Belgeleri satır içine gömerek göstermenizi sağlar, çeşitli dosya türlerini destekler ve üçüncü taraf PDF görüntüleyicilere olan ihtiyaçı ortadan kaldırır, kullanıcı deneyimini iyileştirir.
ASP.NET web uygulamamda etkileşimli PDF formları 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 elemanların render edilmesini destekler, böylece kullanıcılar belgelerle doğrudan tarayıcıda etkileşim kurabilirler.
IronPDF'yi kullanarak ASP.NET'te faturaları ve raporları sergilemek mümkün mü?
Kesinlikle, IronPDF, faturaları, raporları ve diğer belgeleri ASP.NET uygulamalarında görüntülemek için uygundur. Belgelerinizin web uygulaması içinde doğru ve verimli bir şekilde rendering edilmesini sağlar.
IronPDF kullanırken ASP.NET uygulamalarında PDF'leri görüntülemek için Adobe Acrobat Reader'a ihtiyaçım var mı?
Hayır, IronPDF kullanarak ASP.NET uygulamalarında PDF'leri görüntülemek için Adobe Acrobat Reader'a ihtiyaçınız yoktur. Üçüncü taraf bağımlılıklara gerek kalmadan PDF'leri doğrudan tarayıcıda render etmenize ve görüntülemenize olanak tanır.




