Как запятую отдельные слова при использовании библиотеки Pypdf2 - PullRequest
0 голосов
/ 02 октября 2018

Я конвертирую pdf в текстовое преобразование, используя PyPDF2, и во время этого кода некоторые слова смешиваются, код показан ниже: -

filename = 'CS1.pdf'      
pdfFileObj = open(filename,'rb')       
pdfReader = PyPDF2.PdfFileReader(pdfFileObj)      
num_pages = pdfReader.numPages  
count = 0      
text = ""    

while count < num_pages:       
pageObj = pdfReader.getPage(count)  
    count +=1  
    print(pageObj)  
    text += pageObj.extractText()
if text != "":  
   text = text  
else:  
   text = textract.process('/home/ayush/Ayush/1june/pdf_to_text/CS1.pdf', method='tesseract', language='eng')
print(text)

вывод: -

Topursuegraduatestudiesincomputerscienceandengineering

как я могу ожидать

Чтобы продолжить, получить высшее образование, учиться, компьютер, науку и инженерию

1 Ответ

0 голосов
/ 08 октября 2018

Пожалуйста, попробуйте добавить

text += pageObj.extractText()
print(pageObj.extractText())

Как выглядит текст на этом этапе до объединения?

Возможно, я нашел причину.Загрузите iText RUPS , чтобы просмотреть PDF.Этот инструмент показывает, как содержимое отображается и размещается на странице.

Перейдите к Stream

enter image description here

В правом нижнем углуугол, который вы можете прочитать

enter image description here

Я не знаком со спецификацией PDF, но это состояния ответа

Эти цифры корректируют соответствующую позицию текста на эту величину.Числа выражаются в тысячных долях единицы текстового пространства.Согласно официальной спецификации PDF, эта «сумма должна быть вычтена из текущей горизонтальной или вертикальной координаты».Положительное число для этого перемещает следующую строку влево при горизонтальной записи.Отрицательное число сдвигает его вправо.

Я подозреваю, что PyPDF2 не интерпретирует число как пробел.Вероятно, это не так просто, так как вы должны знать, сколько пикселей равно пробелу.

Я быстро просмотрел другие файлы PDF, и текст с пробелами вместо чисел между ними читается правильно.Пожалуйста, попробуйте это.

Если это проблема, то ваш следующий шаг может состоять в том, чтобы перебирать элементы, как показано в iText RUPS напрямую.Это немного громоздко, но возможно.Вы можете найти примеры для PyPDF2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...