Wie man HTML in PDF in ASP .NET Core konvertiert
.NET Core PDF-Generator
Die Erstellung von .NET Core PDF-Dateien ist eine mühsame Aufgabe. Die Arbeit mit PDFs in ASP.NET MVC-Projekten sowie die Konvertierung von MVC-Ansichten, HTML-Dateien und Online-Webseiten in PDF kann eine Herausforderung sein. Dieses Tutorial arbeitet mit dem IronPDF-Tool, um diese Probleme zu lösen, und bietet Anleitungen für viele Ihrer PDF .NET-Anforderungen.
IronPDF unterstützt auch das Debugging Ihres HTML mit Chrome für Pixel Perfect PDFs.
Konvertieren von HTML in PDF in .NET Core
- Laden Sie die C#-Bibliothek herunter, um HTML in PDF zu konvertieren
- Verwenden Sie
RenderUrlAsPdf
, um Web-URLs in PDF zu konvertieren - HTML-Markdown-Strings mit
RenderHtmlAsPdf
in PDF umwandeln - Konvertieren Sie MVC-Ansichten in PDF, indem Sie die Model- und Service-Klasse konfigurieren
- Ändern Sie die HTML-Seite, um das Modell zu verwenden und eine Methode aufzurufen, um das HTML an
RenderHtmlAsPdf
zu übergeben.
Übersicht
Nach diesem Tutorial werden Sie in der Lage sein:
- Konvertierung in PDF aus verschiedenen Quellen wie URL, HTML, MVC-Ansichten
- Erweiterte Optionen für verschiedene PDF-Ausgabeeinstellungen
- Stellen Sie Ihr Projekt auf Linux und Windows bereit
- Arbeit mit Funktionen zur Bearbeitung von PDF-Dokumenten
- Kopf- und Fußzeilen hinzufügen, Dateien zusammenführen, Stempel hinzufügen
-
Arbeiten mit Dockers
Diese breite Palette an .NET Core HTML to PDF-Funktionen hilft bei einer ganzen Reihe von Projektanforderungen.
Erste Schritte mit IronPDF
Beginnen Sie noch heute mit der Verwendung von IronPDF in Ihrem Projekt mit einer kostenlosen Testversion.
Schritt 1
1. Die IronPDF-Bibliothek kostenlos installieren
IronPDF kann auf allen .NET-Projekttypen wie Windows-Anwendungen, ASP.NET MVC- und .NET Core-Anwendungen installiert und verwendet werden.
Um die IronPDF-Bibliothek zu unserem Projekt hinzuzufügen, gibt es zwei Möglichkeiten: entweder über den Visual Studio-Editor mit NuGet oder über die Befehlszeile mit dem Paketkonsolenmanager.
Installation mit NuGet
Um die IronPDF-Bibliothek zu unserem Projekt mithilfe von NuGet hinzuzufügen, können wir die visualisierte Oberfläche (NuGet-Paket-Manager) verwenden oder per Befehl über die Paket-Manager-Konsole:
1.1.1 Verwendung des NuGet-Paketmanagers
1- Right click on project name -> Select Manage NuGet Package
2- From browser tab -> search for IronPdf -> Install
3- Click Ok
4- Done!
1.1.2 Verwendung des NuGet-Paketkonsolenmanagers
1- From Tools -> NuGet Package Manager -> Package Manager Console
2- Run command -> Install-Package IronPdf
Anleitungen Tutorials
2. Website in PDF konvertieren
Beispiel: Konsolenanwendung ConvertUrlToPdf
Befolgen Sie diese Schritte, um ein neues Asp.NET MVC-Projekt zu erstellen
1- Open Visual Studio
2- Choose Create new project
3- Choose Console App (.NET Core)
4- Give our sample name “ConvertUrlToPdf” and click create
5- Now we have a console application created
6- Add IronPdf => click install
7- Fügen Sie unsere ersten Zeilen hinzu, die eine Hauptseite der Wikipedia-Website in PDF rendern
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-1.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.wikipedia.org/");
pdf.SaveAs("wiki.pdf");
8- Run and check created file wiki.pdf
3. .NET Core HTML in PDF konvertieren
Sample: ConvertHTMLToPdf Console application
To render HTML to PDF we have two ways:
1- Write HTML into string then render it
2- Write HTML into file and pass it path to IronPDF to render it
Rendering the HTML string sample code will look like this.
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-2.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>Hello IronPdf</h1>");
pdf.SaveAs("HtmlString.pdf");
Und das resultierende PDF wird so aussehen.
4. MVC-Ansicht in PDF konvertieren
Beispiel: TicketsApps .NET Core MVC-Anwendung
Lassen Sie uns ein Beispiel aus der Praxis umsetzen. Ich habe eine Online-Ticketverkaufsseite gewählt. Öffnen Sie die Website, navigieren Sie zu "Ticket buchen", geben Sie die erforderlichen Informationen ein und laden Sie dann Ihr Exemplar als PDF-Datei herunter.
Wir werden diese Schritte durchgehen:
- Projekt erstellen
- Client-Objektmodell erstellen
- Kundendienste erstellen (hinzufügen, anzeigen)
- Gestaltungsseite für Ticketbuchung
- Buchungsinformationen validieren und speichern
- PDF-Ticket herunterladen
Projekt erstellen
-
Wählen Sie das Projekt "ASP.NET Core Web App (Model-View-Controller)".
-
Nennen Sie das Projekt "TicketsApps"
-
Verwenden wir .NET 8 mit aktiviertem Linux-Docker. Ändern Sie in der Dockerdatei von "USER app" in "USER root". Auf diese Weise wird sichergestellt, dass der Bibliothek ausreichende Berechtigungen erteilt werden.
- Jetzt ist es so weit.
Client-Modell hinzufügen
-
Klicken Sie mit der rechten Maustaste auf den Ordner "Models" und fügen Sie eine Klasse hinzu.
-
Nennen Sie das Modell "ClientModel" und klicken Sie auf "Hinzufügen".
- Fügen Sie der Klasse ClientModel die Attribute "Name", "Telefon" und "E-Mail" hinzu. Machen Sie sie alle erforderlich, indem Sie das Attribut "Erforderlich" wie folgt über jedes von ihnen hinzufügen:
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-3.cs
public class ClientModel
{
[Required]
public string Name { get; set; }
[Required]
public string Phone { get; set; }
[Required]
public string Email { get; set; }
}
Kundendienste hinzufügen
-
Erstellen Sie einen Ordner und nennen Sie ihn "Dienste"
-
Fügen Sie eine Klasse namens "ClientServices" hinzu
-
Fügen Sie ein statisches Objekt vom Typ "ClientModel" hinzu, um es als Repository zu verwenden.
- Fügen Sie zwei Funktionen hinzu: eine für das Speichern von Clients im Repository und die zweite zum Abrufen gespeicherter Clients.
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-4.cs
public class ClientServices
{
private static ClientModel _clientModel;
public static void AddClient(ClientModel clientModel)
{
_clientModel = clientModel;
}
public static ClientModel GetClient()
{
return _clientModel;
}
}
Design Ticketbuchungsseite
-
Klicken Sie im Lösungsexplorer mit der rechten Maustaste auf den Ordner "Controllers" und fügen Sie einen Controller hinzu.
-
Nennen Sie es "BookTicketController"
-
Klicken Sie mit der rechten Maustaste auf die Indexfunktion (oder wie wir es Aktion nannten) und wählen Sie "Ansicht hinzufügen".
-
Fügen Sie eine Ansicht mit dem Namen "index" hinzu
- Aktualisieren Sie den HTML-Code wie folgt
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-5.cs
@model IronPdfMVCHelloWorld.Models.ClientModel
@{
ViewBag.Title = "Book Ticket";
}
<h2>Index</h2>
@using (Html.BeginForm())
{
<div class="form-horizontal">
@Html.ValidationSummary(true, "", new { @class = "text-danger" })
<div class="form-group">
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Name, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Phone, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Phone, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Phone, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Email, htmlAttributes: new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Email, new { htmlAttributes = new { @class = "form-control" } })
@Html.ValidationMessageFor(model => model.Email, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
<div class="col-md-10 pull-right">
<button type="submit" value="Save" class="btn btn-sm">
<i class="fa fa-plus"></i>
<span>
Save
</span>
</button>
</div>
</div>
</div>
}
- Fügen Sie einen Navigationslink hinzu, damit unsere Website-Besucher zu unserer neuen Buchungsseite navigieren können. Dies kann durch Aktualisieren des Layouts im vorhandenen Pfad (Views -> Shared -> _Layout.cshtml) erfolgen. Fügen Sie den folgenden Code hinzu:
<li class="nav-item">
<a
class="nav-link text-dark"
asp-area=""
asp-controller="BookTicket"
asp-action="Index"
>Book Ticket</a
>
</li>
<li class="nav-item">
<a
class="nav-link text-dark"
asp-area=""
asp-controller="BookTicket"
asp-action="Index"
>Book Ticket</a
>
</li>
-
Das Ergebnis sollte wie folgt aussehen.
- Navigieren Sie zur Seite "Ticket buchen". Es sollte dann so aussehen:
Bestätigen und Speichern der Buchungsinformationen
- Fügen Sie eine weitere Indexaktion mit dem Attribut [HttpPost] hinzu, um die MVC-Engine darüber zu informieren, dass diese Aktion zum Übermitteln von Daten ist. Überprüfen Sie das gesendete Modell, und wenn es gültig ist, leitet der Code den Besucher auf die TicketView-Seite um. Ist sie ungültig, erhält der Besucher auf dem Bildschirm eine Fehlermeldung zur Validierung.
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-7.cs
[HttpPost]
public ActionResult Index(ClientModel model)
{
if (ModelState.IsValid)
{
ClientServices.AddClient(model);
return RedirectToAction("TicketView");
}
return View(model);
}
Beispiel für die Fehlermeldungen

