Blazor için PDF Üretimi için IronPDF Nasıl Kullanılır | IronPDF

IronPDF Blazor Sunucu Eğitim: HTML'den C#'te PDF'ye Dönüştürme

This article was translated from English: Does it need improvement?
Translated
View the article in English

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.

  1. IronPDF aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronPdf
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath);
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronPDF kullanmaya başlayın

    arrow pointer

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.

Visual Studio Proje Oluşturma diyalogu, Blazor Sunucu Uygulaması ve açıklamalar ile diğer Blazor proje şablonlarını gösteriyor

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.

  1. Visual Studio'daki Çözüm Gezgini penceresinde, References öğesini sağ tıklayın ve Manage NuGet Packages öğesini seçin.
  2. Gözat'ı seçin ve IronPdf'yi arayın.
  3. 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.

Visual Studio Yeni Öğe Ekle diyalogu, Razor Bileşeni seçilmiş ve dosya adı olarak IronPdfComponent girilmiş

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>
HTML
@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
$vbLabelText   $csharpLabel

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>
JAVASCRIPT

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>
HTML

Bunların hepsi uygulandıktan sonra, çözümünüzü çalıştırabilirsiniz ve şunu görmelisiniz:

Blazor uygulaması, ana içerik alanında HTML giriş metin alanı ve Render HTML butonunu gösteren IronPDF bileşeni ile

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);
    });
$vbLabelText   $csharpLabel

Ç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.

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
Başlamaya Hazır mısınız?
Nuget İndirmeler 19,014,616 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.