| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- using System.Diagnostics;
- using QuestPDF.Fluent;
- using QuestPDF.Helpers;
- using QuestPDF.Infrastructure;
- using QuestPDF.Previewer;
- Document
- .Create(container =>
- {
- container.Page(page =>
- {
- page.Size(PageSizes.A4);
- page.Margin(2, Unit.Centimetre);
- page.PageColor(Colors.White);
- page.DefaultTextStyle(x => x.FontSize(14));
-
- page.Header()
- .Text("Hello PDF!")
- .SemiBold().FontSize(36).FontColor(Colors.Blue.Medium);
- page.Content()
- .PaddingVertical(1, Unit.Centimetre)
- .Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.ConstantColumn(30);
- columns.RelativeColumn();
- columns.ConstantColumn(75);
- columns.ConstantColumn(75);
- columns.ConstantColumn(75);
- });
- table.Header(header =>
- {
- var textStyle = TextStyle.Default.SemiBold();
- header.Cell().Element(DefaultCellStyle).Text("#").Style(textStyle);
- header.Cell().Element(DefaultCellStyle).Text("Item name").Style(textStyle);
- header.Cell().Element(DefaultCellStyle).AlignRight().Text("Price").Style(textStyle);
- header.Cell().Element(DefaultCellStyle).AlignRight().Text("Count").Style(textStyle);
- header.Cell().Element(DefaultCellStyle).AlignRight().Text("Total").Style(textStyle);
- static IContainer DefaultCellStyle(IContainer container)
- {
- return container.PaddingBottom(5).BorderBottom(1).PaddingBottom(5);
- }
- });
- foreach(var i in Enumerable.Range(1, 100))
- {
- var price = Placeholders.Random.Next(100, 999) / 100f;
- var count = Placeholders.Random.Next(1, 10);
- var total = price * count;
- table.Cell().Element(DefaultCellStyle).Text(i);
- table.Cell().Element(DefaultCellStyle).Text(Placeholders.Label());
- table.Cell().Element(DefaultCellStyle).AlignRight().Text($"{price:N2} $");
- table.Cell().Element(DefaultCellStyle).AlignRight().Text(count);
- table.Cell().Element(DefaultCellStyle).AlignRight().Text($"{total:N2} $");
- static IContainer DefaultCellStyle(IContainer container)
- {
- return container.PaddingBottom(5).BorderBottom(1).BorderColor(Colors.Grey.Lighten1).PaddingBottom(5);
- }
- }
- });
-
- page.Footer()
- .AlignCenter()
- .Text(x =>
- {
- x.Span("Page ");
- x.CurrentPageNumber();
- x.Span(" of ");
- x.TotalPages();
- });
- });
- })
- .ShowInPreviewer();
|