From: Dom L. <ci...@ho...> - 2002-01-03 21:04:22
|
Hi Peter, The best examples of how to do this is in the code - unfortunately for you it's a C-based API but I'm sure that you can deal with that. wvRTF.c is a really simple example of how to setup & do stuff if you get to see the source. Also, the AbiWord DOC import filter is great. Here's the link to our LXR-indexed code: http://www.abisource.com/lxr/source/abi/src/wp/impexp/xp/ie_imp_MsWord_97.cpp At the bottom around line 2500, you'll see that 4 callback functions are defined. Around line 600, you'll see our function "importFile". Here, we initialize the parser and set the userdata & callback functions. So your program might look like this (took me 2 minutes to code): void myDocParser(const char * filename) { wvParseStruct ps; wvInitParser(&ps, filename); ps.userData = this; wvSetElementHandler(&ps, eleHandler); wvSetSpecialCharHandler(&ps, specHandler); wvSetDocumentHandler(&ps, docHandler); wvSetCharHandler(&ps, charHandler); wvText(&ps); wvOLEFree(); } static int charHandler(wvParseStruct *ps, U16 eachchar, U8 chartype, U16 lid) { // convert incoming character to unicode if (chartype) eachchar = wvHandleCodePage(eachchar, lid); // append the char, maybe convert to come other codepage somehow m_ucs2buffer.append(eachchar); return 0; } static int eleHandler(...) { return 0; } static int specHandler(...) { return 0; } static int docHandler(...) { return 0; } >From: Peter Mark <pm...@sp...> >To: "'ci...@ho...'" <ci...@ho...>, Peter Mark ><pm...@sp...>, wvw...@li... >Subject: wvText from a C++ program with output to a buffer instead of a fi >le (Re: [Wvware-devel] wvText - distributions for windows?) >Date: Thu, 3 Jan 2002 12:43:50 -0800 > >hi dom, > >thanks for the pointer - i have gone to the page: >http://gnuwin32.sourceforge.net/packages/wv.htm >and from there to the download section and downloaded >the various xxxxxxx-bin.zip files, got wvWare.exe and >the 10 or so other necessary dlls (libiconv, libpng, >etc) together in one directory, and, following the >last line of the script "wvText", issued the following >command in a windows 2000 command window : > >C:\Program Files\WV\bin> wvWare -x wvText.xml MyWordDoc.doc > >MyTextOutput.txt > >and it works great: the TEXT from the word doc is extracted >into the output text file. > >now i'd ideally like to do this from a C++ program (instead >of from the command line), but without writing to an output file. >instead, i'd like to get the text content of the word doc into a >character/string buffer, where i can manipulate it further. i >could do this with what i have already by writing to an output >file (as above) and then reading the file into a text buffer, but >that's obviously slower than just getting it into a buffer >directly somehow. > >so my question is this: > >is there some kind of API i can use from a c++ program that >will let me get at the text content of a word document? >i've looked over the stuff that comes in the file wv-0.7.0-lib.zip >including the files wv.h and wvexporter.h in the \include directory, >as well as the files libwv.def and libwv.lib in the \lib directory, >and obvious approach jumps out at me for how to do this. > >is it possible? >if so, how? >is there documentation for how to use the library libwv.lib that comes >in wv-0.7.0-lib.zip? > >thanks! >peter mark >pm...@sp... > > >======================================================================== > > > > -----Original Message----- > > From: Dom Lachowicz [mailto:ci...@ho...] > > Sent: Sunday, December 23, 2001 8:53 AM > > To: pm...@sp...; wvw...@li... > > Subject: Re: [Wvware-devel] wvText - distributions for windows? > > > > > > > > http://gnuwin32.sourceforge.net/packages/wv.htm > > > > Dom > > > > >From: Peter Mark <pm...@sp...> > > >To: "'wvw...@li...'" > > ><wvw...@li...> > > >Subject: [Wvware-devel] wvText - distributions for windows? > > >Date: Fri, 21 Dec 2001 15:49:15 -0800 > > > > > >hello, > > > > > >on this page: http://wvware.sourceforge.net/index.html appears this: > > > > > > wvText: converts word to plain text. Textually correct > > output requires > > > 'lynx.' For poor output, this doesn't require anything special > > > > > >this is exactly what i need: a utility to convert word format to > > >plain text. > > > > >[stuff deleted] > > > >MY QUESTION: > > > > > >i want the functionality of wvText and i want to run it on > > >a windows machine (NT/2000/XP). can i do this? if i can, > > >what exactly do i have to download and install or build to > > >get this functionality? all the makefiles and so on look > > >like they're meant to run on unix. also: is there some sort > > >of API or SDK or any other mechanism by which i can invoke > > >wvText from a C++ program with a file name chosen by a user at > > >runtime? > > > > > >thanks, and best wishes for the holidays. > > >peter mark > > >pm...@sp... > -- Men are incapable of using sex to get what they want. Sex IS what men want. Sex is not the answer. Sex is the question. "Yes" is the answer. _________________________________________________________________ Chat with friends online, try MSN Messenger: http://messenger.msn.com |