Этот ответ использует код ('utf-8') , чтобы сохранить вывод на страницу вместе. Я не знаю, какой вывод вам нужен, потому что он не был указан в вашем вопросе.
from PyPDF2 import PdfFileReader
def pdf_text_extractor(path):
with open(path, 'rb') as f:
pdf = PdfFileReader(f)
# Get total pdf page number.
totalPageNumber = pdf.numPages
currentPageNumber = 0
while (currentPageNumber < totalPageNumber):
page = pdf.getPage(currentPageNumber)
text = page.extractText()
# The encoding put each page on a single line.
# type is <class 'bytes'>
print(text.encode('utf-8'))
#################################
# This outputs the text to a list,
# but it doesn't keep paragraphs
# together
#################################
# output = text.encode('utf-8')
# split = str(output, 'utf-8').split('\n')
# print (split)
#################################
# Process next page.
currentPageNumber += 1
path = 'mypdf.pdf'
pdf_text_extractor(path)
Документация для PyPDF2 и функции extractText () гласит:
extractText()
Locate all text drawing commands, in the order they are provided in the
content stream, and extract the text. This works well for some PDF files, but
poorly for others, depending on the generator used. This will be refined in
the future. Do not rely on the order of text coming out of this function, as
it will change if this function is made more sophisticated.
Returns: a unicode string object.
Это означает, что извлечение текста точно так же, как форматированный текст PDF может быть проблематичным.
Вы можете использовать тика для выполнения этой задачи, но опять же она не будет полностью чистой.
from tika import parser
parse_entire_pdf = parser.from_file('mypdf.pdf', xmlContent=True)
parse_entire_pdf = parse_entire_pdf['content']
print (parse_entire_pdf)
Реальный вопрос - как вы планируете использовать извлеченный текст?
Параметр namespaces позволяет указать, где инфраструктура должна искать дополнительные типы контроллеров, по умолчанию mvc будет искать ВСЕ классы в исполняющая сборка (проект сайта) и те, которые реализуют IController, становятся кандидатами ... в основном, вы можете поместить контроллеры в столько вложенных папок, сколько захотите, если они являются частью проекта asp.net mvc.
Основное использование параметра namespaces - это если вы хотите сохранить классы вашего контроллера во внешней сборке, и в этом случае вы можете указать пространство имен, в котором находятся эти контроллеры.
Я не уверен, что вы этого хотите. [тысяча двести шестьдесят шесть] http://haacked.com/archive/2008/11/04/areas-in-aspnetmvc. aspx