7. An assisted OCR system, comprising: a non-transitory storage medium to store computer program code; and a processor to execute the computer program code, the processor, when executing the computer program code, performing the following: receiving an image file of an image of a text document, the image of the text document including a plurality of glyphs; determining a position of each of the glyphs in the image of the text document; determining a spacing of the glyphs in the image of the text document; identifying word boundaries in the image of the text document from the spacing thereby implying an existence of a first plurality of words in the image of the text document, each one of the first plurality of words having a word length measured by the number of characters in the one word; preparing a first array of word lengths based on the word length of each of the first plurality of words, the first array being ordered according to the order in which the first plurality of words appear in the image of the text document; receiving a text file including a certain text, the text file including a second plurality of words and a plurality of characters, each of the second plurality of words having a word length; preparing a second array of word lengths based on the word length of each of the second plurality of words, the second array being ordered according to the order in which the second plurality of words appear in the text file; comparing at least part of the first array of word lengths to at least part of the second array of word lengths in order to find a best alignment between the first array of word lengths and the second array of word lengths; assigning at least some of the characters of the text file of the certain text to at least some of the glyphs of the image of the text document based on the best alignment; selecting a letter of an alphabet included in the characters of the text file; selecting some of the glyphs of the image of the text document that correspond to the selected letter of the alphabet based on the best alignment; comparing the selected glyphs with each other to provide a level of confidence in the best alignment; deriving a layout of at least part of the certain text as arranged in the image of the text document at least based on the position of each of the at least some glyphs in the image of the text document and assigning at least some of the characters of the text file of the certain text to at least some of the glyphs of the image of the text document according to the best alignment; and extracting a watermark embedded in the image of the text document.
7. An assisted OCR system, comprising: a non-transitory storage medium to store computer program code; and a processor to execute the computer program code, the processor, when executing the computer program code, performing the following: receiving an image file of an image of a text document, the image of the text document including a plurality of glyphs; determining a position of each of the glyphs in the image of the text document; determining a spacing of the glyphs in the image of the text document; identifying word boundaries in the image of the text document from the spacing thereby implying an existence of a first plurality of words in the image of the text document, each one of the first plurality of words having a word length measured by the number of characters in the one word; preparing a first array of word lengths based on the word length of each of the first plurality of words, the first array being ordered according to the order in which the first plurality of words appear in the image of the text document; receiving a text file including a certain text, the text file including a second plurality of words and a plurality of characters, each of the second plurality of words having a word length; preparing a second array of word lengths based on the word length of each of the second plurality of words, the second array being ordered according to the order in which the second plurality of words appear in the text file; comparing at least part of the first array of word lengths to at least part of the second array of word lengths in order to find a best alignment between the first array of word lengths and the second array of word lengths; assigning at least some of the characters of the text file of the certain text to at least some of the glyphs of the image of the text document based on the best alignment; selecting a letter of an alphabet included in the characters of the text file; selecting some of the glyphs of the image of the text document that correspond to the selected letter of the alphabet based on the best alignment; comparing the selected glyphs with each other to provide a level of confidence in the best alignment; deriving a layout of at least part of the certain text as arranged in the image of the text document at least based on the position of each of the at least some glyphs in the image of the text document and assigning at least some of the characters of the text file of the certain text to at least some of the glyphs of the image of the text document according to the best alignment; and extracting a watermark embedded in the image of the text document. 9. The system according to claim 7 , wherein the comparing includes applying a penalized longest common subsequence matching algorithm including calculating a matching score which: increases according to how many of the word lengths match in a common subsequence; and decreases according to how many words are skipped in the first and/or second array in order to find the common subsequence, the common subsequence with a highest matching score being selected as the common subsequence determining the best alignment.