Gratis .NET API'er til behandling af PDF-dokumenter
Open Source .NET-bibliotek til oprettelse, redigering, indlæsning og manipulation af PDF-filer. Tilføj nye sider, tabeller, billeder, tekst og figurer til PDF-filer.
QuestPDF er et meget nyttigt open source moderne .NET-bibliotek, der gør det muligt for softwareudviklere at generere, læse, ændre og manipulere PDF-dokumenter med lethed. Biblioteket er meget funktionsrigt og tilbyder lay-out-motor designet med fuld personsøgningsunderstøttelse i tankerne. Biblioteket er meget nemt at håndtere og kan helt sikkert fremskynde din udviklingslivscyklus. Biblioteket understøtter hot-reload-kapacitet, hvilket betyder, at det giver udviklere realtidsresultater uden behov for kodegenkompilering.
QuestPDF-biblioteket er meget flydende og meget nemt at oprette, tilpasse og administrere nogle af de mest komplekse dokumenter med blot et par linjer kode. Der er flere andre funktioner i biblioteket, såsom tegne simpel tekst, tegne tekst med brugerdefineret stil, sidesøgningsunderstøttelse, brugerdefinerede skrifttyper, bogstavmellemrum, tilpasset afsnitsafstand, Unicode-understøttelse, indsætte billeder, administrere billedets billedformat, gengive kant, indsætte hyperlinks, indhold og billedrotation og så videre.
Kom godt i gang med QuestPDF
QuestPDF-biblioteket er tilgængeligt som en nuget-pakke. Så det kan varmt anbefales at bruge NuGet til at installere QuestPDF til dit projekt. Brug venligst følgende kommando for vellykket installation.
Installer QuestPDF fra Nuget
// Package Manager
Install-Package QuestPDF
// .NET CLI
dotnet add package QuestPDF
// Package reference in .csproj file
Du kan også installere det manuelt; download de seneste udgivelsesfiler direkte fra GitHub-lageret.
Nem PDF-oprettelse via .NET Library
Open source PDF-biblioteket QuestPDF gør det muligt for softwareudviklere at bruge et par simple .NET-kodekommandoer til at oprette PDF-dokumenter i deres egne applikationer. Biblioteket gør det nemt for udviklere at definere sidestørrelse, margener, baggrundsfarve, tekststil, skrifttypestørrelse, sidehoved og sidefod, sideindhold, mellemrum og så videre. Det er også meget nemt at opdatere dine eksisterende PDF-filer.
Opret PDF-filer 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");
Administrer tekst og formatering via C# API
QuestPDF-biblioteket har givet flere vigtige funktioner til håndtering af tekstindsættelse samt teksttegning i PDF-dokumenter. Det gør det muligt for udviklere at tegne tekst med standardstil samt tilpasset stil, sænket og hævet skrift, justere tekstlinjer, justere bogstavafstand, skrifttypejustering, indstille typografimønster, tilpasset afsnitsafstand, indstille tekstretning, indsætte sidetal, tilføje hyperlink og så på.
Subscript og Superscript i PDF-filer 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.");
});
Tilføj og administrer billeder i PDF via C# Library
Open source PDF-biblioteket QuestPDF har inkluderet komplet understøttelse af tilføjelse af statiske såvel som dynamiske billeder i C# .NET-applikationer. Softwareudviklere kan nemt placere statiske billeder inde i deres PDF-dokument i ethvert almindeligt rasterbilledformat, som JPG, PNG, BMB og så videre. For dynamiske billeder tilbyder det fleksible layouts, derfor er det svært at forudsige billedopløsning. For at få den bedste billedklarhed anbefales det at generere billeder med specificeret opløsning. Det er meget nyttigt til at lave kort / diagrammer.
Tilføj billeder til 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);
Indsæt tabeller i PDF via C# API
QuestPDF gør det muligt for computerprogrammører at opnå mere sofistikerede strukturer end nogen kombination af Row- og Column-elementerne. For at oprette en simpel tabelinstans skal brugerne beskrive bredden af hver kolonne og derefter placere et vilkårligt antal rækker og kolonner inde i den. Biblioteket understøtter funktioner som tilføjelse af tabelhoved eller sidefod, tilføje nye rækker, indsætte nye celler, fjerne celler, række- og kolonnespænd, overlappende celler og mange flere.
Opret simpel tabel i PDF-fil 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();
}
});