+const gchar *
+ev_page_cache_get_text (EvPageCache *cache,
+ gint page)
+{
+ EvPageCacheData *data;
+
+ g_return_val_if_fail (EV_IS_PAGE_CACHE (cache), NULL);
+ g_return_val_if_fail (page >= 0 && page < cache->n_pages, NULL);
+
+ if (!(cache->flags & EV_PAGE_DATA_INCLUDE_TEXT))
+ return NULL;
+
+ data = &cache->page_list[page];
+ if (data->done)
+ return data->text;
+
+ if (data->job)
+ return EV_JOB_PAGE_DATA (data->job)->text;
+
+ return data->text;
+}
+
+gboolean
+ev_page_cache_get_text_layout (EvPageCache *cache,
+ gint page,
+ EvRectangle **areas,
+ guint *n_areas)
+{
+ EvPageCacheData *data;
+
+ g_return_val_if_fail (EV_IS_PAGE_CACHE (cache), FALSE);
+ g_return_val_if_fail (page >= 0 && page < cache->n_pages, FALSE);
+
+ if (!(cache->flags & EV_PAGE_DATA_INCLUDE_TEXT_LAYOUT))
+ return FALSE;
+
+ data = &cache->page_list[page];
+ if (data->done) {
+ *areas = data->text_layout;
+ *n_areas = data->text_layout_length;
+
+ return TRUE;
+ }
+
+ if (data->job) {
+ *areas = EV_JOB_PAGE_DATA (data->job)->text_layout;
+ *n_areas = EV_JOB_PAGE_DATA (data->job)->text_layout_length;
+
+ return TRUE;
+ }
+
+ return FALSE;
+}