Files

56 lines
1.6 KiB
C#
Raw Permalink Normal View History

2021-10-29 01:23:46 +02:00
using NUnit.Framework;
using QuestPDF.Examples.Engine;
using QuestPDF.Fluent;
using QuestPDF.Helpers;
using QuestPDF.Infrastructure;
namespace QuestPDF.Examples
{
public class ComplexLayoutBenchmark
{
[Test]
public void ComplexLayout()
{
RenderingTest
.Create()
.PageSize(PageSizes.A4)
.ProducePdf()
.ShowResults()
2022-03-15 13:06:09 +01:00
.Render(x => GenerateStructure(x, 12));
2021-10-29 01:23:46 +02:00
}
private void GenerateStructure(IContainer container, int level)
{
if (level <= 0)
{
container.Background(Placeholders.BackgroundColor()).Height(10);
return;
}
level--;
if (level % 3 == 0)
{
container
2021-11-30 00:34:04 +01:00
.Border(level / 4f)
2021-10-29 01:23:46 +02:00
.BorderColor(Colors.Black)
.Row(row =>
{
row.RelativeItem().Element(x => GenerateStructure(x, level));
row.RelativeItem().Element(x => GenerateStructure(x, level));
2021-10-29 01:23:46 +02:00
});
}
else
{
container
2021-11-30 00:34:04 +01:00
.Border(level / 4f)
2021-10-29 01:23:46 +02:00
.BorderColor(Colors.Black)
.Column(column =>
2021-10-29 01:23:46 +02:00
{
column.Item().Element(x => GenerateStructure(x, level));
column.Item().Element(x => GenerateStructure(x, level));
2021-10-29 01:23:46 +02:00
});
}
}
}
}