我正在使用libpoppler將PDF文件解析爲純文本,並且我想分別輸出頁眉,頁腳和內容,我該怎麼做? 有沒有任何結構或類別持有它們?有什麼方法可以分別使用libpoppler來訪問頁眉,頁腳和頁面內容嗎?
在此先感謝!
我正在使用libpoppler將PDF文件解析爲純文本,並且我想分別輸出頁眉,頁腳和內容,我該怎麼做? 有沒有任何結構或類別持有它們?有什麼方法可以分別使用libpoppler來訪問頁眉,頁腳和頁面內容嗎?
在此先感謝!
您可以在poppler_page_get_text()
的頁面中獲得文本。你以後可以解析純文本嗎?這是一個示例代碼。這不是一個C++,但希望你能看到這個想法。
測試的Debian不穩定AMD64,libpoppler-巧舌如簧-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;
}
免責聲明:這可能不是一個很好的答案
我最後一次檢查libpoppler只是一個很好的渲染,可以看到一個PDF頁面的矢量繪圖操作的順序。從這個意義上說,它應該有可能攔截文本繪圖操作,從而以某種方式報告文本。但我不認爲頁面的頁眉/頁腳中的文本從矢量的角度來看並不特別。此外,我看到了一堆非常昂貴的PDF到文本轉換器程序,在這個過程中失敗了。
謝謝你的建議。 – zxi 2012-02-21 01:47:09