Re: General png previewing and indexing code



Hi Folks,
         I wrote this code about a month ago. It provides a simple C
interface to a remote AbiWord process that is robust and be used
to convert  doc,rtf,OOo, wpd,abw and many other formats documents
to *.txt and to make png images of the first page of the
document.

Please let me know how I can make this easier for you guys to use.
(Short of writing a C# patch)

The complete C program and header file is given as an attachment here.



> CVS:*
 * The function is fault tolerant and will report if a requested
 * file is not capable of being coverted.
 *
 * It will also restart AbiWord if it does crash on the next invocation
 * of convertFileToText.
 *
 * Inputs: inFile - The path to the word processor file to be converted.
 *         outFile - The path to the file containing the plain text of the
 *                   word processor file.
 * The function blocks until the conversion is complete or until
 * the conversion fails.
 *
 * It returns 0 upon a successful conversion
 *    and -1 if the conversion fails.
 */
int convertFileToText(const char * inFile, const char * outFile)
{


/*
 * The function is fault tolerant and will report if a requested
 * file is not capable of being coverted.
 *
 * It will also restart AbiWord if it does crash on the next invocation
 * of convertFileToText.
 *
 * Inputs: inFile - The path to the word processor file to be converted.
 *         outFile - The path to the PNG image of the first page of the doc
 *         iWidth - width in pixels of the document.
 *         iHeight - height in pixels of the document.
 * The function blocks until the conversion is complete or until
 * the conversion fails.
 *
 * It returns 0 upon a successful conversion
 *    and -1 if the conversion fails.
 */
int convertFileToPNG(const char * inFile, const char * outFile, int
iWidth, int iHeight)

> ----------------------------------------------------------------------
CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
CVS:
> CVS: Committing in .
> CVS:
> CVS: Modified Files:
> CVS:    ConvertToText.c ConvertToText.h xp/AbiCommand.cpp
> CVS:
> ----------------------------------------------------------------------
AbiCommand New feature previewpng, ConvertToPNG server implementation.
>
>
> CVS:
> ----------------------------------------------------------------------
CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
CVS:
> CVS: Committing in .
> CVS:
> CVS: Modified Files:
> CVS:    src/af/gr/unix/gr_UnixGraphics.cpp
> CVS:    src/af/gr/unix/gr_UnixGraphics.h
> CVS:    src/af/gr/unix/gr_UnixImage.cpp src/af/gr/unix/gr_UnixImage.h CVS:
>    src/wp/ap/unix/ap_UnixApp.cpp src/wp/ap/unix/ap_UnixApp.h
> CVS:    src/wp/ap/xp/ap_Preview_Abi.cpp
> CVS:
> ----------------------------------------------------------------------
AbiWord side of previewpng. Particularly note new ap_UnixApp method,
makePngPreview(const char * pszInFile, const char * pszPNGFile,
UT_sint32 iWid\th, UT_sint32 iHeight
>
>
> OK this implements a feature, "previewpng" in AbiCommand plus a
> C-interface to an externally running AbiWord processes in
> ConvertToText.(h,c). The
> C interface is really simple:
>
> /*
>  * The function is fault tolerant and will report if a requested * file
is not capable of being coverted.
>  *
>  * It will also restart AbiWord if it does crash on the next invocation *
> of convertFileToText.
>  *
>  * Inputs: inFile - The path to the word processor file to be converted. *
>         outFile - The path to the PNG image of the first page of the doc
> *         iWidth - width in pixels of the document.
>  *         iHeight - height in pixels of the document.
>  * The function blocks until the conversion is complete or until * the
conversion fails.
>  *
>  * It returns 0 upon a successful conversion
>  *    and -1 if the conversion fails.
>  */
> int convertFileToPNG(const char * inFile, const char * outFile, int
iWidth, int iHeight)
>
>
> This is useful for showing a preview of the document that you've found
and indexed in dashbaord via ConvertToText :-)
>
> To build this you need CVS AbiWord and CVS abiword-plugins
>
> ConvertToText.(h,c) is located in the abiword-plugins/tools/abicommand
directory. It's LGPL'd licensed but feel free to port to C# if you
prefer. The code pretty straight forward.
>
> Right now an entrie document is loaded and all the views are filled in
order to just get a preview of the first page. I'm pretty sure we don't
to do this. If I can work out a way to load just the first bit a
document, previews of huge documents should be the same speed as small
documents.
>
> I'll experiment with algorithims to do this but right now things work
and you can use this code to throw up a preview of a selected Word
Processor docs.
>
> Martin
>
>
-- 
Andrew Ruthven
Senior Systems Engineer, Actrix Networks Ltd   -->   www.actrix.gen.nz At
Actrix puck actrix gen nz
At Home:  andrew etc gen nz




Attachment: ConvertToText.c
Description: Binary data

Attachment: ConvertToText.h
Description: Binary data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]