- Erstellen Sie ein Ticket-Modell in der Datei "Models" und fügen Sie den folgenden Code hinzu
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-9.cs
public class TicketModel : ClientModel
{
public int TicketNumber { get; set; }
public DateTime TicketDate { get; set; }
}
- TicketView hinzufügen, um unser Ticket anzuzeigen. In dieser Ansicht befindet sich eine Ticket-Teilansicht, die für die Anzeige des Tickets verantwortlich ist und später zum Drucken des Tickets verwendet wird.
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-8.cs
public ActionResult TicketView()
{
var rand = new Random();
var client = ClientServices.GetClient();
var ticket = new TicketModel()
{
TicketNumber = rand.Next(100000, 999999),
TicketDate = DateTime.Now,
Email = client.Email,
Name = client.Name,
Phone = client.Phone
};
return View(ticket);
}
- Klicken Sie mit der rechten Maustaste auf die Funktion TicketView, wählen Sie "Ansicht hinzufügen" und nennen Sie sie "TicketView". Fügen Sie den folgenden Code hinzu:
@model TicketsApps.Models.TicketModel @{ ViewData["Title"] = "TicketView"; }
@Html.Partial("_TicketPdf", Model) @using (Html.BeginForm()) { @Html.HiddenFor(c
=> c.Email) @Html.HiddenFor(c => c.Name) @Html.HiddenFor(c => c.Phone)
@Html.HiddenFor(c => c.TicketDate) @Html.HiddenFor(c => c.TicketNumber)
<div class="form-group">
<div class="col-md-10 pull-right">
<button type="submit" value="Save" class="btn btn-sm">
<i class="fa fa-plus"></i>
<span> Download Pdf </span>
</button>
</div>
</div>
}
@model TicketsApps.Models.TicketModel @{ ViewData["Title"] = "TicketView"; }
@Html.Partial("_TicketPdf", Model) @using (Html.BeginForm()) { @Html.HiddenFor(c
=> c.Email) @Html.HiddenFor(c => c.Name) @Html.HiddenFor(c => c.Phone)
@Html.HiddenFor(c => c.TicketDate) @Html.HiddenFor(c => c.TicketNumber)
<div class="form-group">
<div class="col-md-10 pull-right">
<button type="submit" value="Save" class="btn btn-sm">
<i class="fa fa-plus"></i>
<span> Download Pdf </span>
</button>
</div>
</div>
}
- Klicken Sie mit der rechten Maustaste auf die BookTicket-Datei, fügen Sie eine weitere Ansicht hinzu und nennen Sie sie "_TicketPdf" Fügen Sie den folgenden Code hinzu:
@model TicketsApps.Models.TicketModel @{ Layout = null; }
<link href="../css/ticket.css" rel="stylesheet" />
<div class="ticket">
<div class="stub">
<div class="top">
<span class="admit">VIP</span>
<span class="line"></span>
<span class="num">
@Model.TicketNumber
<span> Ticket</span>
</span>
</div>
<div class="number">1</div>
<div class="invite">Room Number</div>
</div>
<div class="check">
<div class="big">
Your <br />
Ticket
</div>
<div class="number">VIP</div>
<div class="info">
<section>
<div class="title">Date</div>
<div>@Model.TicketDate.ToShortDateString()</div>
</section>
<section>
<div class="title">Issued By</div>
<div>Admin</div>
</section>
<section>
<div class="title">Invite Number</div>
<div>@Model.TicketNumber</div>
</section>
</div>
</div>
</div>
@model TicketsApps.Models.TicketModel @{ Layout = null; }
<link href="../css/ticket.css" rel="stylesheet" />
<div class="ticket">
<div class="stub">
<div class="top">
<span class="admit">VIP</span>
<span class="line"></span>
<span class="num">
@Model.TicketNumber
<span> Ticket</span>
</span>
</div>
<div class="number">1</div>
<div class="invite">Room Number</div>
</div>
<div class="check">
<div class="big">
Your <br />
Ticket
</div>
<div class="number">VIP</div>
<div class="info">
<section>
<div class="title">Date</div>
<div>@Model.TicketDate.ToShortDateString()</div>
</section>
<section>
<div class="title">Issued By</div>
<div>Admin</div>
</section>
<section>
<div class="title">Invite Number</div>
<div>@Model.TicketNumber</div>
</section>
</div>
</div>
</div>
-
Fügen Sie die folgende Datei "ticket.css" in die Datei "wwwroot/css" ein.
-
Fügen Sie IronPDF zu Ihrem Projekt hinzu und stimmen Sie der Lizenz zu.
- Fügen Sie die TicketView-Post-Methode hinzu, die die Download-Schaltfläche behandeln wird.
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-10.cs
[HttpPost]
public ActionResult TicketView(TicketModel model)
{
IronPdf.Installation.TempFolderPath = $@"{Directory.GetParent}/irontemp/";
IronPdf.Installation.LinuxAndDockerDependenciesAutoConfig = true;
var html = this.RenderViewAsync("_TicketPdf", model);
var renderer = new IronPdf.ChromePdfRenderer();
using var pdf = renderer.RenderHtmlAsPdf(html.Result, @"wwwroot/css");
return File(pdf.Stream.ToArray(), "application/pdf");
}
- Erstellen Sie einen Controller in der Datei "Controller" und nennen Sie ihn "ControllerExtensions". Dieser Controller wird die Teilansicht in einen String umwandeln. Verwenden Sie den Durchwahlcode wie folgt:
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-11.cs
using System.IO;
using System.Threading.Tasks;
public static class ControllerExtensions
{
public static async Task<string> RenderViewAsync<TModel>(this Controller controller, string viewName, TModel model, bool partial = false)
{
if (string.IsNullOrEmpty(viewName))
{
viewName = controller.ControllerContext.ActionDescriptor.ActionName;
}
controller.ViewData.Model = model;
using (var writer = new StringWriter())
{
IViewEngine viewEngine = controller.HttpContext.RequestServices.GetService(typeof(ICompositeViewEngine)) as ICompositeViewEngine;
ViewEngineResult viewResult = viewEngine.FindView(controller.ControllerContext, viewName, !partial);
if (viewResult.Success == false)
{
return $"A view with the name {viewName} could not be found";
}
ViewContext viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, writer, new HtmlHelperOptions());
await viewResult.View.RenderAsync(viewContext);
return writer.GetStringBuilder().ToString();
}
}
}
- Führen Sie die Anwendung aus, füllen Sie die Ticketinformationen aus und klicken Sie dann auf "Speichern".
- View the generated ticket
PDF-Ticket herunterladen
Um das Ticket als PDF herunterzuladen, klicken Sie auf "Download Pdf". Sie erhalten eine PDF-Datei mit dem Ticket.
Sie können den vollständigen Code für diese Anleitung herunterladen. Er wird als gezippte Datei geliefert, die Sie in Visual Studio öffnen können. Klicken Sie hier, um das Projekt herunterzuladen.
5. .NET PDF Rendering Optionen Tabelle
Wir haben einige erweiterte Optionen, die PDF-Rendering-Optionen wie die Anpassung von Rändern definieren,
papierausrichtung, Papierformat und mehr.
Die nachstehende Tabelle veranschaulicht die vielen verschiedenen Möglichkeiten.
Class | ChromePdfRenderer | |
---|---|---|
Description | Used to define PDF print out options, like paper size, DPI, headers and footers | |
Properties / functions | Type | Description |
CustomCookies | Dictionary<string, string> | Custom cookies for the HTML render. Cookies do not persist between renders and must be set each time. |
PaperFit | VirtualPaperLayoutManager | A manager for setting up virtual paper layouts, controlling how content will be laid out on PDF "paper" pages. Includes options for Default Chrome Behavior, Zoomed, Responsive CSS3 Layouts, Scale-To-Page & Continuous Feed style PDF page setups. |
UseMarginsOnHeaderAndFooter | UseMargins | Use margin values from the main document when rendering headers and footers. |
CreatePdfFormsFromHtml | bool | Turns all HTML form elements into editable PDF forms. Default value is true. |
CssMediaType | PdfCssMediaType | Enables Media="screen" CSS Styles and StyleSheets. Default value is PdfCssMediaType.Screen. |
CustomCssUrl | string | Allows a custom CSS style-sheet to be applied to HTML before rendering. May be a local file path or a remote URL. Only applicable when rendering HTML to PDF. |
EnableJavaScript | bool | Enables JavaScript and JSON to be executed before the page is rendered. Ideal for printing from Ajax / Angular Applications. Default value is false. |
EnableMathematicalLaTex | bool | Enables rendering of Mathematical LaTeX Elements. |
Javascript | string | A custom JavaScript string to be executed after all HTML has loaded but before PDF rendering. |
JavascriptMessageListener | StringDelegate | A method callback to be invoked whenever a browser JavaScript console message becomes available. |
FirstPageNumber | int | First page number to be used in PDF Headers and Footers. Default value is 1. |
TableOfContents | TableOfContentsTypes | Generates a table of contents at the location in the HTML document where an element is found with id "ironpdf-toc". |
GrayScale | bool | Outputs a black-and-white PDF. Default value is false. |
TextHeader | ITextHeaderFooter | Sets the footer content for every PDF page as text, supporting 'mail-merge' and automatically turning URLs into hyperlinks. |
TextFooter | ||
HtmlHeader | HtmlHeaderFooter | Sets the header content for every PDF page as HTML. Supports 'mail-merge'. |
HtmlFooter | ||
InputEncoding | Encoding | The input character encoding as a string. Default value is Encoding.UTF8. |
MarginTop | double | Top PDF "paper" margin in millimeters. Set to zero for border-less and commercial printing applications. Default value is 25. |
MarginRight | double | Right PDF "paper" margin in millimeters. Set to zero for border-less and commercial printing applications. Default value is 25. |
MarginBottom | double | Bottom PDF "paper" margin in millimeters. Set to zero for border-less and commercial printing applications. Default value is 25. |
MarginLeft | double | Left PDF "paper" margin in millimeters. Set to zero for border-less and commercial printing applications. Default value is 25. |
PaperOrientation | PdfPaperOrientation | The PDF paper orientation, such as Portrait or Landscape. Default value is Portrait. |
PaperSize | PdfPaperSize | Sets the paper size |
SetCustomPaperSizeinCentimeters | double | Sets the paper size in centimeters. |
SetCustomPaperSizeInInches | Sets the paper size in inches. | |
SetCustomPaperSizeinMilimeters | Sets the paper size in millimeters. | |
SetCustomPaperSizeinPixelsOrPoints | Sets the paper size in screen pixels or printer points. | |
PrintHtmlBackgrounds | Boolean | Indicates whether to print background-colors and images from HTML. Default value is true. |
RequestContext | RequestContexts | Request context for this render, determining isolation of certain resources such as cookies. |
Timeout | Integer | Render timeout in seconds. Default value is 60. |
Title | String | PDF Document Name and Title metadata, useful for mail-merge and automatic file naming in the IronPdf MVC and Razor extensions. |
ForcePaperSize | Boolean | Force page sizes to be exactly what is specified via IronPdf.ChromePdfRenderOptions.PaperSize by resizing the page after generating a PDF from HTML. Helps correct small errors in page size when rendering HTML to PDF. |
WaitFor | WaitFor | A wrapper object that holds configuration for wait-for mechanism for users to wait for certain events before rendering. By default, it will wait for nothing. |
6. .NET PDF Kopfzeile Fußzeile Optionen Diagramm
Class | TextHeaderFooter | |
---|---|---|
Description | Used to define text header and footer display options | |
Properties \ functions | Type | Description |
CenterText | string | Set the text in centered/left/right of PDF header or footer. Can also merge metadata using strings placeholders: {page}, {total-pages}, {url}, {date}, {time}, {html-title}, {pdf-title} |
LeftText | ||
RightText | ||
DrawDividerLine | Boolean | Adds a horizontal line divider between the header/footer and the page content on every page of the PDF document. |
DrawDividerLineColor | Color | The color of the divider line specified for IronPdf.TextHeaderFooter.DrawDividerLine. |
Font | PdfFont | Font family used for the PDF document. Default is IronSoftware.Drawing.FontTypes.Helvetica. |
FontSize | Double | Font size in pixels. |
7. PDF-Druckoptionen (Rendering) anwenden
Lassen Sie uns versuchen, unsere PDF-Rendering-Optionen zu konfigurieren.
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-12.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Set rendering options
renderer.RenderingOptions.PaperSize = IronPdf.Rendering.PdfPaperSize.A4;
renderer.RenderingOptions.PaperOrientation = IronPdf.Rendering.PdfPaperOrientation.Portrait;
renderer.RenderHtmlFileAsPdf(@"testFile.html").SaveAs("GeneratedFile.pdf");
8. Docker .NET Core-Anwendungen
8.1. Was ist Docker?
Docker ist eine Reihe von Platform-as-Service-Produkten, die Virtualisierung auf Betriebssystemebene nutzen, um Software in Paketen, so genannten Containern, bereitzustellen. Container sind voneinander isoliert und bündeln ihre eigene Software, Bibliotheken und Konfigurationsdateien; sie können über klar definierte Kanäle miteinander kommunizieren.
Hier können Sie mehr über Docker und ASP.NET Core Anwendung erfahren.
Wir überspringen vorerst den Teil zur Arbeit mit Docker, aber wenn Sie mehr erfahren möchten, gibt es hier eine großartige Einführung in .NET und Docker. und noch mehr darüber, wie Sie Container für .NET Core Apps erstellen können.
Lassen Sie uns gemeinsam mit Docker loslegen.
8.2. Docker installieren
Besuchen Sie die Docker-Website hier, um Docker zu installieren.
Klicken Sie auf Loslegen.
Klicken Sie auf Download für Mac und Windows.
Registrieren Sie sich kostenlos und melden Sie sich dann an.
Docker für Windows herunterladen.
Starten Sie die Installation von Docker.
Es wird ein Neustart erforderlich sein. Nach dem Neustart Ihres Rechners melden Sie sich bei Docker an.
Jetzt können Sie Docker "hello world" ausführen, indem Sie die Windows-Befehlszeile oder das PowerShell-Skript öffnen und schreiben:
Docker ausführen hello-world
Hier ist eine Liste der wichtigsten Befehlszeilen, die Ihnen helfen soll:
- Docker-Images => Auflisten aller verfügbaren Images auf diesem Rechner
- Docker ps => zum Auflisten aller laufenden Container
- Docker ps -a => zum Auflisten aller Container
8.3. In Linux-Container ausführen
9. Arbeiten mit vorhandenen PDF-Dokumenten
9.1. Vorhandene PDF-Datei öffnen
Da Sie PDFs aus URL und HTML (Text oder Datei) erstellen können, können Sie auch mit bestehenden PDF-Dokumenten arbeiten.
Das folgende Beispiel zeigt, wie man entweder ein normales PDF oder ein verschlüsseltes PDF mit einem Passwort öffnet
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-13.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
// Open an unencrypted pdf
PdfDocument unencryptedPdf = PdfDocument.FromFile("testFile.pdf");
// Open an encrypted pdf
PdfDocument encryptedPdf = PdfDocument.FromFile("testFile2.pdf", "MyPassword");
9.2. Mehrere PDFs zusammenführen
Sie können mehrere PDF-Dateien wie folgt zu einer einzigen PDF-Datei zusammenführen:
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-14.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
List<PdfDocument> PDFs = new List<PdfDocument>();
PDFs.Add(PdfDocument.FromFile("1.pdf"));
PDFs.Add(PdfDocument.FromFile("2.pdf"));
PDFs.Add(PdfDocument.FromFile("3.pdf"));
using PdfDocument PDF = PdfDocument.Merge(PDFs);
PDF.SaveAs("mergedFile.pdf");
foreach (PdfDocument pdf in PDFs)
{
pdf.Dispose();
}
Fügen Sie eine weitere PDF-Datei wie folgt an das Ende der aktuellen PDF-Datei an:
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-15.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
PdfDocument pdf = PdfDocument.FromFile("1.pdf");
PdfDocument pdf2 = PdfDocument.FromFile("2.pdf");
pdf.AppendPdf(pdf2);
pdf.SaveAs("appendedFile.pdf");
Einfügen einer PDF-Datei in eine andere PDF-Datei ab einem bestimmten Index:
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-16.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
PdfDocument pdf = PdfDocument.FromFile("1.pdf");
PdfDocument pdf2 = PdfDocument.FromFile("2.pdf");
pdf.InsertPdf(pdf2, 0);
pdf.SaveAs("InsertIntoSpecificIndex.pdf");
9.3 Kopf- oder Fußzeilen hinzufügen
Sie können Kopf- und Fußzeilen zu einer vorhandenen PDF-Datei hinzufügen oder wenn Sie die PDF-Datei aus HTML oder einer URL rendern.
Es gibt zwei Klassen, die Sie verwenden können, um einer PDF-Datei Kopf- oder Fußzeilen hinzuzufügen:
- TextHeaderFooter: einfachen Text in Kopf- oder Fußzeile einfügen.
-
HtmlHeaderFooter: Hinzufügen von Kopf- oder Fußzeilen mit reichhaltigem HTML-Inhalt und Bildern.
Sehen wir uns nun zwei Beispiele dafür an, wie man Kopf- und Fußzeilen zu einer bestehenden PDF-Datei hinzufügt oder wenn sie mit diesen beiden Klassen gerendert wird.
9.3.1 Kopfzeile zu bestehendem PDF hinzufügen
Unten ist ein Beispiel, um eine vorhandene PDF-Datei zu laden und dann mit den Methoden
AddTextHeaders
undAddHtmlFooters
einen Kopf- und Fußzeile hinzuzufügen.
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-17.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
PdfDocument pdf = PdfDocument.FromFile("testFile.pdf");
TextHeaderFooter header = new TextHeaderFooter()
{
CenterText = "Pdf Header",
LeftText = "{date} {time}",
RightText = "{page} of {total-pages}",
DrawDividerLine = true,
FontSize = 10
};
pdf.AddTextHeaders(header);
pdf.SaveAs("withHeader.pdf");
HtmlHeaderFooter Footer = new HtmlHeaderFooter()
{
HtmlFragment = "<span style='text-align:right'> page {page} of {totalpages}</span>",
DrawDividerLine = true,
MaxHeight = 10 //mm
};
pdf.AddHtmlFooters(Footer);
pdf.SaveAs("withHeaderAndFooters.pdf");
9.3.2 Hinzufügen von Kopf- und Fußzeile zu neuem PDF
Hier ist ein Beispiel für die Erstellung einer PDF-Datei aus einer HTML-Datei und das Hinzufügen einer Kopf- und Fußzeile mit Hilfe von Rendering-Optionen.
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-18.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
CenterText = "Pdf Header",
LeftText = "{date} {time}",
RightText = "{page} of {total-pages}",
DrawDividerLine = true,
FontSize = 10
};
renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
{
HtmlFragment = "<span style='text-align:right'> page {page} of {totalpages}</span>",
DrawDividerLine = true,
MaxHeight = 10
};
PdfDocument pdf = renderer.RenderHtmlFileAsPdf("test.html");
pdf.SaveAs("generatedFile.pdf");
10. PDF-Kennwort und Sicherheit hinzufügen
Sie können Ihre PDF-Datei mit einem Passwort schützen und die Sicherheitseinstellungen der Datei bearbeiten, z. B. Kopieren und Drucken verhindern.
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-19.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
PdfDocument pdf = PdfDocument.FromFile("testFile.pdf");
// Edit file metadata
pdf.MetaData.Author = "john smith";
pdf.MetaData.Keywords = "SEO, Friendly";
pdf.MetaData.ModifiedDate = DateTime.Now;
// Edit file security settings
// The following code makes a PDF read only and will disallow copy & paste and printing
pdf.SecuritySettings.RemovePasswordsAndEncryption();
pdf.SecuritySettings.MakePdfDocumentReadOnly("secret-key"); //secret-key is a owner password
pdf.SecuritySettings.AllowUserAnnotations = false;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;
pdf.SecuritySettings.AllowUserFormData = false;
pdf.SecuritySettings.AllowUserPrinting = IronPdf.Security.PdfPrintSecurity.FullPrintRights;
// Change or set the document ecrpytion password
pdf.Password = "123";
pdf.SaveAs("secured.pdf");
11. Digitales Signieren von PDFs
Sie können eine PDF-Datei auch wie folgt digital signieren:
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-20.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
PdfDocument pdf = PdfDocument.FromFile("testFile.pdf");
pdf.Sign(new PdfSignature("cert123.pfx", "password"));
pdf.SaveAs("signed.pdf");
Erweitertes Beispiel für mehr Kontrolle:
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-21.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
PdfDocument pdf = PdfDocument.FromFile("testFile.pdf");
IronPdf.Signing.PdfSignature signature = new IronPdf.Signing.PdfSignature("cert123.pfx", "123");
// Optional signing options
signature.SigningContact = "support@ironsoftware.com";
signature.SigningLocation = "Chicago, USA";
signature.SigningReason = "To show how to sign a PDF";
// Sign the PDF with the PdfSignature. Multiple signing certificates may be used
pdf.Sign(signature);
12. Text und Bilder aus PDF extrahieren
Text und Bilder extrahieren Mit IronPDF können Sie Text und Bilder aus einer PDF-Datei wie folgt extrahieren:
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-22.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
PdfDocument pdf = PdfDocument.FromFile("testFile.pdf");
pdf.ExtractAllText(); // Extract all text in the pdf
pdf.ExtractTextFromPage(0); // Read text from specific page
// Extract all images in the pdf
var AllImages = pdf.ExtractAllImages();
// Extract images from specific page
var ImagesOfAPage = pdf.ExtractImagesFromPage(0);
12.1. PDF in Bild rastern
Sie können PDF-Seiten auch wie folgt in Bilder umwandeln
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-23.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
PdfDocument pdf = PdfDocument.FromFile("testFile.pdf");
List<int> pageList = new List<int>() { 1, 2 };
pdf.RasterizeToImageFiles("*.png", pageList);
13. PDF-Wasserzeichen hinzufügen
Das Folgende ist ein Beispiel dafür, wie man PDF-Seiten mit einem Wasserzeichen versieht.
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-24.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderUrlAsPdf("https://www.nuget.org/packages/IronPdf");
// Apply watermark
pdf.ApplyWatermark("<h2 style='color:red'>SAMPLE</h2>", 30, IronPdf.Editing.VerticalAlignment.Middle, IronPdf.Editing.HorizontalAlignment.Center);
pdf.SaveAs("Watermarked.pdf");
Wasserzeichen haben eine begrenzte Anzahl von Optionen und Funktionen. Für eine bessere Kontrolle können Sie die HTMLStamper-Klasse nutzen.
:path=/static-assets/pdf/content-code-examples/tutorials/dotnet-core-pdf-generating-25.cs
IronPdf.License.LicenseKey = "YourLicenseKey";
ChromePdfRenderer renderer = new ChromePdfRenderer();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<div>test text </div>");
// Configure HTML stamper
HtmlStamper backgroundStamp = new HtmlStamper()
{
Html = "<h2 style='color:red'>copyright 2018 ironpdf.com",
MaxWidth = new Length(20),
MaxHeight = new Length(20),
Opacity = 50,
Rotation = -45,
IsStampBehindContent = true,
VerticalAlignment = VerticalAlignment.Middle
};
pdf.ApplyStamp(backgroundStamp);
pdf.SaveAs("stamped.pdf");
Tutorial Schnellzugriff
Holen Sie sich den Quellcode
Greifen Sie auf den gesamten Quellcode zu, der in diesem Tutorial als Visual Studio-Projekt-ZIP-Datei zu finden ist, die einfach zu verwenden und für Ihr Projekt zu teilen ist.
Holen Sie sich den CodeGitHub Tutorial Zugang
Entdecken Sie dieses Tutorial und viele weitere auf GitHub. Die Verwendung der Projekte und des Quellcodes ist der beste Weg, um zu lernen und diese auf Ihre eigenen PDF .NET Core-Anforderungen und Anwendungsfälle anzuwenden.
Erstellen von PDFs in .NET Core TutorialBehalten Sie das PDF CSharp Cheat Sheet
Entwickeln Sie PDFs in Ihren .NET-Anwendungen mit unserem praktischen Referenzdokument. Dieses teilbare Tool bietet schnellen Zugriff auf häufig verwendete Funktionen und Beispiele zum Erzeugen und Bearbeiten von PDFs in C# und VB.NET und hilft Ihnen, Zeit und Aufwand zu sparen, um mit IronPDF und den gängigen PDF-Anforderungen in Ihrem Projekt zu beginnen.
Behalten Sie das SpickzettelMehr Dokumentation
Lesen Sie die IronPDF API-Referenz, in der alle Funktionen von IronPDF sowie Namespaces, Klassen, Methoden, Felder und Enums ausführlich beschrieben sind.
API-Referenzdokumentation