2014-02-13 3 views
2

Прямо сейчас я пишу программу на питоне, которая требует от вас открыть определенный .pdf-файл, элемент управления + A (для выбора всех), управление C и управление V (для копирования и вставки) в .txt-файле, а затем запустить программу.Создание файлов .txt из pdf-файлов

Мне было интересно, если можно каким-либо образом пропустить шаг и запустить программу, не выполняя эту последовательность шагов, просто ссылаясь на файл pdf внутри программы.

Что-то вроде:

##does the procedure above and saves it on a notes.txt file## 
FILE_NAME = 'notes.pdf' 
read_pdf(FILE_NAME,'notes.txt') 
+0

Попробуйте здесь код может быть: HTTP: //code.activestate. com/recipes/511465-pure-python-pdf-to-text-converter/ –

+1

Существуют определенные утилиты, такие как 'pdftotext'. Возможно, вам захочется исследовать их. – devnull

+0

+1 для 'pdftotext'. Это очень удобно. Скорее всего, вам придется выполнять некоторую предварительную обработку текста (в частности, если текст содержит символы не-ascii). – michaelmeyer

ответ

1

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

Существует модуль для Python в Windows, который выполняет автоматизацию графического интерфейса: pywinauto, но это только Windows.

Вы можете использовать чистую библиотеку python, такую ​​как PyPDF2, которая имеет функцию extractText. Или PDFMiner.

Библиотека poppler имеет также свои привязки к python и может быть использована для извлечения текста, подобного PyPDF2.

Вы можете вызывать внешние программы из python как pdftotext из Xpdf.

3

Используйте модуль slate, это зависит от pdfminer.

Чтобы установить его:

pip install pdfminer==20131113 
pip install https://codeload.github.com/timClicks/slate/zip/master 

Чтобы использовать его:

import slate 

with open('example.pdf') as fp: 
    doc = slate.PDF(fp) 

print(len(doc)) 
print(doc[0]) 

4 
This is a test. 

Примечания:

  • Модуль pdfminer делать не supportPython 3.

  • Вам необходимо установить slate из главного репозитория, потому что pypi версии шифера старая, и не compatible с lastchange из pdfminer.

Или используйте PyPDF2:

Чтобы установить его:

pip install PyPDF2 

Чтобы использовать его:

import PyPDF2 

pdf = PyPDF2.PdfFileReader(open('sample.pdf', "rb")) 

print(pdf.getNumPages()) 
print(pdf.getPage(0).extractText()) 

1 
This is a sample. 
Смежные вопросы