| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206 |
- using System;
- using System.Linq;
- using NUnit.Framework;
- using QuestPDF.Examples.Engine;
- using QuestPDF.Fluent;
- using QuestPDF.Helpers;
- using QuestPDF.Infrastructure;
- namespace QuestPDF.Examples;
- public class MultiColumnExamples
- {
- [Test]
- public void TypicalCase()
- {
- RenderingTest
- .Create()
- .PageSize(PageSizes.A4)
- .ProducePdf()
- .ShowResults()
- .Render(container =>
- {
- container
- .Padding(25)
- .DefaultTextStyle(x => x.FontSize(8))
- .MultiColumn(multiColumn =>
- {
- multiColumn.Columns(3);
-
- multiColumn
- .Content()
- .Column(column =>
- {
- column.Spacing(10);
- foreach (var sectionId in Enumerable.Range(0, 10))
- {
- foreach (var textId in Enumerable.Range(0, Random.Shared.Next(5, 10)))
- column.Item().Text(Placeholders.Paragraph());
- foreach (var blockId in Enumerable.Range(0, Random.Shared.Next(5, 10)))
- column.Item().Width(50 + blockId * 5).Height(50).Background(Placeholders.BackgroundColor());
- }
- });
- });
- });
- }
-
- [Test]
- public void Decoration()
- {
- RenderingTest
- .Create()
- .PageSize(PageSizes.A4)
- .ProducePdf()
- .ShowResults()
- .Render(container =>
- {
- container
- .Padding(25)
- .DefaultTextStyle(x => x.FontSize(8))
- .MultiColumn(multiColumn =>
- {
- multiColumn.Columns(3);
- multiColumn.Spacing(25);
- multiColumn.BalanceHeight();
-
- multiColumn.Spacer().AlignCenter().LineVertical(2).LineColor(Colors.Grey.Medium);
-
- multiColumn
- .Content()
- .Column(column =>
- {
- column.Spacing(10);
- foreach (var blockId in Enumerable.Range(0, 100))
- column.Item().Height(50).Background(Placeholders.BackgroundColor());
- });
- });
- });
- }
-
- [Test]
- public void Table()
- {
- Settings.EnableCaching = true;
-
- RenderingTest
- .Create()
- .PageSize(PageSizes.A4)
- .ProducePdf()
- .ShowResults()
- .Render(container =>
- {
- container
- .Padding(25)
- .DefaultTextStyle(x => x.FontSize(8))
- .MultiColumn(multiColumn =>
- {
- multiColumn.Spacing(10);
- multiColumn.BalanceHeight(false);
-
- multiColumn
- .Content()
- .Border(1)
- .Table(table =>
- {
- table.ColumnsDefinition(columns =>
- {
- columns.RelativeColumn(1);
- columns.RelativeColumn(2);
- columns.RelativeColumn(3);
- });
- table.Header(header =>
- {
- header.Cell().Element(Style).Text("#").Bold();
- header.Cell().Element(Style).Text("Label").Bold();
- header.Cell().Element(Style).Text("Description").Bold();
-
- IContainer Style(IContainer container) => container.Border(1).BorderColor(Colors.Grey.Medium).Background(Colors.Grey.Lighten2).Padding(2);
- });
-
- foreach (var i in Enumerable.Range(1, 1_000))
- {
- table.Cell().Element(Style).ShowEntire().Text(i.ToString());
- table.Cell().Element(Style).ShowEntire().Text(Placeholders.Label());
- table.Cell().Element(Style).ShowEntire().Text(Placeholders.Sentence());
-
- IContainer Style(IContainer container) => container.Border(1).BorderColor(Colors.Grey.Medium).Background(i % 2 == 0 ? Colors.White : Colors.Grey.Lighten4).Padding(2);
- }
- });
- });
- });
- }
-
- [Test]
- public void BalanceHeight()
- {
- RenderingTest
- .Create()
- .PageSize(PageSizes.A4)
- .ProducePdf()
- .ShowResults()
- .Render(container =>
- {
- container
- .Padding(25)
- .DefaultTextStyle(x => x.FontSize(8))
- .MultiColumn(multiColumn =>
- {
- multiColumn.Columns(4);
- multiColumn.BalanceHeight(true);
- multiColumn.Spacing(10);
-
- multiColumn
- .Content()
- .Column(column =>
- {
- column.Spacing(10);
- foreach (var sectionId in Enumerable.Range(0, 20))
- {
- column.Item().Text(Placeholders.Paragraph());
- }
- });
- });
- });
- }
-
- [Test]
- public void RightToLeft()
- {
- RenderingTest
- .Create()
- .PageSize(PageSizes.A4)
- .ProducePdf()
- .ShowResults()
- .Render(container =>
- {
- container
- .Padding(25)
- .DefaultTextStyle(x => x.FontSize(8))
- .ShrinkVertical()
- .ContentFromRightToLeft()
- .MultiColumn(multiColumn =>
- {
- multiColumn.Columns(4);
- multiColumn.BalanceHeight(true);
- multiColumn.Spacing(10);
-
- multiColumn
- .Content()
- .Column(column =>
- {
- column.Spacing(10);
- foreach (var i in Enumerable.Range(0, 100))
- {
- column.Item().Height(50).Background(Placeholders.BackgroundColor()).Text(i.ToString());
- }
- });
- });
- });
- }
- }
|