Blazor ile PDF Oluşturma için IronPDF'nin Kullanım Rehberi | IronPDF

IronPDF Blazor Server Eğitimi: HTML'yi C# ile PDF'e Dönüştürme

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

IronPDF, .NET 6'yı destekleyerek ve Blazor bileşenlerinizden doğrudan PDF oluşturma yetenekleri sağlayarak, C# ile Blazor Sunucu uygulamalarında HTML'yi PDF'e dönüştürmeyi minimal kurulumla mümkün kılar.

Hızlı Başlat: Blazor Sunucusunda PDF'leri Oluşturma

IronPDF ile Blazor Sunucu uygulamalarınıza başlamanız. Bu örnek, HTML içeriğini PDF olarak nasıl oluşturacağınızı gösterir. Blazor bileşenlerinizi birkaç satır kod ile PDF'lere dönüştürün.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronPdf yükleyin

    PM > Install-Package IronPdf
  2. Bu kod parçasını kopyalayıp çalıştırın.

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

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

    arrow pointer

Yeni Bir Blazor Sunucu Projesi Nasıl Oluşturulur?

Yeni bir proje oluşturun ve Blazor Sunucu Uygulaması türünü seçin. Visual Studio, sunucu tarafı Blazor uygulamaları oluşturmaya yönelik bir şablon sunar ve bu şablon, PDF oluşturma için .NET kullanabilir. Blazor Sunucu barındırma modeli, uygulama mantığınızı sunucuda çalıştırır ve bu, sunucu tarafı işlem gerektiren PDF oluşturma senaryoları için uygundur.

Blazor Sunucu Uygulaması ve diğer Blazor proje şablonları ile açıklamalar içeren Visual Studio Proje Oluşturma penceresi

Blazor Sunucu Uygulamaları için Ön Koşullar Nelerdir?

IronPDF ile bir Blazor Sunucu uygulaması oluşturmadan önce, Visual Studio 2022 veya daha sonraki bir sürümün kurulu olduğundan ve ASP.NET ve web geliştirme iş yüküne sahip olduğunuzdan emin olun. .NET 6 SDK'sını veya daha üstünü ihtiyaçınız var. Blazor Sunucu uygulamaları, sunucuyla sürekli bir bağlantı gerektirir ve bu, karmaşık HTML içeriğinden PDF'ler oluşturmanız gerektiğinde veya sunucuda kalması gereken hassas verilerle çalışırken uygundur.

Hangi .NET Sürümünü Kullanmalıyım?

IronPDF'nin Blazor Sunucu uygulamalarında uyumluluk ve performans için .NET 6 veya daha yüksek bir 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 vadeli destek sağlar. Azure'a dağıtırken, Azure Uygulama Hizmeti planınızın seçtiğiniz .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, istemci ve sunucu arasında güvenli iletişimi sağlamak için "HTTPS İçin Yapılandır" seçeneğini seçin. IronPDF'yi Docker'da çalıştırmayı planlamıyorsanız "Docker'ı Etkinleştir" işaretli bırakmayın. Kimlik doğrulama için başlangıçta "Yok" seçeneğini edin - gerekiyorsa daha sonra kimlik doğrulama ekleyebilirsiniz. Proje adı, C# adlandırma kurallarına uygun olmalı ve boşluklar veya özel karakterler içermemelidir.

IronPDF'yi Blazor Projemde Nasıl Kurarım?

Proje oluşturulduktan sonra Visual Studio'dan IronPDF kütüphanesini NuGet'ten yüklemek için bu adımları izleyin. IronPDF, HTML dizelerinden PDF oluşturma, URL'ler ve mevcut PDF belgeleri için bir API sağlar.

  1. Visual Studio'da Çözüm Gezgini penceresinde, References öğesine sağ tıklayın ve Manage NuGet Packages seçin.
  2. Gözat'ı seçin ve IronPdf için arama yapın.
  3. Paketin en son sürümünü seçin, proje için işaret kutusunu işaretleyin ve kuruluma tıklayın.

Alternatif olarak, yüklemek için .NET CLI'yi kullanabilirsiniz:

Install-Package IronPdf

Belirli platformları hedefleyen projeler için platforma özel paketler gerekebilir. Örneğin, Linux'a dağıtırken, Linux kurulum kılavuzunu inceleyin.

