| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- using QuestPDF.Fluent;
- using QuestPDF.Helpers;
- using QuestPDF.Infrastructure;
- namespace QuestPDF.DocumentationExamples.CodePatterns;
- public class CodePatternDocumentStructureExample
- {
- [Test]
- public void Example()
- {
- var content = GenerateReport();
- File.WriteAllBytes("code-pattern-document-structure.pdf", content);
- }
- public byte[] GenerateReport()
- {
- return Document
- .Create(document =>
- {
- document.Page(page =>
- {
- page.Size(PageSizes.A5);
- page.DefaultTextStyle(x => x.FontSize(20));
- page.Margin(25);
- page.Content()
- .PaddingBottom(15)
- .Column(column =>
- {
- column.Item().Element(ReportTitle);
- column.Item().PageBreak();
- column.Item().Element(RedSection);
- column.Item().PageBreak();
- column.Item().Element(GreenSection);
- column.Item().PageBreak();
- column.Item().Element(BlueSection);
- });
- page.Footer().AlignCenter().Text(text => text.CurrentPageNumber());
- });
- })
- .GeneratePdf();
- }
- private void ReportTitle(IContainer container)
- {
- container.Extend()
- .AlignCenter()
- .AlignMiddle()
- .Text("Multi-section report")
- .FontSize(48)
- .Bold();
- }
-
- private void RedSection(IContainer container)
- {
- container.Grid(grid =>
- {
- grid.Columns(3);
- grid.Spacing(15);
-
- grid.Item(3 ).Text("Red section")
- .FontColor(Colors.Red.Darken2).FontSize(32).Bold();
- grid.Item(3).Text(Placeholders.Paragraph()).Light();
- foreach (var i in Enumerable.Range(0, 6))
- grid.Item().AspectRatio(4 / 3f).Background(Colors.Red.Lighten4);
- });
- }
-
- private void GreenSection(IContainer container)
- {
- container.Grid(grid =>
- {
- grid.Columns(3);
- grid.Spacing(15);
-
- grid.Item(3).Text("Green section")
- .FontColor(Colors.Green.Darken2).FontSize(32).Bold();
- grid.Item(3).Text(Placeholders.Paragraph()).Light();
- foreach (var i in Enumerable.Range(0, 12))
- grid.Item().AspectRatio(4 / 3f).Background(Colors.Green.Lighten4);
- });
- }
-
- private void BlueSection(IContainer container)
- {
- container.Grid(grid =>
- {
- grid.Columns(3);
- grid.Spacing(15);
-
- grid.Item(3).Text("Blue section")
- .FontColor(Colors.Blue.Darken2).FontSize(32).Bold();
- grid.Item(3).Text(Placeholders.Paragraph()).Light();
- foreach (var i in Enumerable.Range(0, 18))
- grid.Item().AspectRatio(4 / 3f).Background(Colors.Blue.Lighten4);
- });
- }
- }
|