17. A non-transitory computer-readable medium having instructions encoded thereon which, when executed by a processing device, causes the processing device to perform operations comprising: receiving an image of at least a portion of a physical text source; segmenting the image into a plurality of character blocks, each character block comprising one of a plurality of glyphs; identifying a first font for a first glyph, wherein identifying the first font comprises: analyzing shape and appearance characteristics of two or more of the plurality of glyphs; identifying a candidate font for the first glyph; determining that the candidate font is a most commonly used font for a related set of two or more of the plurality of glyphs; determining that the candidate font that is the most commonly used font is a dominant font for the related set of two or more of the plurality of glyphs; and identifying a final font for glyphs in the related set based at least in part on the dominant font; identifying a second font for a second glyph, the second font different than the first font; and generating a reflowable content file indicating characters, the first font and the second font.
19. The non-transitory computer-readable medium of claim 17 , wherein identifying the final font comprises: determining an error metric indicative of a difference between two or more glyphs of the related set and a representation of the two or more glyphs of the related set generated using the dominant font; determining that the error metric above a threshold; and selecting, for the two or more glyphs of the related set, a final font as a font different from the dominant font.