UżYWANIE IRON SUITE

Jak przekonwertować CSHTML na PDF w C#

Konwertowanie CSHTML na PDF jest powszechnym wymaganiem w wielu aplikacjach. To zadanie można łatwo wykonać przy użyciu biblioteki IronPDF w języku C#.

IronPDF to popularna biblioteka .NET, która umożliwia programistom tworzenie, odczytywanie, edytowanie i konwertowanie dokumentów PDF programowo. W tym artykułe przeprowadzimy Cię przez kroki konwersji CSHTML do PDF z IronPDF w C#, wraz z przykładami.

Zanim zaczniemy, omówmy kilka ważnych pojęć, które są niezbędne do tego samouczka.

Ważne pojęcia

Konwerter plików PDF

Konwerter PDF to narzędzie, które konwertuje dowolny dokument do druku lub stronę internetową na dokument PDF. Może być używane do generowania plików PDF z HTML, Word, Excel lub innych dokumentów do druku. Konwertery PDF dostępne są w różnych formach, w tym narzędzia online, oprogramowanie desktopowe i biblioteki.

Widok Razor

Widok Razor to mechanizm szablonów używany w ASP.NET Core do dynamicznego generowania stron HTML. Jest to składnia znaczników, która łączy znaczniki HTML z kodem C#.

Jak konwertować CSHTML na PDF w C#, Rysunek 1: Widok Razor Widok Razor

Widok Razor ułatwia programistom tworzenie dynamicznych stron internetowych przez oddzielenie logiki prezentacyjnej od logiki biznesowej.

Klasa kontrolera

Klasa kontrolera to klasa C# obsługująca przychodzące żądania HTTP w aplikacji ASP.NET Core. Zawiera metody, które odpowiadają określonym czasownikom HTTP (np. GET, POST, PUT, DELETE) i zwraca odpowiedź HTTP.

Menedżer Pakietów NuGet

Menedżer Pakietów NuGet to narzędzie używane w Visual Studio do zarządzania pakietami w projektach .NET. Ułatwia programistom instalowanie, aktualizowanie i odinstalowywanie pakietów w swoich projektach. Pakiety NuGet to biblioteki zawierające kod wielokrotnego użytku i dystrybuowane za pośrednictwem Menedżera Pakietów NuGet.

Wstrzykiwanie zależności

Dependency Injection to wzorzec projektowy, który pozwala programistom rozdzielać komponenty aplikacji, wstrzykując zależności do swoich klas. Ułatwia testowanie i utrzymanie aplikacji przez redukcję zależności i uczynienie kodu bardziej modularnym.

Teraz, gdy omówiliśmy ważne pojęcia, przejdźmy do procesu konwersji CSHTML na PDF za pomocą IronPDF.

Co to jest CSHTML?

CSHTML to akronim od C# Razor Syntax HTML. Jest to typ pliku zawierający zarówno znaczniki HTML, jak i kod C#. Pliki te są używane w aplikacjach ASP.NET Core MVC do definiowania interfejsu użytkownika stron internetowych. Mechanizm widoku Razor jest używany do interpretowania plików CSHTML i generowania wyjścia HTML, które można renderować w przeglądarce internetowej.

Jak konwertować CSHTML na PDF w C#, Rysunek 2: CSHTML5 CSHTML5

Czym jest IronPDF?

IronPDF to potężna biblioteka .NET, która pozwala programistom tworzyć, odczytywać, edytować i konwertować dokumenty PDF w języku C#. Jest to popularne narzędzie do generowania dokumentów PDF programowo w aplikacjach .NET. IronPDF obsługuje szeroki zakres funkcji, w tym generowanie PDF, manipulację PDF, konwersję PDF oraz renderowanie PDF.

Jak konwertować CSHTML na PDF w C#, Rysunek 3: IronPDF for .NET IronPDF for .NET

How to Convert CSHTML HTML string to PDF files with IronPDF in C

Konwertowanie CSHTML na PDF z użyciem IronPDF to prosty proces. Biblioteka zapewnia wygodne API do konwertowania plików HTML na dokumenty PDF. Oto kroki do konwersji CSHTML na PDF za pomocą IronPDF w C#:

Krok 1 Instalacja IronPDF

Pierwszym krokiem jest zainstalowanie IronPDF z Menedżera Pakietów NuGet w twoim projekcie C#. Możesz zainstalować IronPDF, pobierając plik IronPDF.dll i dodając go do odniesień w projekcie. Aby zainstalować IronPDF przy użyciu Menedżera Pakietów NuGet, otwórz konsolę Menedżera Pakietów i uruchom następujące polecenie:

Krok 2 Tworzenie pliku CSHTML

Następnie utwórz plik CSHTML, zawierający treść, którą chcesz przekonwertować na PDF. W tym przykładzie stworzymy prosty samouczek CSHTML, który wyświetla tekst "Hello, World!".

@{
    Layout = null;
}
Hello
Hello, World!
@{
    Layout = null;
}
Hello
Hello, World!
@
If True Then
	Layout = Nothing
End If
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'Hello Hello, World!
$vbLabelText   $csharpLabel

Zapisz ten plik jako "Hello.cshtml" w katalogu projektowym.

Jak konwertować CSHTML na PDF w C#, Rysunek 4: Pliki PDF w C# Pliki PDF w C#

Krok 3 Konwersja CSHTML na dokument PDF

Aby przekonwertować plik CSHTML na PDF, będziemy korzystać z biblioteki IronPDF w C#. Oto kod do konwersji "Hello.cshtml" na PDF:

using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace CSHTMLtoPDF.Controllers
{
    public class HomeController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        public HomeController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
        }

        public IActionResult Index()
        {
            var items = new[] { "Item 1", "Item 2", "Item 3" };
            return View(items);
        }

        public IActionResult DownloadPDF()
        {
            var items = new[] { "Item 1", "Item 2", "Item 3" };

            // Initialize a new instance of ChromePdfRenderer from IronPDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Render the specified Razor view to a PDF document
            PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);

            // Set the headers to force the browser to download the PDF
            var contentDisposition = new System.Net.Mime.ContentDisposition
            {
                FileName = "Items.pdf",
                Inline = false,
            };
            Response.Headers.Add("Content-Disposition", contentDisposition.ToString());

            // Return the PDF document to the client
            return File(pdf.BinaryData, "application/pdf");
        }
    }
}
using System.IO;
using IronPdf;
using Microsoft.AspNetCore.Mvc;

namespace CSHTMLtoPDF.Controllers
{
    public class HomeController : Controller
    {
        private readonly IRazorViewRenderer _viewRenderService;
        public HomeController(IRazorViewRenderer viewRenderService)
        {
            _viewRenderService = viewRenderService;
        }

        public IActionResult Index()
        {
            var items = new[] { "Item 1", "Item 2", "Item 3" };
            return View(items);
        }

        public IActionResult DownloadPDF()
        {
            var items = new[] { "Item 1", "Item 2", "Item 3" };

            // Initialize a new instance of ChromePdfRenderer from IronPDF
            ChromePdfRenderer renderer = new ChromePdfRenderer();

            // Render the specified Razor view to a PDF document
            PdfDocument pdf = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items);

            // Set the headers to force the browser to download the PDF
            var contentDisposition = new System.Net.Mime.ContentDisposition
            {
                FileName = "Items.pdf",
                Inline = false,
            };
            Response.Headers.Add("Content-Disposition", contentDisposition.ToString());

            // Return the PDF document to the client
            return File(pdf.BinaryData, "application/pdf");
        }
    }
}
Imports System.IO
Imports IronPdf
Imports Microsoft.AspNetCore.Mvc

Namespace CSHTMLtoPDF.Controllers
	Public Class HomeController
		Inherits Controller

		Private ReadOnly _viewRenderService As IRazorViewRenderer
		Public Sub New(ByVal viewRenderService As IRazorViewRenderer)
			_viewRenderService = viewRenderService
		End Sub

		Public Function Index() As IActionResult
			Dim items = { "Item 1", "Item 2", "Item 3" }
			Return View(items)
		End Function

		Public Function DownloadPDF() As IActionResult
			Dim items = { "Item 1", "Item 2", "Item 3" }

			' Initialize a new instance of ChromePdfRenderer from IronPDF
			Dim renderer As New ChromePdfRenderer()

			' Render the specified Razor view to a PDF document
			Dim pdf As PdfDocument = renderer.RenderRazorViewToPdf(_viewRenderService, "Views/Home/Index.cshtml", items)

			' Set the headers to force the browser to download the PDF
			Dim contentDisposition = New System.Net.Mime.ContentDisposition With {
				.FileName = "Items.pdf",
				.Inline = False
			}
			Response.Headers.Add("Content-Disposition", contentDisposition.ToString())

			' Return the PDF document to the client
			Return File(pdf.BinaryData, "application/pdf")
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