CLI Üzerine NuGet Paket Yöneticisini Neden Tercih Etmeliyim?

Visual Studio'daki NuGet Paket Yöneticisi GUI'si, paket sürümlerine göz atmayı, bağımlılıkları görüntülemeyi ve aynı anda birden fazla projeyi yönetmeyi kolaylaştıran bir görsel arayüz sağlar. IronPDF'ye yeni olan 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 Docker konteynerleriyle çalışırken veya otomatik derleme hatları için daha uygundur.

Hangi IronPDF Sürümünü Yüklemeliyim?

Yeni özelliklere erişim, performans iyileştirmeleri ve güvenlik güncellemeleri için IronPDF'nin en son kararlı sürümünü yükleyin. Son güncellemeler hakkında ayrıntılar için versiyon değişiklik günlüğünü kontrol edin. Mevcut bir proje ile çalışıyorsanız, diğer bağımlılıklarınızla sürüm uyumluğunu kontrol edin. Üretim ortamları için, büyük sürümlere yükseltmeden önce kapsamlı bir şekilde test edin.

Kurulumun Başarılı Olduğunu Nasıl Doğrularım?

Kurulumdan sonra, IronPDF'nin doğru kurulu olup olmadığını Çözüm Gezgini'ndeki "Paketler" klasörünü kontrol ederek doğrulayın. Proje bağımlılıklarınız arasında "IronPdf" görünmelidir. using IronPdf; C# dosyasına ekleyin - IntelliSense, ad alanını tanımalıdır. Her şeyin düzgün çalıştığını doğrulamak için HTML'ten temel bir PDF oluşturarak basit bir test çalıştırabilirsiniz.

PDF Oluşturma İçin Yeni Bir Razor Bileşeni Nasıl Eklerim?

IronPDF Blazor projenizde kurulduktan sonra, yeni bir Razor Bileşeni ekleyin. Bu eğitici için adını "IronPdfComponent" koyun. Bu bileşen kullanıcı girdisini ele alacak ve HTML içeriğine dayalı olarak PDF'leri dinamik şekilde 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.

Razor Bileşeni seçili ve IronPdfComponent dosya adı olarak girilmiş şekilde Visual Studio Yeni Öğe Ekleme penceresi

Bunun 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ıyor. Özel kağıt boyutları, kenar boşlukları ve başlıklar/altbilgiler gibi çeşitli seçeneklerle renderlemeyi özelleştirebilirsiniz.

IronPDF tarafından oluşturulan PDF'nin Blazor Uygulamasında indirilmesine izin vermek için bu JavaScript kodunu _layout.cshtml içerisine 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

Yeni Razor bileşenimiz için bir navigasyon sekmesi dahil etmek amacıyla Paylaşılan klasördeki NavMenu.razor dosyasını düzenleyin. 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

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

Ana içerik alanında HTML giriş alanı ve HTML Oluştur düğmesini gösteren IronPDf bileşenli Blazor uygulaması

Blazor'da PDF İndirmeleri için Neden JavaScript Kullanın?

Blazor Sunucu SignalR bağlantısı üzerinde çalışır ve tüm C# kodu sunucuda çalıştırılır. Tarayıcıya özgü dosya indirme gibi eylemleri tetiklemek için JavaScript etkileşimi gereklidir. DotNetStreamReference sınıfı, tüm PDF'yi bir kerede belleğe yüklemeden ikili verileri sunucudan istemciye aktarır. Bu yaklaşım, base64 kodlamadan daha etkilidir ve büyük PDF'ler için iyi çalışır. Alternatif yaklaşımlar için PDF'leri bellek akışlarına aktarmayı düşünün.

PDF İndirmeleri Uygulanırken Yaygın Sorunlar Nelerdir?

Yaygın zorluklar arasında, SignalR bağlantısının kesilmesine neden olabilecek büyük dosyaların ele alınması, eşzamanlı PDF oluşturma isteklerinin yönetilmesi ve kaynakların doğru şekilde elden çıkarılmasının sağlanması yer alır. Bellek sızıntılarını önlemek için, her zaman PDF belgelerini ve akışlarını uygun şekilde elden çıkarın. Daha iyi performans için asyenkron PDF oluşturmayı hayata geçirin. Bir render sorunu ile karşılaşırsanız, yapılandırma ipuçları için render seçenekleri belgelerine göz atın.

