diff --git a/QuestPDF/Elements/Table/Table.cs b/QuestPDF/Elements/Table/Table.cs index 4a33c25..6663f50 100644 --- a/QuestPDF/Elements/Table/Table.cs +++ b/QuestPDF/Elements/Table/Table.cs @@ -42,7 +42,9 @@ namespace QuestPDF.Elements.Table public void ResetState() { - Cells.ForEach(x => x.IsRendered = false); + foreach (var x in Cells) + x.IsRendered = false; + CurrentRow = 1; } diff --git a/QuestPDF/Elements/Text/TextBlock.cs b/QuestPDF/Elements/Text/TextBlock.cs index 3ae9b3f..5ba462e 100644 --- a/QuestPDF/Elements/Text/TextBlock.cs +++ b/QuestPDF/Elements/Text/TextBlock.cs @@ -20,7 +20,20 @@ namespace QuestPDF.Elements.Text public void ResetState() { - RenderingQueue = new Queue(Items); + // ReSharper disable once ConditionIsAlwaysTrueOrFalseAccordingToNullableAPIContract + // Create queue when we don't have one yet, otherwise clear the existing one so it re-uses the internal array under the hood. + if (RenderingQueue == null) + { + RenderingQueue = new Queue(Items); + } + else + { + RenderingQueue.Clear(); + + foreach (var item in Items) + RenderingQueue.Enqueue(item); + } + CurrentElementIndex = 0; }