PDFBox символов плохие символы в разговоре PDF в строку

1

Я использую PDFBox 1.8.4 для преобразования PDF в строку. Например, мой pdf содержит: Pólya, G. and G. Szegő, выход: Po'lya, G. and G. Szego˝

Есть ли способ решить эту проблему? (Да, я знаю, что могу изменить с помощью replaceAll ("o", "-"))

   PDDocument doc = PDDocument.load(path);
   PDFTextStripper strp = new PDFTextStripper("UTF-8");
   System.out.println(strp.getText(doc));

Все предложения приветствуются!

Редактировать 1: PDF_Example

Теги:
pdfbox

2 ответа

2
Лучший ответ

Документ, представленный ОП, содержит, например, эту строку

Изображение 174551

который, скорее всего, является образцом проблемы, которую он идентифицировал.

Однако, глядя на поток содержимого страницы,

[(A)32(ttila)-384(G\023)575(obi,)-383
(Zal)8(\023)567(an)-383(Sz)-32(})607(ugyi)-384(and)-383
(T)96(am)8(\023)567(as)-384(Kozsik)]TJ

видно, что, например, в (G\023)575(obi,) - создается путем первого рисования ' (\ 023), затем возвращается ширина этого глифа (575), а затем рисуется о.

Таким образом, у вас есть эти два глифы о напечатанных в том же месте, ни один Ó глифов.

PDFBox PDFTextStripper настоящее время не объединяет символы, напечатанные в одном и том же месте, кроме того, что выпадает идентичный глиф, сделанный дважды примерно в одном месте.

Таким образом, помимо replaceAll ("o", "-"), как упоминается OP, можно также расширить PDFTextStripper чтобы объединить определенные глифы, либо в начале его метода processTextPosition либо позже в writeString(String text, List<TextPosition> textPositions).

1

Возможно, проблема связана с кодировкой PDF файла (т.е. кодировка не UTF-8).

В качестве подсказки рассмотрите этот вопрос в FAQ по PDFBox documentemntaion.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню