Letter pageLabel wrongly calculated if StartingValue > 27

Hello!

I am assigning custom letter labels to my PDF pages and they seem to work from A (1) to Z(26), but it starts to be wrong if n > 26 (Z).

This is my code:

for (int i = startPage; i <= brief.Pages.Count; i++){
      PageLabel pageLabel = new PageLabel();
      pageLabel.NumberingStyle = NumberingStyle.LettersUppercase;
      pageLabel.StartingValue = mypageNumber;
      brief.PageLabels.UpdateLabel(i -1, pageLabel);
}

That will display correctly, A, B, C…, Z. But then, it continues displaying AA, BB, CC, DD, EE, FF… rather than AA, AB, AC, AD, AE.

I have tried another way, by calculating the letter for each page, and setting the label prefix:

 var pageLetter = IntToLetters(mypageNumber); // This will be "A", "B"... "AA", "AB", "AC"...
PageLabel pageLabel = new PageLabel();
pageLabel.Prefix = pageLetter;
pageLabel.NumberingStyle = NumberingStyle.None;
brief.PageLabels.UpdateLabel(i -1, pageLabel);

But it didn’t work either

I also tried this:

PageLabel pageLabel = new PageLabel();
pageLabel.Prefix = pageLetter;
pageLabel.NumberingStyle = NumberingStyle.None;
pageLabel.StartingValue = -1000; // Set to a large negative number to hide the number from the label
brief.PageLabels.UpdateLabel(i -1, pageLabel);

I have fixed this by splitting the label into 2.

For example, if we are in page 28:

pageLetter= getLetterFromInt(28); // this will be "AB"
PageLabel pageLabel = new PageLabel();
pageLabel.NumberingStyle = NumberingStyle.LettersUppercase;
if (pageLetter.Length >= 2) // if the page letter is > Z.
{
    pageLabel.Prefix = pageLetter.Substring(0, pageLetter.Length - 1); // Will set "A" as prefix
    pageLabel.StartingValue = CharToAlphabetPosition(pageLetter[pageLetter.Length - 1]); // Will convert "B" into the number 2.
}
else
{
    pageLabel.StartingValue = mappings[i] + (config.PageStart);
}
brief.PageLabels.UpdateLabel(i -1, pageLabel);

@cesypozo

It is nice to know that you were able to sort this out. Please keep using the API and feel free to let us know in case you face any issues.