Пожалуйста, попробуйте добавить
text += pageObj.extractText()
print(pageObj.extractText())
Как выглядит текст на этом этапе до объединения?
Возможно, я нашел причину.Загрузите iText RUPS , чтобы просмотреть PDF.Этот инструмент показывает, как содержимое отображается и размещается на странице.
Перейдите к Stream
![enter image description here](https://i.stack.imgur.com/ZIDwF.png)
В правом нижнем углуугол, который вы можете прочитать
![enter image description here](https://i.stack.imgur.com/gTpRH.png)
Я не знаком со спецификацией PDF, но это состояния ответа
Эти цифры корректируют соответствующую позицию текста на эту величину.Числа выражаются в тысячных долях единицы текстового пространства.Согласно официальной спецификации PDF, эта «сумма должна быть вычтена из текущей горизонтальной или вертикальной координаты».Положительное число для этого перемещает следующую строку влево при горизонтальной записи.Отрицательное число сдвигает его вправо.
Я подозреваю, что PyPDF2
не интерпретирует число как пробел.Вероятно, это не так просто, так как вы должны знать, сколько пикселей равно пробелу.
Я быстро просмотрел другие файлы PDF, и текст с пробелами вместо чисел между ними читается правильно.Пожалуйста, попробуйте это.
Если это проблема, то ваш следующий шаг может состоять в том, чтобы перебирать элементы, как показано в iText RUPS напрямую.Это немного громоздко, но возможно.Вы можете найти примеры для PyPDF2
.