1. A method for compressing a binary image representing a document containing text regions, the method comprising: (a) segmenting the text regions into a plurality of symbol images, each symbol image representing a symbol of text, each symbol image being bound by a bounding box having a location and a size; (b) classifying each symbol image obtained in step (a) into one of a plurality of classes, each class being represented by a template image and a class index, including, for each symbol image being classified: (b1) comparing the symbol image with each template image to determine whether they match each other, including comparing a plurality of features of the symbol image with the corresponding plurality of features of the template image, the plurality of features including density statistics features, side profile features, topology statistics features and shape features; (b2) if a match is found in step (b1), recording the class index corresponding to the matched template in association with the symbol image being classified; and (b3) if no match is found in step (b1), adding a new class to the plurality of classes, by using the image of the symbol image being classified as the template image of the new class and assigning a class index to the new class, and recording the class index in association with the symbol image being classified; (c) resizing the template image of each class to a final size; and (d) storing, as compressed image data, the resized template image for each of the plurality of classes along with its class index, the bounding box location and size for each symbol image obtained in step (a), and the class index for each symbol image obtained in step (b2) or (b3).