Kostenlose .NET-APIs für die Verarbeitung von PDF-Dokumenten
Open-Source-.NET-Bibliothek zum Erstellen, Bearbeiten, Laden und Manipulieren von PDFs. Fügen Sie PDF-Dateien neue Seiten, Tabellen, Bilder, Text und Formen hinzu.
QuestPDF ist eine sehr nützliche moderne .NET-Open-Source-Bibliothek, die es Softwareentwicklern ermöglicht, PDF-Dokumente mit Leichtigkeit zu generieren, zu lesen, zu ändern und zu manipulieren. Die Bibliothek ist sehr funktionsreich und bietet eine Layout-Engine, die für eine vollständige Paging-Unterstützung entwickelt wurde. Die Bibliothek ist sehr einfach zu handhaben und kann Ihren Entwicklungslebenszyklus sicherlich beschleunigen. Die Bibliothek unterstützt die Hot-Reload-Fähigkeit, was bedeutet, dass sie Entwicklern Echtzeitergebnisse liefert, ohne dass der Code neu kompiliert werden muss.
Die QuestPDF-Bibliothek ist sehr flüssig und sehr einfach, einige der komplexesten Dokumente mit nur wenigen Codezeilen zu erstellen, anzupassen und zu verwalten. Es gibt mehrere andere Funktionen, die Teil der Bibliothek sind, wie einfaches Zeichnen von Text, Zeichnen von Text mit benutzerdefiniertem Stil, Paging-Unterstützung, Unterstützung benutzerdefinierter Schriftarten, Buchstabenabstand, benutzerdefinierter Absatzabstand, Unicode-Unterstützung, Einfügen von Bildern, Verwalten des Seitenverhältnisses von Bildern, Rendern von Rändern, Einfügen Hyperlinks, Inhalts- und Bilddrehung und so weiter.
Erste Schritte mit QuestPDF
Die QuestPDF-Bibliothek ist als Nuget-Paket verfügbar. Es wird daher dringend empfohlen, NuGet zu verwenden, um QuestPDF in Ihrem Projekt zu installieren. Bitte verwenden Sie den folgenden Befehl für eine erfolgreiche Installation.
Installieren Sie QuestPDF von Nuget
// Package Manager
Install-Package QuestPDF
// .NET CLI
dotnet add package QuestPDF
// Package reference in .csproj file
Sie können es auch manuell installieren; Laden Sie die neuesten Release-Dateien direkt aus dem GitHub-Repository herunter.
Einfache PDF-Erstellung über die .NET-Bibliothek
Die Open-Source-PDF-Bibliothek QuestPDF ermöglicht es Softwareentwicklern, mit nur wenigen einfachen .NET-Codebefehlen PDF-Dokumente in ihren eigenen Anwendungen zu erstellen. Die Bibliothek macht es Entwicklern leicht, Seitengröße, Ränder, Hintergrundfarbe, Textstil, Schriftgröße, Seitenkopf und -fuß, Seiteninhalt, Abstände usw. zu definieren. Es ist auch sehr einfach, Ihre bestehenden PDF-Dateien zu aktualisieren.
Erstellen Sie PDF-Dateien über die .NET-Bibliothek
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
// code in your main method
Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(2, Unit.Centimetre);
page.PageColor(Colors.White);
page.DefaultTextStyle(x => x.FontSize(20));
page.Header()
.Text("Hello PDF!")
.SemiBold().FontSize(36).FontColor(Colors.Blue.Medium);
page.Content()
.PaddingVertical(1, Unit.Centimetre)
.Column(x =>
{
x.Spacing(20);
x.Item().Text(Placeholders.LoremIpsum());
x.Item().Image(Placeholders.Image(200, 100));
});
page.Footer()
.AlignCenter()
.Text(x =>
{
x.Span("Page ");
x.CurrentPageNumber();
});
});
})
.GeneratePdf("hello.pdf");
Verwalten Sie Text und Formatierung über die C#-API
Die QuestPDF-Bibliothek hat mehrere wichtige Funktionen zum Einfügen von Text sowie zum Zeichnen von Text in PDF-Dokumenten bereitgestellt. Es ermöglicht Entwicklern, Text mit Standardstil sowie benutzerdefiniertem Stil zu zeichnen, tiefgestellt und hochgestellt, Textzeilen anzupassen, Buchstabenabstand, Schriftausrichtung anzupassen, Typografiemuster festzulegen, benutzerdefinierte Absatzabstände festzulegen, Textrichtung festzulegen, Seitenzahlen einzufügen, Hyperlinks hinzuzufügen und so weiter an.
Tiefgestellt und hochgestellt in PDF-Dateien über die .NET-Bibliothek
.Text(text =>
{
text.DefaultTextStyle(x => x.FontSize(20));
text.ParagraphSpacing(10);
var highlight = TextStyle.Default.BackgroundColor(Colors.Green.Lighten3);
text.Span("E=mc").Style(highlight);
text.Span("2").Superscript().Style(highlight);
text.Span(" is the equation of mass–energy equivalence.");
text.EmptyLine();
text.Span("H").Style(highlight);
text.Span("2").Subscript().Style(highlight);
text.Span("O").Style(highlight);
text.Span(" is the chemical formula for water.");
});
Bilder in PDF über die C#-Bibliothek hinzufügen und verwalten
Die Open-Source-PDF-Bibliothek QuestPDF bietet vollständige Unterstützung für das Hinzufügen statischer und dynamischer Bilder in C# .NET-Anwendungen. Softwareentwickler können problemlos statische Bilder in jedem gängigen Rasterbildformat wie JPG, PNG, BMB usw. in ihr PDF-Dokument einfügen. Für dynamische Bilder bietet es flexible Layouts, daher ist es schwierig, die Bildauflösung vorherzusagen. Um die beste Bildschärfe zu erhalten, wird empfohlen, Bilder mit der angegebenen Auflösung zu erzeugen. Es ist sehr nützlich zum Erstellen von Karten / Diagrammen.
Fügen Sie Bilder über die .NET-Bibliothek zu PDF hinzu
// it is possible to provide an image as:
// 1) a binary array
byte[] imageData = File.ReadAllBytes("path/to/logo.png")
container.Image(imageData)
// 2) a fileName
container.Image("path/myFile.png")
// 3) a stream
using var stream = new FileStream("logo.png", FileMode.Open);
container.Image(stream);
Tabellen in PDF über die C#-API einfügen
Das QuestPDF ermöglicht Computerprogrammierern, komplexere Strukturen zu erreichen als jede Kombination der Row- und Column-Elemente. Um eine einfache Tabelleninstanz zu erstellen, müssen Benutzer die Breite jeder Spalte beschreiben und dann eine beliebige Anzahl von Zeilen und Spalten darin platzieren. Die Bibliothek unterstützt Funktionen wie das Hinzufügen von Tabellenkopf- oder -fußzeilen, das Hinzufügen neuer Zeilen, das Einfügen neuer Zellen, das Entfernen von Zellen, Zeilenspannen und Spaltenspannen, Überlappen von Zellen und vieles mehr.
Erstellen Sie eine einfache Tabelle in einer PDF-Datei über die .NET-Bibliothek
.Border(1)
.Table(table =>
{
table.ColumnsDefinition(columns =>
{
columns.RelativeColumn();
columns.RelativeColumn();
columns.RelativeColumn();
columns.RelativeColumn();
});
// by using custom 'Element' method, we can reuse visual configuration
table.Cell().Row(1).Column(4).Element(Block).Text("A");
table.Cell().Row(2).Column(2).Element(Block).Text("B");
table.Cell().Row(3).Column(3).Element(Block).Text("C");
table.Cell().Row(4).Column(1).Element(Block).Text("D");
// for simplicity, you can also use extension method described in the "Extending DSL" section
static IContainer Block(IContainer container)
{
return container
.Border(1)
.Background(Colors.Grey.Lighten3)
.ShowOnce()
.MinWidth(50)
.MinHeight(50)
.AlignCenter()
.AlignMiddle();
}
});