Есть ли способ получить доступ к верхнему колонтитулу, нижнему колонтитулу и содержимому страницы отдельно с помощью libpoppler? - PullRequest
0 голосов
/ 20 февраля 2012

Я использую libpoppler для анализа PDF-файла в виде обычного текста, и я хочу выводить верхний колонтитул страницы, нижний колонтитул страницы и контент отдельно, как я могу это сделать ??Есть ли какая-либо структура или класс, который их удерживает?

Заранее спасибо !!

Ответы [ 3 ]

0 голосов
/ 20 февраля 2012

Не совсем. В PDF нет понятия верхнего, нижнего и нижнего колонтитула (если вы не создаете тегированный PDF).

0 голосов
/ 19 августа 2012

Вы можете получить текст на странице с помощью 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;
}
0 голосов
/ 20 февраля 2012

Отказ от ответственности: это может быть не очень хороший ответ

В прошлый раз, когда я проверял, libpoppler был просто хорошим средством визуализации, которое могло видеть страницу в формате PDF как последовательность операций векторного рисования.В этом смысле для него должна быть возможность перехватывать операции рисования текста и, таким образом, каким-то образом сообщать текст.Но я не думаю, что текст в верхнем и нижнем колонтитулах страницы будет чем-то особенным с векторной точки зрения.Кроме того, я видел множество очень дорогих программ преобразования PDF в текст, которые с треском проваливались.

...