Przeanalizujmy ten kod krok po kroku:

  • Najpierw importujemy niezbędne przestrzenie nazw, w tym przestrzeń nazw IronPDF, która zawiera funkcjonalność konwersji HTML na PDF.
  • Następnie definiujemy metodę Index, która po prostu zwraca listę elementów do widoku Razor.
  • Definiujemy metodę DownloadPDF, odpowiedziąlną za generowanie dokumentu PDF.
  • Zaczynamy od stworzenia renderera ChromePdfRenderer.
  • Następnie używamy metody rozszerzenia RenderRazorViewToPdf, aby wygenerować widok Razor z danymi do pliku PDF.
  • Ustawiamy nagłówki Content-Disposition, aby wymusić pobieranie PDF zamiast wyświetlania ich w przeglądarce.
  • Na końcu, zwracamy dokument PDF jako plik, używając metody File.

To jest podstawowy kod do konwersji CSHTML na PDF przy użyciu IronPDF w C#. Jednakże, istnieje wiele opcji i ustawień, które można wykorzystać do spersonalizowania wyjścia PDF. Przyjrzyjmy się niektórym z tych opcji.

Personalizacja wyjścia pliku PDF

IronPDF oferuje wiele opcji personalizacji wyjścia pliku PDF. Możesz ustawić opcje takie jak rozmiar strony, marginesy, orientacja, nagłówek i stopka oraz inne. Oto przykład, jak spersonalizować wyjście PDF:

using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // Initialize a new instance of ChromePdfRenderer
            var renderer = new ChromePdfRenderer();

            // Customize rendering options for the PDF
            renderer.RenderingOptions.MarginTop = 10;    // Set top margin in millimeters
            renderer.RenderingOptions.MarginBottom = 10; // Set bottom margin in millimeters
            renderer.RenderingOptions.MarginLeft = 20;   // Set left margin in millimeters
            renderer.RenderingOptions.MarginRight = 20;  // Set right margin in millimeters

            // Set HTML header for the PDF with a logo
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
            {
                MaxHeight = 20, // Height of header in millimeters
                HtmlFragment = "<img src='logo.png'>",
                BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
            };

            // Set HTML footer for the PDF with page numbers
            renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
            {
                MaxHeight = 15, // Height of footer in millimeters
                HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
                DrawDividerLine = true // Draw a line above the footer
            };

            // Convert HTML content to PDF
            var pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>");

            // Save the PDF to the file system
            pdf.SaveAs("Hello.PDF");
        }
    }
}
using IronPdf;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
            // Initialize a new instance of ChromePdfRenderer
            var renderer = new ChromePdfRenderer();

            // Customize rendering options for the PDF
            renderer.RenderingOptions.MarginTop = 10;    // Set top margin in millimeters
            renderer.RenderingOptions.MarginBottom = 10; // Set bottom margin in millimeters
            renderer.RenderingOptions.MarginLeft = 20;   // Set left margin in millimeters
            renderer.RenderingOptions.MarginRight = 20;  // Set right margin in millimeters

            // Set HTML header for the PDF with a logo
            renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
            {
                MaxHeight = 20, // Height of header in millimeters
                HtmlFragment = "<img src='logo.png'>",
                BaseUrl = new Uri(@"C:\assets\images\").AbsoluteUri
            };

            // Set HTML footer for the PDF with page numbers
            renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
            {
                MaxHeight = 15, // Height of footer in millimeters
                HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
                DrawDividerLine = true // Draw a line above the footer
            };

            // Convert HTML content to PDF
            var pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>");

            // Save the PDF to the file system
            pdf.SaveAs("Hello.PDF");
        }
    }
}
Imports IronPdf

Namespace ConsoleApp
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Initialize a new instance of ChromePdfRenderer
			Dim renderer = New ChromePdfRenderer()

			' Customize rendering options for the PDF
			renderer.RenderingOptions.MarginTop = 10 ' Set top margin in millimeters
			renderer.RenderingOptions.MarginBottom = 10 ' Set bottom margin in millimeters
			renderer.RenderingOptions.MarginLeft = 20 ' Set left margin in millimeters
			renderer.RenderingOptions.MarginRight = 20 ' Set right margin in millimeters

			' Set HTML header for the PDF with a logo
			renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
				.MaxHeight = 20,
				.HtmlFragment = "<img src='logo.png'>",
				.BaseUrl = (New Uri("C:\assets\images\")).AbsoluteUri
			}

			' Set HTML footer for the PDF with page numbers
			renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
				.MaxHeight = 15,
				.HtmlFragment = "<center><i>{page} of {total-pages}</i></center>",
				.DrawDividerLine = True
			}

			' Convert HTML content to PDF
			Dim pdf = renderer.RenderHtmlAsPdf("<div>Hello, World!</div>")

			' Save the PDF to the file system
			pdf.SaveAs("Hello.PDF")
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

