Files
QuestPDF/QuestPDF/Elements/Text/Items/TextBlockPageNumber.cs
T
2022-03-15 11:55:59 +01:00

29 lines
879 B
C#

using System;
using QuestPDF.Elements.Text.Calculation;
using QuestPDF.Infrastructure;
namespace QuestPDF.Elements.Text.Items
{
internal class TextBlockPageNumber : TextBlockSpan
{
public const string PageNumberPlaceholder = "123";
public Func<IPageContext, string> Source { get; set; } = _ => PageNumberPlaceholder;
public override TextMeasurementResult? Measure(TextMeasurementRequest request)
{
UpdatePageNumberText(request.PageContext);
return MeasureWithoutCache(request);
}
public override void Draw(TextDrawingRequest request)
{
UpdatePageNumberText(request.PageContext);
base.Draw(request);
}
private void UpdatePageNumberText(IPageContext context)
{
Text = Source(context) ?? string.Empty;
}
}
}