Я работаю с iText5 для анализа pdf, написанного в основном на иврите. Чтобы извлечь текст, я использую PdfTextExtractor.getTextFromPage. Я не нашел способ изменить кодировку в библиотеке, и текст появляется в тарабарщине.
Я попытался исправить кодировку следующим образом: new String(pdfPage.getBytes(Charset1), Charset2). Я просмотрел все возможные кодировки, используя Charset.availableCharsets(), и некоторые из них дали мне иврит вместо тарабарщины, но изменили его на противоположный.
Теперь я подумал, что могу перевернуть текст по строкам, но иврите его справа налево и число и английский слева направо. Поэтому, если я меняю линию, он фиксирует иврит, но разбивает числа / английский.
Пример:
PdfTextExtractor.getTextFromPage возвращает 87.55 úåáééçúä ééåëéð ë"äñ
new String(text.getBytes(Charset.forName("ISO-8859-1")), Charset.forName("windows-1255")) возвращает 87.55 תובייחתה ייוכינ כ"הס
, если я отменяю это, тогда я получаю סה"כ ניכויי התחייבות 55.78
Число должно быть 87.55, а не 55.78
Единственное решение, которое я нашел, состоит в том, чтобы разбить его на иврит, а остальные (английский / цифры), и отменить только части на иврите, а затем объединить его.
Не существует ли более легкое решение? Я чувствую, что я что-то пропускаю с кодировкой / RTL