W tym przykładzie najpierw tworzymy instancję klasy ChromePdfRenderer. Następnie ustawiamy różne opcje, korzystając z właściwości RenderingOptions klasy ChromePdfRenderer. Oto niektóre z opcji, które ustawiliśmy:

  • MarginTop, MarginBottom, MarginLeft, MarginRight: Ustawiono marginesy dokumentu PDF.
  • HtmlHeader: Ustawiono nagłówek dokumentu PDF do wyświetlania logo.
  • HtmlFooter: Ustawiono stopkę dokumentu PDF do wyświetlania numeru strony i liczby wszystkich stron.

Po ustawieniu opcji wywołujemy metodę RenderHtmlAsPdf z treścią HTML. Na końcu zapisujemy dokument PDF do pliku o nazwie "Hello.PDF".

Testowanie aplikacji

Po umieszczeniu całego niezbędnego kodu możemy teraz przetestować aplikację. Postępuj zgodnie z poniższymi wskazówkami:

  • Uruchom aplikację, naciskając F5 lub klikając zielony przycisk "Play" w Visual Studio.
  • W przeglądarce internetowej przejdź do http://localhost:/Home/Index, gdzie znajduje się numer portu przypisany przez Visual Studio.
  • Zweryfikuj, czy lista elementów jest wyświetlana poprawnie.
  • Kliknij link "Pobierz PDF", aby wygenerować i pobrać dokument PDF.

Jeśli wszystko działa poprawnie, powinieneś zobaczyć dokument PDF zawierający listę elementów, które wcześniej zdefiniowałeś.

Konwersja PDF do pliku CSHTML za pomocą IronPDF

Jak konwertować CSHTML na PDF w C#, Rysunek 7: PDF do CSHTML PDF na CSHTML

Aby zademonstrować, jak konwertować PDF na plik CSHTML za pomocą IronPDF, stworzymy nową aplikację konsolową w Visual Studio i użyjemy IronPDF do konwersji przykładowego dokumentu PDF na plik CSHTML. Wykonaj te kroki:

Krok 1 Utwórz nową aplikację konsolową

Otwórz Visual Studio i utwórz nową aplikację konsolową, wybierając "Plik > Nowy > Projekt" z menu, a następnie wybierając "Konsola (.NET Framework)" lub "Konsola (.NET Core)" z listy szablonów projektów.

Krok 2 Instalacja pakietu NuGet IronPDF

Następnie musimy zainstalować pakiet NuGet IronPDF w naszej aplikacji konsolowej. Aby to zrobić, kliknij prawym przyciskiem na projekt w Eksploratorze rozwiązań i wybierz "Zarządzaj pakietami NuGet" z menu kontekstowego.

W Menedżerze Pakietów NuGet wyszukaj "IronPDF" i wybierz pakiet "IronPDF" z wyników wyszukiwania. Kliknij przycisk "Instaluj", aby zainstalować pakiet i jego zależności.

Krok 3 Dodaj pliki PDF i CSHTML do projektu

Dla tego przykładu użyjemy przykładowego pliku PDF, który chcemy przekonwertować na plik CSHTML. Możesz użyć dowolnego pliku PDF dla tego kroku.

Dodaj plik PDF do projektu, klikając prawym przyciskiem na projekt w Eksploratorze rozwiązań i wybierając "Dodaj > Istniejący element" z menu kontekstowego.

Musimy również stworzyć pusty plik CSHTML, którego użyjemy do przechowywania konwertowanego łańcucha HTML. Aby to zrobić, kliknij prawym przyciskiem na projekt w Eksploratorze rozwiązań i wybierz "Dodaj > Nowy element" z menu kontekstowego. Wybierz "Strona HTML" z listy szablonów, nadaj nazwę plikówi (np. "converted.cshtml") i kliknij "Dodaj".

Krok 4 Konwersja pliku PDF do formatu CSHTML

Mając już niezbędne pliki, możemy teraz napisać kod do konwersji pliku PDF na plik CSHTML przy użyciu IronPDF. Dodaj następujący kod do metody Main swojej aplikacji konsolowej:

using IronPdf;

namespace PdfToHtml
{
    class Program
    {
        static void Main(string[] args)
        {
            // Load the PDF file
            PdfDocument pdf = PdfDocument.FromFile("sample.PDF");

            // Convert the PDF to an HTML string
            string html = pdf.ToHtml();

            // Save the HTML string to the CSHTML file
            System.IO.File.WriteAllText("converted.cshtml", html);
        }
    }
}
using IronPdf;

