PoDoFo польские символы & PdfContentsTokenizer ошибка

1.

Как получить польские символы из PDF-файла? Могу ли я как-то сказать

PdfVariant::getString()

это будет обрабатывать польские символы? Потому что я получаю \200вместо ł например, и самое смешное, вот только когда ł происходит как первый "неосновной" персонаж. Так что, если файл PDF начинается с aaaałęąaaaa, ł закодировано как \200, ę лайк \201 а также ą лайк \202 но если pdf файл начинается с aaaaąęłaaaa, ł закодировано как \202, ę лайк \201 а также ą лайк \200Как я могу получить эти символы в любой системе?

2.

Когда я пытаюсь извлечь текст из файла PDF, я делаю что-то вроде этого:

string input_name = "example.pdf";
PdfMemDocument pdf(input_name.c_str());
    for (int pn = 0; pn < pdf.GetPageCount(); ++pn) {
        PdfPage* page = pdf.GetPage(pn); 
        PdfContentsTokenizer tok(page);
        const char* token = nullptr;
        PdfVariant var;
        EPdfContentsType type;
        while (tok.ReadNext(type, token, var)) {
           //etc.

Но у меня проблема с PdfContentsTokenizer tok(page); Это не работает должным образом. Для некоторых файлов PDF это идет гладко, а для других он бросает Access violation reading location ошибка в inffas32.asm файл, 669 линия:

L_get_length_code_mmx:
pand mm4,mm0
movd eax,mm4
movq mm4,mm3
mov  eax, [ebx+eax*4]//this is the error line

Кстати, я заметил, что не каждый файл PDF кодируется одинаково. Например, используя podofobrowser я не мог видеть Hello World! текст из официального примера podofo helloworld. А для остальных pdf файлов podofobrowser показывал текст по-разному или не показывал его вообще.

1 ответ

Решение

Объявление 1. Ссылка на файлы патчей, позволяющая извлекать текст из польского pdf с помощью TextExtractor.

Это самая важная строка для извлечения не-Unicode текста из PDF:

PdfString unicode = pCurFont->GetEncoding()->ConvertToUnicode( rString, pCurFont );

Объявление 2. Проблема была в библиотеке zlib, которая была построена неправильно. Я восстановил его, восстановил podofo и проблема исчезла.

Другие вопросы по тегам