Of course, the easiest way to do it is to funnel it through OpenOffice, since OO has knowledge about the source file's format. Without that knowledge, you need something that can interpret the file format, so you are essentially reinventing OpenOffice.
Are you using a Print to PDF printer driver, such as CutePDF? The nice thing about them is that you can use them with any application. But of course, if you're trying to do this on a server you still need to use OpenOffice to print.
CutePDF (and others) have a programmer API so that you can automate the process. You should be cautious with some of them though; there can be concurrency issues if the API uses the registry to manipulate the Print dialog.