Gratis .NET API's voor de verwerking van PDF-documenten
Open Source .NET Library voor het maken, bewerken, laden en manipuleren van PDF's. Voeg nieuwe pagina's, tabellen, afbeeldingen, tekst en vormen toe aan PDF-bestanden.
QuestPDF is een zeer nuttige open source moderne .NET-bibliotheek waarmee softwareontwikkelaars eenvoudig PDF-documenten kunnen genereren, lezen, wijzigen en manipuleren. De bibliotheek is zeer rijk aan functies en biedt een lay-out-engine die is ontworpen met volledige paging-ondersteuning in gedachten. De bibliotheek is heel gemakkelijk te gebruiken en kan uw ontwikkelingslevenscyclus zeker versnellen. De bibliotheek ondersteunt hot-reload-mogelijkheden, wat betekent dat ontwikkelaars real-time resultaten krijgen zonder dat code opnieuw moet worden gecompileerd.
De QuestPDF-bibliotheek is zeer vloeiend en zeer eenvoudig om enkele van de meest complexe documenten te maken, aan te passen en te beheren met slechts een paar regels code. Er zijn verschillende andere functies die deel uitmaken van de bibliotheek, zoals eenvoudige tekst tekenen, tekst tekenen met aangepaste stijl, paging-ondersteuning, aangepaste lettertype-ondersteuning, letterafstand, aangepaste alinea-afstand, Unicode-ondersteuning, afbeeldingen invoegen, beeldverhouding beheren, rand weergeven, invoegen hyperlinks, inhoud en beeldrotatie enzovoort.
Aan de slag met QuestPDF
De QuestPDF-bibliotheek is beschikbaar als een nuget-pakket. Het wordt dus ten zeerste aanbevolen om NuGet te gebruiken om QuestPDF in uw project te installeren. Gebruik de volgende opdracht voor een succesvolle installatie.
Installeer QuestPDF van Nuget
// Package Manager
Install-Package QuestPDF
// .NET CLI
dotnet add package QuestPDF
// Package reference in .csproj file
U kunt het ook handmatig installeren; download de nieuwste releasebestanden rechtstreeks vanuit de GitHub-repository.
Eenvoudige PDF-creatie via .NET Library
De open source PDF-bibliotheek QuestPDF stelt softwareontwikkelaars in staat om slechts een paar eenvoudige .NET-codeopdrachten te gebruiken om PDF-documenten te maken in hun eigen toepassingen. De bibliotheek maakt het voor ontwikkelaars gemakkelijk om paginagrootte, marges, achtergrondkleur, tekststijl, lettergrootte, paginakop- en voettekst, pagina-inhoud, spatiëring enzovoort te definiëren. Het is ook heel eenvoudig om uw bestaande PDF-bestanden bij te werken.
Maak PDF-bestanden via .NET Library
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");
Beheer tekst en opmaak via C# API
De QuestPDF-bibliotheek heeft verschillende belangrijke functies geboden voor het verwerken van zowel het invoegen van tekst als het tekenen van tekst in PDF-documenten. Het stelt ontwikkelaars in staat om tekst te tekenen met standaardopmaak en aangepaste opmaak, subscript en superscript, tekstregels aan te passen, letterafstand aan te passen, lettertype-uitlijning, typografiepatroon in te stellen, aangepaste alinea-afstand in te stellen, tekstrichting in te stellen, paginanummers in te voegen, hyperlink toe te voegen en zo Aan.
Subscript en Superscript in PDF-bestanden via .NET Library
.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.");
});
Afbeeldingen in PDF toevoegen en beheren via C# Library
De open source PDF-bibliotheek QuestPDF bevat volledige ondersteuning voor het toevoegen van zowel statische als dynamische afbeeldingen in C# .NET-applicaties. Softwareontwikkelaars kunnen eenvoudig statische afbeeldingen in hun PDF-document plaatsen in elk algemeen rasterafbeeldingsformaat, zoals JPG, PNG, BMB, enzovoort. Voor dynamische afbeeldingen biedt het flexibele lay-outs, daarom is het moeilijk om de beeldresolutie te voorspellen. Om de beste beeldhelderheid te krijgen, wordt het aanbevolen om afbeeldingen met een gespecificeerde resolutie te genereren. Het is erg handig voor het maken van kaarten / grafieken.
Voeg afbeeldingen toe aan PDF via .NET Library
// 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 invoegen via C# API
De QuestPDF stelt computerprogrammeurs in staat om meer geavanceerde structuren te bereiken dan elke combinatie van de Row- en de Column-elementen. Om een eenvoudige tabelinstantie te maken, moeten gebruikers de breedte van elke kolom beschrijven en vervolgens een willekeurig aantal rijen en kolommen erin plaatsen. De bibliotheek ondersteunt functies zoals het toevoegen van een kop- of voettekst aan een tabel, het toevoegen van nieuwe rijen, het invoegen van nieuwe cellen, het verwijderen van cellen, het overlappen van rijen en kolommen, het overlappen van cellen en nog veel meer.
Maak een eenvoudige tabel in een PDF-bestand via .NET Library
.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();
}
});