glib/poppler-page.cc | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-)
New commits: commit 6825a219f0bc0ac6fd469fb8a6ebb86df774375f Author: Carlos Garcia Campos <[email protected]> Date: Sat Jan 23 11:24:15 2010 +0100 [glib] Use TextOutputDev to get TextPage when we haven't rendered the page diff --git a/glib/poppler-page.cc b/glib/poppler-page.cc index 4514f9c..2448644 100644 --- a/glib/poppler-page.cc +++ b/glib/poppler-page.cc @@ -268,15 +268,24 @@ static TextPage * poppler_page_get_text_page (PopplerPage *page) { if (page->text == NULL) { - cairo_t *cr; - cairo_surface_t *surface; - - surface = cairo_image_surface_create (CAIRO_FORMAT_RGB24, 1, 1); - cr = cairo_create (surface); - poppler_page_render (page, cr); - cairo_destroy (cr); - cairo_surface_destroy (surface); - + TextOutputDev *text_dev; + Gfx *gfx; + + text_dev = new TextOutputDev (NULL, gTrue, gFalse, gFalse); + gfx = page->page->createGfx(text_dev, + 72.0, 72.0, 0, + gFalse, /* useMediaBox */ + gTrue, /* Crop */ + -1, -1, -1, -1, + gFalse, /* printing */ + page->document->doc->getCatalog (), + NULL, NULL, NULL, NULL); + page->page->display(gfx); + text_dev->endPage(); + + page->text = text_dev->takeText(); + delete gfx; + delete text_dev; } return page->text; _______________________________________________ poppler mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/poppler
