Вы можете получить текст на странице с помощью poppler_page_get_text()
. Можете ли вы разобрать чистый текст потом? Вот пример кода. Это не C ++, но надеюсь, что вы можете увидеть идею.
Протестировано на нестабильной Debian amd64, libpoppler-glib-dev 0.18.4-3, gcc 4.7.1-7
$ gcc -Wall -g -Wextra get-text.c $(pkg-config --cflags --libs poppler-glib)
#include <poppler.h>
#include <glib.h>
int main(int argc, char *argv[])
{
GError *error = NULL;
PopplerDocument *d;
PopplerPage *p;
gchar *f;
gchar *u;
g_type_init();
if (argc < 2)
g_error("oops: no file name given");
if (g_path_is_absolute(argv[1]))
f = argv[1];
else
f = g_build_filename(g_get_current_dir(), argv[1], NULL);
u = g_filename_to_uri(f, NULL, &error);
if (!u)
g_error("oops: %s", error->message);
d = poppler_document_new_from_file(u, NULL, &error);
if (!d)
return -1;
p = poppler_document_get_page(d, 1);
g_print("%s\n", poppler_page_get_text(p));
return 0;
}