Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Fix letter generation for page labels
The old code generates page labels like a,b,c,d,...,x,y,z,aa,bb,cc,... while it should be a,b,c,d...x,y,z,aa,ab,ac,... This code should also work for a number way bigger than what any reasonable individual would need for a pdf page label
  • Loading branch information
FelixFrog authored Oct 3, 2022
commit 1473e6db8493dfd22ffea513bb6dc4d4ea580db1
13 changes: 9 additions & 4 deletions fitz/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -4735,11 +4735,16 @@ def integerToLetter(i) -> str:
# William Chapman, Jorj McKie, 2021-01-06

ls = string.ascii_uppercase
m = int((i - 1) / 26) # how many times over
n = (i % 26) - 1 # remainder
n, a = 1, i
while pow(26, n) <= a:
a -= int(math.pow(26, n))
n += 1

str_t = ""
for _ in range(0, m + 1):
str_t = str_t + ls[n]
for j in reversed(range(n)):
f, g = divmod(a, int(math.pow(26, j)))
str_t += ls[f]
a = g
return str_t


Expand Down