IronPDF Blazor Sunucu Eğitim: HTML'den C#'te PDF'ye Dönüştürme
IronPDF, Blazor Sunucu uygulamalarında HTML'den PDF'ye dönüştürme işlemini, minimal yapılandırma ile C# kullanarak sağlar, .NET 6'yı destekler ve doğrudan Blazor bileşenlerinizden PDF oluşturma kabiliyetleri sunar.
Hızlı Başlangıç: Blazor Sunucusunda PDF İşleyin
Blazor Sunucu uygulamalarınızda IronPDF ile başlayın. Bu örnek, HTML içeriğini PDF'ye nasıl işlediğinizi gösterir. Blazor bileşenlerinizi, bir kaç satır kod ile PDF'lere dönüştürün.
-
IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronPdf -
Bu kod parçacığını kopyalayın ve çalıştırın.
IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath); -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın
Asgari İş Akışı (5 adım)
- Blazor Uygulamaları için HTML'den PDF'ye Kütüphaneyi Yükleyin
- Visual Studio'da yeni bir Blazor Projesi oluşturun.
- Web sayfalarını URL ile PDF belgelerine dönüştürün
- Web sayfalarını, müşterinin web tarayıcısına işleyin
- HTML dizgilerinden PDF belgelerini görüntüleyin
Yeni Blazor Sunucu Projesini Nasıl Oluştururum?
Yeni bir proje oluşturun ve Blazor Sunucu Uygulaması türünü seçin. Visual Studio, sunucu tarafı Blazor uygulamaları inşa etmek için bir şablon sağlar ve PDF oluşturma için .NET kullanabilir. Blazor Sunucu barındırma modeli, uygulama mantığınızı sunucuda çalıştırır, bu da sunucu tarafı işleme gerektiren PDF oluşturma senaryoları için uygundur.
Blazor Sunucu Uygulamaları İçin Gereksinimler Nelerdir?
IronPDF ile Blazor Sunucu uygulaması oluşturulmadan önce, Visual Studio 2022 veya daha sonraki bir sürümün ASP.NET ve web geliştirme iş yükü ile kurulu olduğundan emin olun. .NET 6 SDK veya daha üst sürümlere ihtiyacınız var. Blazor Sunucu uygulamaları, sürekli bir sunucu bağlantısı gerektirir; karmaşık HTML içeriklerden PDF oluşturmanız gerektiğinde veya sunucuda kalması gereken hassas veriler ile çalışırken uygundur.
Hangi .NET Sürümünü Kullanmalıyım?
IronPDF ile uyumluluk ve performans için Blazor Sunucu uygulamalarında .NET 6 veya daha yüksek sürümü kullanın. IronPDF, .NET Core 3.1, .NET 5, .NET 6, .NET 7, ve .NET 8 ile uyumludur. En son LTS sürümü (.NET 6 veya .NET 8), istikrar ve uzun süreli destek sağlar. Azure'a dağıtıldığında, Azure App Service planının seçilen .NET sürümünü desteklediğinden emin olun.
Proje Ayarlarını Nasıl Yapılandırırım?
Blazor Sunucu projenizi yapılandırırken, müşteri ve sunucu arasında güvenli iletişim sağlamak için "HTTPS için Yapılandır" seçeneğini seçin. IronPDF'i Docker'de çalıştırmayı planlamıyorsanız, "Docker Etkinleştir" seçeneğini işaretli bırakın. Kimlik doğrulama için başlangıçta "Yok" seçeneğini seçin - gerekirse kimlik doğrulamayı daha sonra ekleyebilirsiniz. Proje adı, C# adlandırma kurallarına uygun olmalı ve boşluk veya özel karakter içermemelidir.
IronPDF Blazor Projeme Nasıl Kurarım?
Proje oluşturulduktan sonra, Visual Studio içinde NuGet'ten IronPDF kütüphanesini yüklemek için şu adımları izleyin. IronPDF, HTML dizgilerinden PDF oluşturma, URL'ler ve mevcut PDF belgeleri için bir API sağlar.
- Visual Studio'daki Çözüm Gezgini penceresinde,
Referencesöğesini sağ tıklayın veManage NuGet Packagesöğesini seçin. - Gözat'ı seçin ve
IronPdf'yi arayın. - Paketlerin en son sürümünü seçin, projeniz için kutuyu işaretleyin ve yükle'ye tıklayın.
Alternatif olarak, .NET CLI'yi kullanarak yükleyebilirsiniz:
Install-Package IronPdf
Belirli platformlara yönelik projeler için platforma özgü paketlere ihtiyacınız olabilir. Örneğin, Linux'a dağıtıyorsanız, Linux kurulum kılavuzunu gözden geçirin.
NuGet Paket Yöneticisini CLI Üzerine Neden Seçmeliyim?
Visual Studio'daki NuGet Paket Yöneticisi GUI'si, paket sürümlerini taramayı, bağımlılıkları görüntülemeyi ve aynı anda birden fazla projeyi yönetmeyi kolaylaştıran görsel bir arayüz sağlar. IronPDF'e yeni başlayan geliştiricilerin, mevcut paketleri ve açıklamalarını keşfetmesine yardımcı olur. CLI yaklaşımı, deneyimli geliştiriciler için daha hızlıdır ve otomatik yapı boru hatlarında veya Docker konteynerlarında çalışırken daha uygundur.
Hangi Sürüm IronPDF'i Yüklemeliyim?
IronPDF'in en son kararlı sürümünü, yeni özelliklere, performans iyileştirmelerine ve güvenlik güncellemelerine erişim için yükleyin. En son güncellemeler hakkında detaylar için sürüm notlarını kontrol edin. Mevcut bir projeyle çalışıyorsanız, diğer bağımlılıklarınızla uyumlu sürümlere dikkat edin. Üretim ortamları için, büyük sürümleri yükseltmeden önce kapsamlı bir şekilde test edin.
Kurulumun Başarılı Olduğunu Nasıl Doğrularım?
Kurulumdan sonra, Çözüm Gezgini'ndeki "Paketler" klasörünü kontrol ederek IronPDF'nin doğru bir şekilde yüklendiğini doğrulayın. Proje bağımlılıklarınız arasında "IronPDF" görmelisiniz. Bir C# dosyasına using IronPdf; ekleyin - IntelliSense, ad alanını tanımalıdır. Her şeyin doğru çalıştığını doğrulamak için basit bir test yaparak temel bir PDF oluşturabilirsiniz.
PDF Oluşturma İçin Yeni Bir Razor Bileşeni Nasıl Eklerim?
Blazor projenizde IronPDF kurulduktan sonra, yeni bir Razor Bileşeni ekleyin. Bu eğitim için, dosyaya IronPdfComponent adını verin. Bu bileşen, kullanıcı girdiğini ele alacak ve HTML içeriğine dayalı olarak dinamik PDF'ler oluşturacaktır. Blazor'daki bileşen mimarisi, uygulamanız genelinde paylaşılabilir, yeniden kullanılabilir PDF oluşturma işlevselliği oluşturmayı kolaylaştırır.
Ardından, kodu aşağıdaki gibi güncelleyin:
@page "/IronPdf"
@inject IJSRuntime JS
<h3>IronPdfComponent</h3>
<EditForm Model="@_InputMsgModel" id="inputText">
<div>
<InputTextArea @bind-Value="@_InputMsgModel.HTML" rows="20" />
</div>
<div>
<button type="button" @onclick="@SubmitHTML">Render HTML</button>
</div>
</EditForm>
@page "/IronPdf"
@inject IJSRuntime JS
<h3>IronPdfComponent</h3>
<EditForm Model="@_InputMsgModel" id="inputText">
<div>
<InputTextArea @bind-Value="@_InputMsgModel.HTML" rows="20" />
</div>
<div>
<button type="button" @onclick="@SubmitHTML">Render HTML</button>
</div>
</EditForm>
@code {
// Model to bind user input
private InputHTMLModel _InputMsgModel = new InputHTMLModel();
private async Task SubmitHTML()
{
// Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
// Create a renderer to convert HTML to PDF
var render = new IronPdf.ChromePdfRenderer();
// Configure rendering options for better output
render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
render.RenderingOptions.MarginTop = 40;
render.RenderingOptions.MarginBottom = 40;
// Render the HTML input into a PDF document
var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);
var fileName = "iron.pdf";
// Create a stream reference for the PDF content
using var streamRef = new DotNetStreamReference(stream: doc.Stream);
// Invoke JavaScript function to download the PDF in the browser
await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
}
public class InputHTMLModel
{
public string HTML { get; set; } = @"<h1>Welcome to IronPDF</h1>
<p>This is a sample PDF generated from HTML content in Blazor Server.</p>
<ul>
<li>Easy to use API</li>
<li>High-quality rendering</li>
<li>Full HTML5 and CSS3 support</li>
</ul>";
}
}
@code {
// Model to bind user input
private InputHTMLModel _InputMsgModel = new InputHTMLModel();
private async Task SubmitHTML()
{
// Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01";
// Create a renderer to convert HTML to PDF
var render = new IronPdf.ChromePdfRenderer();
// Configure rendering options for better output
render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
render.RenderingOptions.MarginTop = 40;
render.RenderingOptions.MarginBottom = 40;
// Render the HTML input into a PDF document
var doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML);
var fileName = "iron.pdf";
// Create a stream reference for the PDF content
using var streamRef = new DotNetStreamReference(stream: doc.Stream);
// Invoke JavaScript function to download the PDF in the browser
await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef);
}
public class InputHTMLModel
{
public string HTML { get; set; } = @"<h1>Welcome to IronPDF</h1>
<p>This is a sample PDF generated from HTML content in Blazor Server.</p>
<ul>
<li>Easy to use API</li>
<li>High-quality rendering</li>
<li>Full HTML5 and CSS3 support</li>
</ul>";
}
}
Imports System.Threading.Tasks
Imports Microsoft.JSInterop
Imports IronPdf
@Code
' Model to bind user input
Private _InputMsgModel As New InputHTMLModel()
Private Async Function SubmitHTML() As Task
' Set your IronPDF license key
IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY-1EF01"
' Create a renderer to convert HTML to PDF
Dim render = New IronPdf.ChromePdfRenderer()
' Configure rendering options for better output
render.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4
render.RenderingOptions.MarginTop = 40
render.RenderingOptions.MarginBottom = 40
' Render the HTML input into a PDF document
Dim doc = render.RenderHtmlAsPdf(_InputMsgModel.HTML)
Dim fileName = "iron.pdf"
' Create a stream reference for the PDF content
Using streamRef = New DotNetStreamReference(stream:=doc.Stream)
' Invoke JavaScript function to download the PDF in the browser
Await JS.InvokeVoidAsync("SubmitHTML", fileName, streamRef)
End Using
End Function
Public Class InputHTMLModel
Public Property HTML As String = "<h1>Welcome to IronPDF</h1>
<p>This is a sample PDF generated from HTML content in Blazor Server.</p>
<ul>
<li>Easy to use API</li>
<li>High-quality rendering</li>
<li>Full HTML5 and CSS3 support</li>
</ul>"
End Class
Bu bileşen, PDF oluşturma için ChromePdfRenderer sınıfını kullanır. Farklı seçeneklerle rendereyebilir, özel kağıt boyutları, kenar boşlukları, ve başlıklar/altbilgiler gibi.
Blazor Uygulamasında IronPDF tarafından oluşturulan PDF'nin indirilmesini sağlamak için bu JavaScript kodunu _layout.cshtml'ye ekleyin:
<script>
// JavaScript function to download PDFs generated by IronPdf
window.SubmitHTML = async (fileName, contentStreamReference) => {
// Get the PDF content as an ArrayBuffer
const arrayBuffer = await contentStreamReference.arrayBuffer();
// Create a Blob from the ArrayBuffer
const blob = new Blob([arrayBuffer]);
// Create an object URL for the Blob
const url = URL.createObjectURL(blob);
// Create an anchor element to initiate the download
const anchorElement = document.createElement("a");
anchorElement.href = url;
anchorElement.download = fileName ?? "download.pdf";
// Programmatically click the anchor to start the download
anchorElement.click();
// Clean up by removing the anchor and revoking the object URL
anchorElement.remove();
URL.revokeObjectURL(url);
};
</script>
<script>
// JavaScript function to download PDFs generated by IronPdf
window.SubmitHTML = async (fileName, contentStreamReference) => {
// Get the PDF content as an ArrayBuffer
const arrayBuffer = await contentStreamReference.arrayBuffer();
// Create a Blob from the ArrayBuffer
const blob = new Blob([arrayBuffer]);
// Create an object URL for the Blob
const url = URL.createObjectURL(blob);
// Create an anchor element to initiate the download
const anchorElement = document.createElement("a");
anchorElement.href = url;
anchorElement.download = fileName ?? "download.pdf";
// Programmatically click the anchor to start the download
anchorElement.click();
// Clean up by removing the anchor and revoking the object URL
anchorElement.remove();
URL.revokeObjectURL(url);
};
</script>
Shared klasöründeki NavMenu.razor dosyasını düzenleyerek yeni Razor bileşenimize bir gezinme sekmesi ekleyin. Aşağıdaki kodu ekleyin:
<div class="nav-item px-3">
<NavLink class="nav-link" href="IronPdf">
<span class="oi oi-list-rich" aria-hidden="true"></span> IronPdf
</NavLink>
</div>
<div class="nav-item px-3">
<NavLink class="nav-link" href="IronPdf">
<span class="oi oi-list-rich" aria-hidden="true"></span> IronPdf
</NavLink>
</div>
Bunların hepsi uygulandıktan sonra, çözümünüzü çalıştırabilirsiniz ve şunu görmelisiniz:
Blazor'da PDF İndirmek için Neden JavaScript Kullanmalıyım?
Blazor Sunucu, C# kodunun tamamının sunucuda çalıştığı bir SignalR bağlantısı üzerinde çalışır. Tarayıcıya özgü eylemleri, dosya indirmeleri gibi tetiklemek için JavaScript interop gereklidir. DotNetStreamReference sınıfı, PDF dosyasının tamamını bir kerede belleğe yüklemeden ikili verileri sunucudan istemciye aktarır. Bu yaklaşım, base64 kodlamadan daha verimlidir ve büyük PDF'ler için iyi çalışır. Alternatif yaklaşımlar için, PDF'leri bellek akışlarına ihraç etmeyi göz önünde bulundurun.
PDF İndirmelerini Uygularken Yaygın Sorunlar Nelerdir?
Yaygın zorluklar arasında büyük dosyaların SignalR bağlantısını zaman aşımına uğratması, eşzamanlı PDF oluşturma isteklerini yönetmek ve kaynakların doğru şekilde boşaltılmasını sağlamaktır. Bellek sızıntılarını önlemek için, PDF belgelerini ve MemoryStream'leri her zaman uygun şekilde imha edin. Daha iyi performans için async PDF oluşturmayı uygulamayı göz önünde bulundurun. Render sorunlarıyla karşılaşırsanız, render seçenekleri belgelerini yapılandırma ipuçları için kontrol edin.
Büyük PDF Dosyalarını Nasıl Ele Alırım?
Büyük PDF'ler için, ilerleme göstergelerini ve parçalanmış indirmeleri uygulamayı düşünün. PDF boyutunu sıkıştırma teknikleri kullanarak optimize edebilirsiniz. Blazor Server konfigürasyonunuzda uygun zaman aşımı sürelerini belirleyin:
services.AddServerSideBlazor()
.AddHubOptions(options =>
{
options.MaximumReceiveMessageSize = 10 * 1024 * 1024; // 10MB
options.ClientTimeoutInterval = TimeSpan.FromSeconds(60);
});
services.AddServerSideBlazor()
.AddHubOptions(options =>
{
options.MaximumReceiveMessageSize = 10 * 1024 * 1024; // 10MB
options.ClientTimeoutInterval = TimeSpan.FromSeconds(60);
});
Çok büyük belgeler için, doğrudan yayınlama yerine öncelikle sunucu depolamasına kaydedip bir indirme bağlantısı sağlamayı düşünün.
Akış Referansları ve Doğrudan İndirilmeler Ne Zaman Kullanılmalı?
Hemen indirilmesi gereken 50 MB'nin altındaki PDF'ler için DotNetStreamReference kullanın. Daha büyük dosyalar veya PDF'leri diske kaydetmeniz gereken durumlar için, PDF'yi sunucu üzerinde oluşturarak bir indirme bağlantısı sağlamayı düşünün. Doğrudan indirilmeler, raporlar ve faturalar için iyi çalışırken, çoklu PDF'lerin birleştirilmesi veya ayrılması gibi işlemler sunucu tarafı depolamadan faydalanabilir. Yaklaşımı seçerken uygulamanızın bellek kısıtları ve kullanıcı deneyimi gereksinimlerini düşünün.
Sıkça Sorulan Sorular
PDF oluşturma için yeni bir Blazor Sunucu projesi nasıl oluşturulur?
IronPDF ile Blazor Sunucu projesi oluşturmak için Visual Studio'da proje türü olarak 'Blazor Sunucu Uygulaması'nı seçin. Blazor Sunucu barındırma modeli, IronPDF ile sunucu tarafı işlem gerektiren PDF oluşturma senaryoları için uygun olan uygulama mantığını sunucu üzerinde yürütür.
PDF oluşturma ile Blazor Sunucu uygulamalarını kullanmanın ön koşulları nelerdir?
ASP.NET ve web geliştirme iş yükü ile Visual Studio 2022 veya daha yeni sürümüne ve .NET 6 SDK'sı veya daha yükseğine ihtiyacınız var. Blazor Sunucu uygulamaları sürekli bir sunucu bağlantısı gerektirir, bu da onları IronPDF kullanarak karmaşık HTML içeriklerinden PDF oluşturma veya sunucuda kalması gereken hassas verilerle çalışma için uygun hale getirir.
Blazor'da PDF oluşturma için hangi .NET sürümünü kullanmalıyım?
Blazor Sunucu uygulamalarında IronPDF ile en iyi uyumluluk ve performans için .NET 6 veya daha yüksek sürümü kullanın. IronPDF, .NET Core 3.1, .NET 5, .NET 6, .NET 7 ve .NET 8'i destekler. En son LTS sürümleri (.NET 6 veya .NET 8), istikrar ve uzun vadeli destek sunar.
Blazor PDF uygulaması için proje ayarlarını nasıl yapılandırırım?
IronPDF için Blazor Sunucu projenizi yapılandırırken güvenli iletişim için 'HTTPS için Yapılandır' seçeneğini seçin. IronPDF'i Docker konteynerlerinde çalıştırmayı planlamadığınız sürece 'Docker'ı Etkinleştir' seçeneğini işaretlemeyin. Kimlik doğrulama için 'Hiçbiri' ile başlayın - daha sonra ekleyebilirsiniz. Özel karakterler veya boşluklar olmadan uygun C# adlandırma kurallarını kullanın.
Blazor Sunucu'da HTML'den PDF'ye hızlıca nasıl PDF oluşturabilirim?
IronPDF, Blazor Sunucu için HTML'den PDF'ye dönüştürme için basit bir satırlık çözüm sunar: IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath). Bu, Blazor bileşenlerinizi minimum kodla PDF'lere dönüştürmenizi sağlar.
Blazor'da PDF oluşturmayı uygulamanın en az iş akışı nedir?
En az iş akışı 5 adımdan oluşur: 1) IronPDF HTML'den PDF'ye kütüphanesini yükleyin, 2) Visual Studio'da yeni bir Blazor Projesi oluşturun, 3) IronPDF kullanarak URL ile web sayfalarını PDF dokümanlarına dönüştürün, 4) İstemcinin web tarayıcısına web sayfalarını oluşturun ve 5) HTML dizelerinden oluşturulan PDF belgelerini görüntüleyin.