namespace PdfToHtml
{
    class Program
    {
        static void Main(string[] args)
        {
            // Load the PDF file
            PdfDocument pdf = PdfDocument.FromFile("sample.PDF");

            // Convert the PDF to an HTML string
            string html = pdf.ToHtml();

            // Save the HTML string to the CSHTML file
            System.IO.File.WriteAllText("converted.cshtml", html);
        }
    }
}
Imports IronPdf

Namespace PdfToHtml
	Friend Class Program
		Shared Sub Main(ByVal args() As String)
			' Load the PDF file
			Dim pdf As PdfDocument = PdfDocument.FromFile("sample.PDF")

			' Convert the PDF to an HTML string
			Dim html As String = pdf.ToHtml()

			' Save the HTML string to the CSHTML file
			System.IO.File.WriteAllText("converted.cshtml", html)
		End Sub
	End Class
End Namespace
$vbLabelText   $csharpLabel

Dłączego warto korzystać z IronPDF?

IronPDF jest popularnym wyborem wśród programistów .NET z kilku kluczowych powodów:

Zaawansowane możliwości generowania plików PDF: IronPDF oferuje szeroki zakres funkcji i opcji do programowego tworzenia i edycji dokumentów PDF, w tym możliwość dodawania tekstu, obrazów i innych treści do stron PDF, a także możliwość łączenia i dzielenia istniejących dokumentów PDF.

Wszechstronne możliwości konwersji plików PDF: IronPDF nie tylko pozwala programistom generować dokumenty PDF, ale także zapewnia funkcje konwersji plików PDF na ciągi znaków HTML lub pliki CSHTML. Może to być przydatne w sytuacjach, gdy trzeba wyświetlić zawartość pliku PDF w aplikacji internetowej lub wyodrębnić dane z dokumentów PDF i wykorzystać je w internetowym przepływie pracy.

Łatwe w użyciu API: API IronPDF zostało zaprojektowane tak, aby było intuicyjne i łatwe w użyciu, z szeroką gamą metod pomocniczych i właściwości, które ułatwiają programistom generowanie i manipulowanie dokumentami PDF programowo.

Silne wsparcie społeczności: IronPDF ma dużą i aktywną społeczność programistów .NET, którzy przyczyniają się do jego rozwoju i zapewniają wsparcie innym programistom korzystającym z biblioteki.

Dobra dokumentacja: Dokumentacja IronPDF jest obszerna i dobrze zorganizowana, zawiera szczegółową Dokumentację API, samouczki i przykłady, które ułatwiają programistom rozpoczęcie pracy i naukę korzystania z biblioteki.

Połączenie potężnych możliwości generowania i konwersji plików PDF, łatwego w użyciu API, silnego wsparcia społeczności oraz dobrej dokumentacji sprawia, że IronPDF jest popularnym wyborem wśród programistów .NET, którzy muszą pracować z dokumentami PDF w swoich aplikacjach.

Wnioski

Konwertowanie CSHTML na PDF jest powszechnym wymaganiem w wielu aplikacjach. Dzięki IronPDF zadanie to można łatwo wykonać w języku C#. W tym artykułe przedstawiliśmy kroki konwersji CSHTML do formatu PDF za pomocą IronPDF wraz z przykładami.

Pokazaliśmy również, jak dostosować plik PDF, ustawiając różne opcje, takie jak rozmiar papieru, marginesy, nagłówek i stopka oraz inne. Dzięki IronPDF możesz szybko i łatwo tworzyć wysokiej jakości dokumenty PDF z plików CSHTML.

Niezależnie od tego, czy chcesz tworzyć dokumenty PDF od podstaw, konwertować pliki PDF na ciągi znaków HTML lub pliki CSHTML, czy też wyodrębniać dane z dokumentów PDF, IronPDF zapewnia elastyczny i intuicyjny interfejs API, który ułatwia wykonanie zadania.

Dzięki silnemu wsparciu społeczności i obszernej dokumentacji IronPDF jest popularnym wyborem wśród programistów .NET, którzy muszą pracować z plikami PDF w swoich aplikacjach. Kupując pakiet Iron Software, programiści mogą uzyskać dostęp do kompleksowego zestawu bibliotek .NET do pracy z popularnymi formatami plików w obniżonej cenie, co stanowi doskonałą wartość dla każdego zespołu programistów .NET.

Jeśli potrzebujesz pracować z dokumentami PDF w swoich aplikacjach .NET, zdecydowanie warto rozważyć IronPDF. Dzięki swoim zaawansowanym funkcjom, łatwości obsługi i szerokiej gamie opcji licencyjnych jest to wszechstronne i niezawodne narzędzie, które pomoże Ci szybko i skutecznie wykonać zadanie.