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 Ссылка на патч-файлы
который позволяет экстрагировать текст польского из PDF, используя TextExtractor.
Это самая важная строка для извлечения не-Unicode текста из PDF:
PdfString unicode = pCurFont->GetEncoding()->ConvertToUnicode( rString, pCurFont );
Объявление 2 Проблема была в библиотеке zlib, которая была построена неправильно. Я восстановил его, восстановил podofo и проблема исчезла.
Других решений пока нет …