3

I'm using a python script in order to convert a file.doc into a file. txt. My code is:

from subprocess import Popen, PIPE
from docx import opendocx, getdocumenttext

#http://stackoverflow.com/questions/5725278/python-help-using-pdfminer-as-a-library
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
from cStringIO import StringIO
import os

def document_to_text(filename, file_path):
    if filename[-4:] == ".doc":
       cmd = ['antiword', file_path]
       p = Popen(cmd, stdout=PIPE)
       stdout, stderr = p.communicate()
       return stdout.decode('ascii', 'ignore')
   elif filename[-5:] == ".docx":
       document = opendocx(file_path)
       paratextlist = getdocumenttext(document)
       newparatextlist = []
       for paratext in paratextlist:
         newparatextlist.append(paratext.encode("utf-8"))
       return '\n\n'.join(newparatextlist)

In order to use the script above i need to install 'antiword' but the problem is that i don't know how to do it. Here is the link where do download 'antiword':http://www-stud.rbi.informatik.uni-frankfurt.de/~markus/antiword/

Can somebody help me?

CosimoCD
  • 3,570
  • 3
  • 22
  • 31
  • If you read the page you linked to, you'll find the [Installation Instructions](http://www-stud.rbi.informatik.uni-frankfurt.de/~markus/antiword/00README.WIN). – Matthias Oct 23 '16 at 17:32

1 Answers1

2

I'm also on this now and as I understood python doesn't have direct API for this. But you can always use this from command line.

antiword -f file.doc > file.txt
antiword -p letter file.doc > file.pdf

And run this command from python.

os.system('antiword foo.doc > foo.txt')
Raymond Reddington
  • 1,709
  • 1
  • 13
  • 21