Hi Jonas,
I don't know of an existing "ExecuteGenerator", so i think you should implement a new generator in java.

AFAIK the oo macros will save the output file, so knowing the input file you can specify or desume an output file. If that's the case, you have to stream this second file down the pipeline, right?

Inside your new generator you can use a java.lang.Runtime.exec call to run the external process. It will return a Process object on which you can call the waitFor mathod to wait until it finishes processing, then you can get the output (now XML) file and stream SAX events for the pipeline, and then eventually delete the output file if you don't need it anymore.

If you have a look at the FileGenerator (cocoon-2.1.X/src/java/org/apache/cocoon/generation/FileGenerator.java) it does generate SAX events from a file. So I think subclassing it could be a good choice. You should need to override only the "setup" and "generate" methods. In the setup you receive the src="..." from the sitemap, which i suppose will contain your .doc document, so put it in a field, calculate the resulting output XML file name, and use this as a src for the super.setup() call. In the "generate" method, simply run the external soffice.exe, wait for it to finish, the call super.generate() and have the FileGenerator stream the resulting file for you. Then eventually delete it.

If properly configured in the sitemap, you can have cocoon cache the result for you, so that soffice.exe isn't called too often.

It's not the easier task, but I hope this helps.

Simone

Jonas Lundberg wrote:

I have been looking around for word .doc -> xml converters for a while.
The docvert approach seems promising (
http://holloway.co.nz/docvert/index.html ).
It uses openOffice batch conversion to achieve the transformation. It
does so by invoking:
"C:\Program Files\OpenOffice.org 2.0\program\soffice.exe" %1
macro://macros/Standard.convert.toOasisOpenDocumentFormat(%2,%3)

Let's say I wanted to do this in Cocoon, as a Generator, giving a file
as parameter.
What would the best approach then be? Any ideas?

Regards
Hans

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

--
Simone Gianni

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to