12. A computer program product, encoded on a non-transitory computer-readable medium, operable to cause data processing apparatus to perform operations comprising: receiving an electronic document comprising an image object; recognizing, in a first region of the image object, a first plurality of text characters having a first orientation in the image object; recognizing, in a second region of the image object, a second plurality of text characters having a second orientation in the image object; and modifying the electronic document to include: a first text object comprising an identification of the first plurality of text characters, wherein the identification of the first plurality of text characters includes a first set of values, each value in the first set of values representing an individual text character recognized in the first region; and a second text object comprising an identification of the second plurality of text characters, wherein the identification of the second plurality of text characters includes a second set of values, each value in the second set of values representing an individual text character recognized in the second region.
13. The computer program product, of claim 12 , the operations further comprising: receiving a request to search the modified electronic document for a particular string of text characters; searching the first text object for the particular string of text characters; and searching the second text object for the particular string of text characters.