Конвертировать PDF в Excel/csv/xlsx

Я намерен преобразовать строки pdf в файл excel/csv следующим образом:

PDF-файл: (исходный файл)

#_________________________________________________________________________
appliance
n. 1. See server appliance. 2. See information appliance. 3. A device with a single or limited ......

appliance server
n. 1. An inexpensive computing .....2. See server appliance. 

application
n. A program designed ......
#________________________________________________________________________

Excel File : (Target File)
#________________________________________________________________________
appliance              , n. ,          1. See server appliance    ,
appliance server       , n. ,          1. An inexpensive co       ,
application            , n. ,          A program designed ......  ,  
_#_______________________________________________________________________  

Я преобразовал PDF в текст и попытался разделить его с помощью «,», а затем преобразовать текстовый файл в файл csv. Но я застрял после преобразования PDF в текстовый файл.

import os
from os import chdir, getcwd, listdir, path
import PyPDF2
from time import strftime
def check_path(prompt):
    ''' (str) -> str
    Verifies if the provided absolute path does exist.
    '''
    abs_path = raw_input(prompt)
    while path.exists(abs_path) != True:
        print ("\nThe specified path does not exist.\n")
        abs_path = raw_input(prompt)
    return abs_path
print ("\n")
folder = check_path("Provide absolute path for the folder: ")
list=[]
directory=folder
for root,dirs,files in os.walk(directory):
    for filename in files:
        if filename.endswith('.pdf'):
            t=os.path.join(directory,filename)
            list.append(t)
m=len(list)
i=0
while i<=len(list):
    path=list[i]
    head,tail=os.path.split(path)
    var="\\"
    tail=tail.replace(".pdf",".txt")
    name=head+var+tail
    content = ""
    # Load PDF into pyPDF
    pdf = PyPDF2.PdfFileReader(filename(path, "rb"))
    # Iterate pages
    for i in range(0, pdf.getNumPages()):
        # Extract text from page and add to content
        content += pdf.getPage(i).extractText() + "\n"
    print (strftime("%H:%M:%S"), " pdf  -> txt ")
    f=open(name,'w')
    f.write(content.encode("UTF-8"))
    f.close

person Shambo Hore    schedule 17.02.2019    source источник
comment
я застрял: пожалуйста, предоставьте больше информации о том, что идет не так, что вы ожидаете и т. д.   -  person Heri    schedule 17.02.2019
comment
Я рассчитываю разобрать PDF-файл и записать определенные тексты в файл csv как [ i.stack.imgur. com/Iy1EW.jpg].   -  person Shambo Hore    schedule 18.02.2019
comment
Извините, я все еще не понимаю вашей проблемы. Пожалуйста, предоставьте всю необходимую информацию здесь, в вашем вопросе, а не через внешние ссылки.   -  person Heri    schedule 18.02.2019


Ответы (1)


Возможно, стоит сначала преобразовать PDF в CSV, а затем преобразовать CSV в желаемый макет.

Этот API можно использовать с Python для преобразования одного или нескольких PDF-файлов в CSV: https://pdftables.com/pdf-to-excel-api.

Чтобы преобразовать один PDF-файл:

import pdftables_api

c = pdftables_api.Client('my-api-key')
c.xlsx('input.pdf', 'output.csv')

или конвертировать несколько PDF-файлов:

import pdftables_api
import os

c = pdftables_api.Client('MY-API-KEY')

file_path = "C:\\Users\\MyName\\Documents\\PDFTablesCode\\"

for file in os.listdir(file_path):
    if file.endswith(".pdf"):
        c.xlsx(os.path.join(file_path,file), file+'.csv')

person mskel4    schedule 21.02.2019