The width of words would have larger difference than the height of characters, so use the width. I would
1. Manually categorize a few thousand words of normal and footnote text. Then solve a linear system to figure out the width of each letter in normal and footnote. Now, you are able to compute the expected width of any word in normal or footnote font.
2. Now, when you get a fresh page, go down line by line. For every word in the line, compare the actual word width with the expected normal width and expected footnote width. Whichever is closer categorize the word as that. Then for the whole line, take the majority vote on whether to categorize it as normal or footnote line. Once you hit a footnote line, you are done.
You're right that all I have to do is find the first line of the footnotes, because everything above is the text and everything under it is footnotes.
For now I have selected a crude approach: there is a gap in the page between the text and the notes, of about one line height. So if one simply takes all the first words of each line and compares their vertical distance, when that distance grows significantly, it's where the footnotes start.
I have tested this method on a dozen of pages and it works, but it remains to be seen if it will stand the test of many pages, esp. those that are askew.
Using the average width of letters instead of their height is a neat idea though; visually it's undeniable that there is a greater difference of width than of height between the footnotes and the main text. I may resort to that if the crude approach proves too simple!
1. Manually categorize a few thousand words of normal and footnote text. Then solve a linear system to figure out the width of each letter in normal and footnote. Now, you are able to compute the expected width of any word in normal or footnote font.
2. Now, when you get a fresh page, go down line by line. For every word in the line, compare the actual word width with the expected normal width and expected footnote width. Whichever is closer categorize the word as that. Then for the whole line, take the majority vote on whether to categorize it as normal or footnote line. Once you hit a footnote line, you are done.