Безкоштовні API .NET для обробки PDF-документів
Бібліотека .NET з відкритим вихідним кодом для створення, редагування, завантаження та обробки PDF-файлів. Додайте нові сторінки, таблиці, зображення, текст і форми до файлів PDF.
QuestPDF — це дуже корисна сучасна бібліотека .NET з відкритим вихідним кодом, яка дозволяє розробникам програмного забезпечення з легкістю створювати, читати, змінювати та маніпулювати PDF-документами. Бібліотека дуже багата функціями та пропонує механізм макета, розроблений з урахуванням повної підтримки сторінок. Бібліотека дуже проста у використанні, і вона, безперечно, може пришвидшити життєвий цикл розробки. Бібліотека підтримує можливість гарячого перезавантаження, що означає, що вона надає розробникам результати в реальному часі без необхідності повторної компіляції коду.
Бібліотека QuestPDF дуже вільна, і її дуже легко створювати, налаштовувати та керувати деякими з найскладніших документів лише за допомогою кількох рядків коду. У бібліотеці є кілька інших функцій, таких як малювання простого тексту, малювання тексту з власним стилем, підтримка сторінок, підтримка користувацьких шрифтів, інтервали між літерами, користувальницькі інтервали між абзацами, підтримка Unicode, вставлення зображень, керування співвідношенням сторін зображення, візуалізація межі, вставлення гіперпосилання, ротація вмісту та зображень тощо.
Початок роботи з QuestPDF
Бібліотека QuestPDF доступна як пакет nuget. Тому настійно рекомендуємо використовувати NuGet для встановлення QuestPDF у ваш проект. Будь ласка, використовуйте наступну команду для успішного встановлення.
Встановіть QuestPDF із Nuget
// Package Manager
Install-Package QuestPDF
// .NET CLI
dotnet add package QuestPDF
// Package reference in .csproj file
Ви також можете встановити його вручну; завантажте файли останнього випуску безпосередньо зі сховища GitHub.
Просте створення PDF через бібліотеку .NET
Бібліотека PDF з відкритим вихідним кодом QuestPDF дозволяє розробникам програмного забезпечення використовувати лише кілька простих команд коду .NET для створення PDF-документів у власних програмах. Бібліотека дозволяє розробникам легко визначати розмір сторінки, поля, колір фону, стиль тексту, розмір шрифту, верхній і нижній колонтитул сторінки, вміст сторінки, інтервали тощо. Також дуже легко оновити існуючі файли PDF.
Створюйте файли PDF за допомогою бібліотеки .NET
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");
Керуйте текстом і форматуванням за допомогою C# API
Бібліотека QuestPDF надала кілька важливих функцій для вставки тексту, а також малювання тексту в документах PDF. Це дозволяє розробникам малювати текст зі стилем за замовчуванням, а також спеціальним стилем, нижнім і верхнім індексом, коригувати рядки тексту, коригувати інтервали між літерами, вирівнювання шрифту, встановлювати шаблон типографіки, користувацький інтервал між абзацами, встановлювати напрямок тексту, вставляти номери сторінок, додавати гіперпосилання тощо на.
Підрядковий і верхній індекс у PDF-файлах через бібліотеку .NET
.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.");
});
Додавайте зображення в PDF і керуйте ними за допомогою бібліотеки C#
Бібліотека PDF з відкритим вихідним кодом QuestPDF включає повну підтримку додавання статичних і динамічних зображень у програми C# .NET. Розробники програмного забезпечення можуть легко розмістити статичні зображення у своєму PDF-документі в будь-якому поширеному форматі растрового зображення, наприклад JPG, PNG, BMB тощо. Для динамічних зображень він пропонує гнучкі макети, тому важко передбачити роздільну здатність зображення. Щоб отримати найкращу чіткість зображення, рекомендується створювати зображення з указаною роздільною здатністю. Це дуже корисно для створення карт / діаграм.
Додайте зображення до PDF за допомогою бібліотеки .NET
// 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);
Вставте таблиці в PDF через C# API
QuestPDF дозволяє програмістам створювати складніші структури, ніж будь-яка комбінація елементів Row і Column. Щоб створити простий екземпляр таблиці, користувачам потрібно описати ширину кожного стовпця, а потім розмістити в ньому будь-яку кількість рядків і стовпців. Бібліотека підтримує такі функції, як додавання верхнього або нижнього колонтитула таблиці, додавання нових рядків, вставлення нових клітинок, видалення клітинок, діапазонів рядків і стовпців, перекривання клітинок і багато іншого.
Створіть просту таблицю у файлі PDF за допомогою бібліотеки .NET
.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();
}
});