TableBenchmark.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System.Linq;
  2. using NUnit.Framework;
  3. using QuestPDF.Examples.Engine;
  4. using QuestPDF.Fluent;
  5. using QuestPDF.Helpers;
  6. namespace QuestPDF.Examples
  7. {
  8. public class TableBenchmark
  9. {
  10. [Test]
  11. public void Benchmark()
  12. {
  13. RenderingTest
  14. .Create()
  15. .ProducePdf()
  16. .PageSize(PageSizes.A4)
  17. .ShowResults()
  18. .MaxPages(10_000)
  19. .EnableCaching(true)
  20. .EnableDebugging(false)
  21. .Render(container =>
  22. {
  23. container
  24. .Padding(10)
  25. .MinimalBox()
  26. .Border(1)
  27. .Table(table =>
  28. {
  29. const int numberOfRows = 100_000;
  30. const int numberOfColumns = 10;
  31. table.ColumnsDefinition(columns =>
  32. {
  33. foreach (var _ in Enumerable.Range(0, numberOfColumns))
  34. columns.RelativeColumn();
  35. });
  36. foreach (var row in Enumerable.Range(0, numberOfRows))
  37. foreach (var column in Enumerable.Range(0, numberOfColumns))
  38. table.Cell().Background(Placeholders.BackgroundColor()).Padding(5).Text($"{row}_{column}");
  39. });
  40. });
  41. }
  42. }
  43. }