Büyük PDF Dosyalarını Nasıl Ele Alırım?

Büyük PDF'ler için ilerleme göstergeleri ve parçalı indirmeler uygulamayı düşünün. PDF boyutunu sıkıştırma teknikleriyle optimize edebilirsiniz. Blazor Sunucu yapılandırmanızda uygun zaman aşımı sürelerini ayarlayın:

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, önce sunucu depolamasına kaydetmeyi ve doğrudan akış yerine indirme bağlantısı sağlamayı düşünün.

Akış Referanslarını Ne Zaman Doğrudan İndirmelere Karşı Kullanmalıyım?

50MB'nin altında ve hemen indirilmesi gereken PDF'ler için DotNetStreamReference kullanın. Daha büyük dosyalar veya PDF'leri diske kaydetmeniz gerektiğinde, PDF'yi sunucuda oluşturmayı ve bir indirme bağlantısı sağlamayı düşünün. Doğrudan indirmeler raporlar ve faturalar için iyi çalışır, toplu işlem veya birden fazla PDF'yi birleştirmek sunucu tarafı depolamadan yararlanabilir. Bir yaklaşım seçerken uygulamanızın bellek kısıtlamalarını ve kullanıcı deneyimi gerekliliklerini göz önünde bulundurun.

Sıkça Sorulan Sorular

PDF oluşturma için yeni bir Blazor Sunucu projesini nasıl oluştururum?

IronPDF ile bir Blazor Sunucu projesi oluşturmak için, Visual Studio'da proje tipi olarak 'Blazor Sunucu Uygulaması'nı seçin. Blazor Sunucu barındırma modeli, uygulama mantığını sunucuda çalıştırır ve IronPDF ile sunucu tarafı işleme gerektiren PDF oluşturma senaryoları için idealdir.

PDF oluşturma ile Blazor Sunucu uygulamalarını kullanmanın ön koşulları nelerdir?

Visual Studio 2022 veya daha ileri bir sürüme ve .NET 6 SDK veya daha üstüne ek olarak, ASP.NET ve web geliştirme iş yüküne ihtiyaçınız var. Blazor Sunucu uygulamaları, PDF'leri IronPDF kullanarak karışık HTML içeriklerinden oluşturmak veya hassas verilerle çalışırken sunucuda kalmaları gerektiğinden sürekli bir sunucu bağlantısı gerektirir.

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 üstü sürümlerini 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) stabilite ve uzun dönem destek sağlar.

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'yi Docker konteynerlerinde çalıştırmayı planlamıyorsanız 'Docker'ı Etkinleştir' seçeneğini işaretlemeyin. Başlangıçta kimlik doğrulamayı 'Yok' olarak seçin - daha sonra ekleyebilirsiniz. Boşluk veya özel karakterler kullanmadan uygun C# adlandırma kurallarını uygulayın.

Blazor Sunucu'da HTML'den hızla PDF'ler nasıl oluşturabilirim?

IronPDF, Blazor Sunucu'da HTML'den PDF'ye dönüştürme için basit bir tek satır çözümü sunar: IronPdf.HtmlToPdf.RenderHtmlAsPdf(htmlContent).SaveAs(outputPath). Bu, Blazor bileşenlerinizi minimum kod ile PDF'lere dönüştürmenizi sağlar.

Blazor'da PDF oluşturmayı uygulamak için minimal iş akışı nedir?

Minimal 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 belgelerine dönüştürün, 4) Web sayfalarını istemcinin web tarayıcısına işleyin ve 5) HTML dizgelerinden oluşturulan PDF belgelerini görüntüleyin.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında lisans derecesine sahiptir (Carleton Üniversitesi) ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirme üzerine uzmanlaşmıştır. Kullanıcı dostu ve estetik açıdan hoş arayüzler tasarlamaya tutkuyla bağlı olan Curtis, modern çerç...

Daha Fazlasını Oku
Başlamaya Hazır mısınız?
Nuget Indirmeler 18,332,619 | Sürüm: 2026.4 yeni yayınlandı
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizin PDF olduğunu izleyin.