PoDoFo польские символы & amp; 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 показывал текст по-разному или не показывал его вообще.

0

Решение

Объявление 1 Ссылка на патч-файлы
который позволяет экстрагировать текст польского из PDF, используя TextExtractor.

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

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

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

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]