views:

1223

answers:

6

Hello

I want to convert all the .odt .doc. .xls .pdf files to .txt files I want to convert these files to text files using shell script or perl script

A: 

OpenOffice has a built-in document converter capable of handling a bunch of formats- take a look at unoconv: http://dag.wieers.com/home-made/unoconv/

That being said, I have had some troubles getting that to work in the past- If you're having trouble, take a look at similar programs for AbiWord (another open source word processor).

igul222
+1  A: 

It's certainly possible to do this, though there is something strange and impenetrable about the OO project and its documentation that makes things like this hard to research and follow. However, OO has the capability to convert all of those types, not just the OO native ones, and it can do it via two different forms of automatic control.

These are the two general approaches.

  1. You can start OO and tell it to execute a macro which does this job for you for a given file. You then just have to write the macro and a script to loop over your files. The syntax is something like

    $ oowriter -headless filename macro://dir/Standard.Module1.sMySub

  2. The other thing OO has is a network API. This is based on something called UNO.

    $ oowriter -accept=accept-string

    Notifies  the  OpenOffice.org software that upon the creation of
    "UNO Acceptor Threads", a "UNO Accept String" will be used.
    

You will need some sort of client library. I think they have one for Python at least. Using this technology a Python program or some other scripting language with an OO client library could drive the program and convert all the files. Since OO reads MSO, it should be able to do all of them.

DigitalRoss
hi I could not get you.Would you be more specific??Please help me as I need to convert odt files to txtx files as soon as possible
Akhtar
OK, I've updated my answer to make things clearer. I will add some more stuff here later today, come back in 6 or 12 hours...
DigitalRoss
+1  A: 

For word documents, you can try antiword, at least on linux. It's a command line utility that takes a word document as an argument, and spits out the text from that document (as best as it can figure) to Standard Output. Maybe you can specify an ouput file too. I can't remember the details of how it works. I haven't used it in a while. Not sure if it can handle OO documents.

jcdyer
A: 

For the Microsoft formats, look into the wvWare tools.

Avdi
+2  A: 

There's a program for odt files and alikes:

odt2txt - avaliable in repos.

naugtur
A: 
$ unoconv --format=txt document1.odt

Should produce document1.txt.

C.W.Holeman II