1. A method for defining a reading order through a plurality of primitive areas of a document page, the method comprising: sorting the plurality of primitive areas into a sorted sequence of primitive areas according to a first sorting criteria based on locations of the primitive areas within the document page; selecting a successive pair of primitive areas in the sorted sequence comprising a first primitive area and a second primitive area; designating one of the first and second primitive areas as a primary area and the other primitive area as a secondary area based on a second sorting criteria that compares start points of the first and second primitive areas within a coordinate system of the first primitive area and compares the start points of the first and second primitive areas within a coordinate system of the second primitive area in order to determine the primary and secondary areas; comparing a location of the start point of the primary area with respect to the secondary area according to the second sorting criteria; transposing the first primitive area with the second primitive area in the sorted sequence of primitive areas when the comparison of the start point of the primary area with respect to the secondary area satisfies the second sorting criteria; and generating an ordered list to define the reading order through the primitive areas based on the transposed sequence of primitive areas.
1. A method for defining a reading order through a plurality of primitive areas of a document page, the method comprising: sorting the plurality of primitive areas into a sorted sequence of primitive areas according to a first sorting criteria based on locations of the primitive areas within the document page; selecting a successive pair of primitive areas in the sorted sequence comprising a first primitive area and a second primitive area; designating one of the first and second primitive areas as a primary area and the other primitive area as a secondary area based on a second sorting criteria that compares start points of the first and second primitive areas within a coordinate system of the first primitive area and compares the start points of the first and second primitive areas within a coordinate system of the second primitive area in order to determine the primary and secondary areas; comparing a location of the start point of the primary area with respect to the secondary area according to the second sorting criteria; transposing the first primitive area with the second primitive area in the sorted sequence of primitive areas when the comparison of the start point of the primary area with respect to the secondary area satisfies the second sorting criteria; and generating an ordered list to define the reading order through the primitive areas based on the transposed sequence of primitive areas. 3. The method of claim 1 , wherein the first sorting criteria is further based on a comparison of start points of the plurality of primitive areas and the second sorting criteria is further based on a reading flow of one of the two successive primitive areas.