1. A method for removing graphics components in an input binary document image, comprising: (a) determining whether each connected component in the input binary document image is a text component or a graphic component, and removing all connected components that are determined to be graphic components to generate an intermediate document image, the intermediate document image containing a plurality of connected components that are determined to be text components; (b) recovering at least some connected components of the input binary document image that have been removed in step (a) as recovered text components, wherein the recovering step recovers any connected component that is at least partially located within a pre-defined neighboring area around either a text component in the intermediate document image or another recovered text component, including: (b1) setting the intermediate document image as a current text recovery image; (b2) for each connected component of the current text recovery image, defining an expanded bounding box around the connected component by expanding a bounding box of the connected component in one or more directions by predefined amounts; (b3) searching the input binary document image in the expanded bounding boxes of all connected component of the current text recovery image to find any new image components located within the expanded bounding boxes that are not present in the current text recovery image; (b4) updating the current text recovery image to include any new image components found in step (b3); and (b5) repeating steps (b2) to (b4) until no new image components are found within the expanded bounding boxes in step (b3), wherein the new image components found in all iterations of step (b3) collectively form the recovered text components; and (c) generating an output document image which contains only the connected components that are determined to be text components in step (a) and the connected components recovered in step (b).