A method for identifying a page layout of an image that includes textual regions, comprising: receiving an input image that includes words around which bounding boxes have been formed; grouping the words into lines based on the distance between them, their relative vertical position and the height of their bounding box; grouping said lines into text regions, wherein grouping the lines into a plurality of text regions further comprises identifying one or more white space regions located between the text regions; and sorting the text regions in accordance with their reading order, said reading order assigned to the text regions such that a text region with a top-most border closer to a top edge of the page is assigned an earlier place in the reading order than a text region with a top-most border more distant from the top edge of the page; wherein identifying the white space regions includes: identifying one or more rectangular white space candidate seeds that are candidate white space regions, said white space candidate seeds identified, for each word bounding box, as the space between the word bounding box and the nearest neighbor bounding box to its right; vertically expanding each white space candidate seed by a configurable amount; selecting expanded white space candidate seeds that do not intersect any word bounding boxes as white space seeds; horizontally expanding the white space seeds without overlapping any word bounding boxes; vertically expanding resulting white space rectangles while horizontally shrinking any vertically and horizontally expanded white space rectangles to prevent overlap with any word bounding boxes. receiving an input image that includes words around which bounding boxes have been formed; grouping the words into lines based on the distance between them, their relative vertical position and the height of their bounding box; grouping said lines into text regions, wherein grouping the lines into a plurality of text regions further comprises identifying one or more white space regions located between the text regions; and sorting the text regions in accordance with their reading order, said reading order assigned to the text regions such that a text region with a top-most border closer to a top edge of the page is assigned an earlier place in the reading order than a text region with a top-most border more distant from the top edge of the page; wherein identifying the white space regions includes: identifying one or more rectangular white space candidate seeds that are candidate white space regions, said white space candidate seeds identified, for each word bounding box, as the space between the word bounding box and the nearest neighbor bounding box to its right; vertically expanding each white space candidate seed by a configurable amount; selecting expanded white space candidate seeds that do not intersect any word bounding boxes as white space seeds; horizontally expanding the white space seeds without overlapping any word bounding boxes; vertically expanding resulting white space rectangles while horizontally shrinking any vertically and horizontally expanded white space rectangles to prevent overlap with any word bounding boxes. identifying one or more rectangular white space candidate seeds that are candidate white space regions, said white space candidate seeds identified, for each word bounding box, as the space between the word bounding box and the nearest neighbor bounding box to its right; vertically expanding each white space candidate seed by a configurable amount; selecting expanded white space candidate seeds that do not intersect any word bounding boxes as white space seeds; horizontally expanding the white space seeds without overlapping any word bounding boxes; vertically expanding resulting white space rectangles while horizontally shrinking any vertically and horizontally expanded white space rectangles to prevent overlap with any word bounding boxes.