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#.
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.
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.
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!
Zapisz ten plik jako "Hello.cshtml" w katalogu projektowym.
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
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
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
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
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.