MWAWDocument Class Reference

This class provides all the functions needed by applications to parse many pre-MacOSX documents. More...

#include <MWAWDocument.hxx>

Public Types

enum  Confidence { MWAW_C_NONE =0, MWAW_C_UNSUPPORTED_ENCRYPTION, MWAW_C_SUPPORTED_ENCRYPTION, MWAW_C_EXCELLENT }
 an enum which defines if we have confidence that a file is supported More...
 
enum  Kind {
  MWAW_K_UNKNOWN =0, MWAW_K_TEXT, MWAW_K_DRAW, MWAW_K_PAINT,
  MWAW_K_PRESENTATION, MWAW_K_SPREADSHEET, MWAW_K_DATABASE
}
 an enum to define the kind of document More...
 
enum  Result {
  MWAW_R_OK =0, MWAW_R_FILE_ACCESS_ERROR, MWAW_R_OLE_ERROR, MWAW_R_PARSE_ERROR,
  MWAW_R_PASSWORD_MISSMATCH_ERROR, MWAW_R_UNKNOWN_ERROR
}
 an enum which defines the result of the file parsing More...
 
enum  Type {
  MWAW_T_UNKNOWN =0, MWAW_T_ACTA, MWAW_T_ADOBEILLUSTRATOR, MWAW_T_BEAGLEWORKS,
  MWAW_T_CLARISRESOLVE, MWAW_T_CLARISWORKS, MWAW_T_DBASE, MWAW_T_DOCMAKER,
  MWAW_T_EDOC, MWAW_T_FAMILYTREEMAKER, MWAW_T_FILEMAKER, MWAW_T_FOXBASE,
  MWAW_T_FRAMEMAKER, MWAW_T_FULLIMPACT, MWAW_T_FULLPAINT, MWAW_T_FULLWRITE,
  MWAW_T_GREATWORKS, MWAW_T_HANMACWORDJ, MWAW_T_HANMACWORDK, MWAW_T_INFOGENIE,
  MWAW_T_KALEIDAGRAPH, MWAW_T_LIGHTWAYTEXT, MWAW_T_MACDOC, MWAW_T_MACDRAFT,
  MWAW_T_MACDRAW, MWAW_T_MACDRAWPRO, MWAW_T_MACPAINT, MWAW_T_MARINERWRITE,
  MWAW_T_MINDWRITE, MWAW_T_MORE, MWAW_T_MICROSOFTFILE, MWAW_T_MICROSOFTMULTIPLAN,
  MWAW_T_MICROSOFTWORD, MWAW_T_MICROSOFTWORKS, MWAW_T_MACWRITE, MWAW_T_MACWRITEPRO,
  MWAW_T_NISUSWRITER, MWAW_T_OVERVUE, MWAW_T_PAGEMAKER, MWAW_T_PIXELPAINT,
  MWAW_T_RAGTIME, MWAW_T_READYSETGO, MWAW_T_SUPERPAINT, MWAW_T_SYMPOSIUM,
  MWAW_T_TEACHTEXT, MWAW_T_TEXEDIT, MWAW_T_TRAPEZE, MWAW_T_WINGZ,
  MWAW_T_WRITENOW, MWAW_T_WRITERPLUS, MWAW_T_XPRESS, MWAW_T_ZWRITE,
  MWAW_T_4DIMENSION, MWAW_T_RESERVED1, MWAW_T_RESERVED2, MWAW_T_RESERVED3,
  MWAW_T_RESERVED4, MWAW_T_RESERVED5, MWAW_T_RESERVED6, MWAW_T_RESERVED7,
  MWAW_T_RESERVED8, MWAW_T_RESERVED9, MWAW_T_RESERVED10, MWAW_T_RESERVED11,
  MWAW_T_RESERVED12, MWAW_T_RESERVED13, MWAW_T_RESERVED14, MWAW_T_RESERVED15,
  MWAW_T_RESERVED16, MWAW_T_RESERVED17, MWAW_T_RESERVED18, MWAW_T_RESERVED19,
  MWAW_T_RESERVED20, MWAW_T_RESERVED21, MWAW_T_RESERVED22, MWAW_T_RESERVED23,
  MWAW_T_RESERVED24, MWAW_T_RESERVED25, MWAW_T_RESERVED26, MWAW_T_RESERVED27,
  MWAW_T_RESERVED28, MWAW_T_RESERVED29, MWAW_T_CLARISDRAW =MWAW_T_RESERVED1, MWAW_T_APPLEPICT =MWAW_T_RESERVED2,
  MWAW_T_STYLE =MWAW_T_RESERVED3, MWAW_T_FREEHAND =MWAW_T_RESERVED4, MWAW_T_CRICKETDRAW =MWAW_T_RESERVED5, MWAW_T_MAXWRITE =MWAW_T_RESERVED6,
  MWAW_T_MOUSEWRITE =MWAW_T_RESERVED7, MWAW_T_POWERPOINT =MWAW_T_RESERVED8, MWAW_T_CORELPAINTER =MWAW_T_RESERVED9, MWAW_T_CANVAS =MWAW_T_RESERVED10,
  MWAW_T_DRAWINGTABLE =MWAW_T_RESERVED11, MWAW_T_JAZZLOTUS =MWAW_T_RESERVED12
}
 an enum to define the different type of document More...
 

Static Public Member Functions

static MWAWLIB Confidence isFileFormatSupported (librevenge::RVNGInputStream *input, Type &type, Kind &kind)
 Analyzes the content of an input stream to see if it can be parsed. More...
 
static MWAWLIB Result parse (librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *documentInterface, char const *password=nullptr)
 Parses the input stream content. More...
 
static MWAWLIB Result parse (librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *documentInterface, char const *password=nullptr)
 Parses the input stream content. More...
 
static MWAWLIB Result parse (librevenge::RVNGInputStream *input, librevenge::RVNGPresentationInterface *documentInterface, char const *password=nullptr)
 Parses the input stream content. More...
 
static MWAWLIB Result parse (librevenge::RVNGInputStream *input, librevenge::RVNGSpreadsheetInterface *documentInterface, char const *password=nullptr)
 Parses the input stream content. More...
 
static MWAWLIB bool decodeGraphic (librevenge::RVNGBinaryData const &binary, librevenge::RVNGDrawingInterface *documentInterface)
 Parses the graphic contained in the binary data and called documentInterface to reconstruct a graphic. More...
 
static MWAWLIB bool decodeSpreadsheet (librevenge::RVNGBinaryData const &binary, librevenge::RVNGSpreadsheetInterface *documentInterface)
 Parses the spreadsheet contained in the binary data and called documentInterface to reconstruct a spreadsheet. More...
 
static MWAWLIB bool decodeText (librevenge::RVNGBinaryData const &binary, librevenge::RVNGTextInterface *documentInterface)
 Parses the text contained in the binary data and called documentInterface to reconstruct a text. More...
 

Detailed Description

This class provides all the functions needed by applications to parse many pre-MacOSX documents.

Member Enumeration Documentation

◆ Confidence

an enum which defines if we have confidence that a file is supported

Enumerator
MWAW_C_NONE 

not supported

MWAW_C_UNSUPPORTED_ENCRYPTION 

encryption not supported

MWAW_C_SUPPORTED_ENCRYPTION 

encryption supported

MWAW_C_EXCELLENT 

supported

◆ Kind

an enum to define the kind of document

Enumerator
MWAW_K_UNKNOWN 

unknown

MWAW_K_TEXT 

word processing file

MWAW_K_DRAW 

vectorized grphic

MWAW_K_PAINT 

bitmap graphic

MWAW_K_PRESENTATION 

presentation graphic

MWAW_K_SPREADSHEET 

spreadsheet

MWAW_K_DATABASE 

database

◆ Result

an enum which defines the result of the file parsing

Enumerator
MWAW_R_OK 

conversion ok

MWAW_R_FILE_ACCESS_ERROR 

problem when accessing file

MWAW_R_OLE_ERROR 

problem when reading the OLE structure

MWAW_R_PARSE_ERROR 

problem when parsing the file

MWAW_R_PASSWORD_MISSMATCH_ERROR 

problem when using the given password

MWAW_R_UNKNOWN_ERROR 

unknown error

◆ Type

an enum to define the different type of document

Enumerator
MWAW_T_UNKNOWN 

Unrecognised file type.

MWAW_T_ACTA 

Acta (v2 and Classic v1)

MWAW_T_ADOBEILLUSTRATOR 

Adobe Illustrator: TODO.

MWAW_T_BEAGLEWORKS 

BeagleWorks (v1.0)/WordPerfect Works (v1.2): export database(as spreadsheet), draw, paint, spreadsheet and text files.

MWAW_T_CLARISRESOLVE 

Claris Resolve (v1.1)

MWAW_T_CLARISWORKS 

ClarisWorks/AppleWorks: all versions, export database (as spreadsheet), draw(as text), paint, presentation, spreadsheet, text document.

MWAW_T_DBASE 

DBase: TODO.

MWAW_T_DOCMAKER 

DocMaker (v4)

MWAW_T_EDOC 

eDOC (v2)

MWAW_T_FAMILYTREEMAKER 

Family Tree Maker: TODO.

MWAW_T_FILEMAKER 

FileMaker: TODO.

MWAW_T_FOXBASE 

FoxBase: TODO.

MWAW_T_FRAMEMAKER 

FrameMaker: TODO.

MWAW_T_FULLIMPACT 

FullImpact: TODO.

MWAW_T_FULLPAINT 

FullPaint: v1 ( same format as MacPaint file)

MWAW_T_FULLWRITE 

FullWrite Professional: basic.

MWAW_T_GREATWORKS 

GreatWorks (v1-v2): export text, drawing, paint and spreadsheet document.

MWAW_T_HANMACWORDJ 

HanMac Word-J (v2.0.4)

MWAW_T_HANMACWORDK 

HanMac Word-K (v2.0.5-2.0.6)

MWAW_T_INFOGENIE 

InfoGenie: TODO.

MWAW_T_KALEIDAGRAPH 

Kaleida Graph: TODO.

MWAW_T_LIGHTWAYTEXT 

LightWayText (only v4 Mac format)

MWAW_T_MACDOC 

MacDoc (v1.3)

MWAW_T_MACDRAFT 

MacDraft: v1, v4-v5.

MWAW_T_MACDRAW 

MacDraw: v0-v1.

MWAW_T_MACDRAWPRO 

MacDraw II: v1.0-v1.1, MacDraw Pro: v1.

MWAW_T_MACPAINT 

MacPaint: v1-v2.

MWAW_T_MARINERWRITE 

Mariner Write (only v1.6-v3.5 Mac Classic)

MWAW_T_MINDWRITE 

MindWrite.

MWAW_T_MORE 

More (v2-3): retrieve the organization part but not the slide/tree parts.

MWAW_T_MICROSOFTFILE 

Microsoft File(data base): TODO.

MWAW_T_MICROSOFTMULTIPLAN 

Microsoft Multiplan: v1.11.

MWAW_T_MICROSOFTWORD 

Microsoft Word (v1-v5)

MWAW_T_MICROSOFTWORKS 

Microsoft Works Mac: export database(as spreadsheet), graphic, spreadsheet and text files.

MWAW_T_MACWRITE 

MacWrite.

MWAW_T_MACWRITEPRO 

MacWrite II/Pro.

MWAW_T_NISUSWRITER 

Nisus Writer (v3.4-v6.5)

MWAW_T_OVERVUE 

OverVUE: TODO.

MWAW_T_PAGEMAKER 

PageMaker: TODO.

MWAW_T_PIXELPAINT 

PixelPaint: v1-v2.1.

MWAW_T_RAGTIME 

RagTime: -Mac v2.1-v3.2: done, -all v5.0-v6.5: incomplete, only try to retrieve the picture/shape/textboxes.

MWAW_T_READYSETGO 

Ready,Set,Go!: TODO.

MWAW_T_SUPERPAINT 

SuperPaint: export drawing and paint v1 document.

Note
the other documents v2-v3 seems to be basic MacPaint/Pict files
MWAW_T_SYMPOSIUM 

Symposium: TODO.

MWAW_T_TEACHTEXT 

TeachText/SimpleText.

MWAW_T_TEXEDIT 

Tex-Edit (v2)

MWAW_T_TRAPEZE 

Trapeze spreadsheet: TODO.

MWAW_T_WINGZ 

Wingz (v1.1)

MWAW_T_WRITENOW 

WriteNow.

MWAW_T_WRITERPLUS 

WriterPlus.

MWAW_T_XPRESS 

XPress: TODO.

MWAW_T_ZWRITE 

Z-Write (v1.3)

MWAW_T_4DIMENSION 

4th Dimension: TODO

MWAW_T_RESERVED1 

Used for ClarisDraw v1 file: see below.

MWAW_T_RESERVED2 

Used for Apple's Pict file: see below.

MWAW_T_RESERVED3 

Used for Style v1.6: see below.

MWAW_T_RESERVED4 

Used for FreeHand: see below.

MWAW_T_RESERVED5 

Used for Cricket Draw: see below.

MWAW_T_RESERVED6 

Used for MaxWrite: see below.

MWAW_T_RESERVED7 

Used for MouseWrite: see below.

MWAW_T_RESERVED8 

Used for PowerPoint: see below.

MWAW_T_RESERVED9 

Used for Corel Painter: see below.

MWAW_T_RESERVED10 

Used for Deneba Canvas: see below.

MWAW_T_RESERVED11 

Used for Drawing Table: see below.

MWAW_T_RESERVED12 

Used for Jazz Lotus: see below.

MWAW_T_RESERVED13 

Reserved for future used.

MWAW_T_RESERVED14 

Reserved for future used.

MWAW_T_RESERVED15 

Reserved for future used.

MWAW_T_RESERVED16 

Reserved for future used.

MWAW_T_RESERVED17 

Reserved for future used.

MWAW_T_RESERVED18 

Reserved for future used.

MWAW_T_RESERVED19 

Reserved for future used.

MWAW_T_RESERVED20 

Reserved for future used.

MWAW_T_RESERVED21 

Reserved for future used.

MWAW_T_RESERVED22 

Reserved for future used.

MWAW_T_RESERVED23 

Reserved for future used.

MWAW_T_RESERVED24 

Reserved for future used.

MWAW_T_RESERVED25 

Reserved for future used.

MWAW_T_RESERVED26 

Reserved for future used.

MWAW_T_RESERVED27 

Reserved for future used.

MWAW_T_RESERVED28 

Reserved for future used.

MWAW_T_RESERVED29 

Reserved for future used.

MWAW_T_CLARISDRAW 

Claris Draw: v1.0.1-v1.0.3.

Note
same enum as MWAW_T_RESERVED1
MWAW_T_APPLEPICT 

Apple Pict: v1 or v2.

Note
same enum as MWAW_T_RESERVED2
MWAW_T_STYLE 

Style: v1.6, v1.9.

Note
same enum as MWAW_T_RESERVED3
MWAW_T_FREEHAND 

FreeHand: v1.

Note
same enum as MWAW_T_RESERVED4
MWAW_T_CRICKETDRAW 

Cricket Draw: v1.0.1 and v1.1.1.

Note
same enum as MWAW_T_RESERVED5
MWAW_T_MAXWRITE 

MaxWrite: v1.

Note
same enum as MWAW_T_RESERVED6
MWAW_T_MOUSEWRITE 

MouseWrite: v1.

Note
same enum as MWAW_T_RESERVED7
MWAW_T_POWERPOINT 

PowerPoint: v1-v4 and pc v2-v4,95.

Note
same enum as MWAW_T_RESERVED8
MWAW_T_CORELPAINTER 

Corel Painter: Fractal Design Painter Mac v1-v4, MetaCreations Mac v5-v6, Corel Painter Mac v7-v10 and Fractal Design Painter Windows v3.

Note
same enum as MWAW_T_RESERVED9
MWAW_T_CANVAS 

Deneba Canvas: v2-v3.

Note
same enum as MWAW_T_RESERVED10
MWAW_T_DRAWINGTABLE 

Drawing Table: v1.

Note
same enum as MWAW_T_RESERVED11
MWAW_T_JAZZLOTUS 

Jazz (Lotus): v1 ; retrieve the spreadsheet and if the resource fork is available, the writer document.

Note
same enum as MWAW_T_RESERVED12

Member Function Documentation

◆ decodeGraphic()

bool MWAWDocument::decodeGraphic ( librevenge::RVNGBinaryData const &  binary,
librevenge::RVNGDrawingInterface *  documentInterface 
)
static

Parses the graphic contained in the binary data and called documentInterface to reconstruct a graphic.

The input is normally send to a librevenge::RVNGXXXInterface with mimeType="image/mwaw-odg", ie. it must correspond to a picture created by the MWAWGraphicEncoder class via a MWAWPropertyEncoder.

Parameters
binarya list of librevenge::RVNGDrawingInterface stored in a documentInterface,
documentInterfacethe RVNGDrawingInterface which will convert the graphic is some specific format.
Note
this function appears with MWAW_GRAPHIC_VERSION==1 in libmwaw-0.2

◆ decodeSpreadsheet()

bool MWAWDocument::decodeSpreadsheet ( librevenge::RVNGBinaryData const &  binary,
librevenge::RVNGSpreadsheetInterface *  documentInterface 
)
static

Parses the spreadsheet contained in the binary data and called documentInterface to reconstruct a spreadsheet.

The input is normally send to a librevenge::RVNGXXXInterface with mimeType="image/mwaw-ods", ie. it must correspond to a spreadsheet created by the MWAWSpreadsheetInterface class via a MWAWPropertyEncoder.

Parameters
binarya list of librevenge::RVNGSpreadsheetInterface stored in a documentInterface,
documentInterfacethe RVNGSpreadsheetInterface which will convert the spreadsheet is some specific format.
Note
this function appears in libmwaw-0.3.0 (and returns always false). It was only implemented with MWAW_SPREADSHEET_VERSION==2 in libmwaw-0.3.1

◆ decodeText()

bool MWAWDocument::decodeText ( librevenge::RVNGBinaryData const &  binary,
librevenge::RVNGTextInterface *  documentInterface 
)
static

Parses the text contained in the binary data and called documentInterface to reconstruct a text.

The input is normally send to a librevenge::RVNGXXXInterface with mimeType="image/mwaw-odt", ie. it must correspond to a text created by the MWAWTextInterface class via a MWAWPropertyEncoder.

Parameters
binarya list of librevenge::RVNGTextInterface stored in a documentInterface,
documentInterfacethe RVNGTextInterface which will convert the text is some specific format.
Note
Reserved for future use. Actually, it only returns false.

◆ isFileFormatSupported()

MWAWDocument::Confidence MWAWDocument::isFileFormatSupported ( librevenge::RVNGInputStream *  input,
MWAWDocument::Type type,
Kind kind 
)
static

Analyzes the content of an input stream to see if it can be parsed.

Parameters
inputThe input stream
typeThe document type ( filled if the file is supported )
kindThe document kind ( filled if the file is supported )
Returns
A confidence value which represents the likelyhood that the content from the input stream can be parsed
Note
encryption enum appears with MWAW_TEXT_VERSION==2

◆ parse() [1/4]

MWAWDocument::Result MWAWDocument::parse ( librevenge::RVNGInputStream *  input,
librevenge::RVNGDrawingInterface *  documentInterface,
char const *  password = nullptr 
)
static

Parses the input stream content.

It will make callbacks to the functions provided by a librevenge::RVNGDrawingInterface class implementation when needed. This is often commonly called the 'main parsing routine'.

Parameters
inputThe input stream
documentInterfaceA RVNGDrawingInterface implementation
passwordThe file password
Note
this function appears with MWAW_GRAPHIC_VERSION==2 in libmwaw-0.3

◆ parse() [2/4]

MWAWDocument::Result MWAWDocument::parse ( librevenge::RVNGInputStream *  input,
librevenge::RVNGPresentationInterface *  documentInterface,
char const *  password = nullptr 
)
static

Parses the input stream content.

It will make callbacks to the functions provided by a librevenge::RVNGPresentationInterface class implementation when needed. This is often commonly called the 'main parsing routine'.

Parameters
inputThe input stream
documentInterfaceA RVNGPresentationInterface implementation
passwordThe file password
Note
this function appeared in libmwaw-0.3.0 ( and returns MWAW_R_UNKNOWN_ERROR ). It was implemented in libmwaw-0.3.3 ( MWAW_PRESENTATION_VERSION==1 )

◆ parse() [3/4]

MWAWDocument::Result MWAWDocument::parse ( librevenge::RVNGInputStream *  input,
librevenge::RVNGSpreadsheetInterface *  documentInterface,
char const *  password = nullptr 
)
static

Parses the input stream content.

It will make callbacks to the functions provided by a librevenge::RVNGSpreadsheetInterface class implementation when needed. This is often commonly called the 'main parsing routine'.

Parameters
inputThe input stream
documentInterfaceA RVNGSpreadsheetInterface implementation
passwordThe file password
Note
this function appears with MWAW_SPREADSHEET_VERSION==1 in libmwaw-0.3

◆ parse() [4/4]

MWAWDocument::Result MWAWDocument::parse ( librevenge::RVNGInputStream *  input,
librevenge::RVNGTextInterface *  documentInterface,
char const *  password = nullptr 
)
static

Parses the input stream content.

It will make callbacks to the functions provided by a librevenge::RVNGTextInterface class implementation when needed. This is often commonly called the 'main parsing routine'.

Parameters
inputThe input stream
documentInterfaceA RVNGTextInterface implementation
passwordThe file password
Note
password appears with MWAW_TEXT_VERSION==2

The documentation for this class was generated from the following files:

Generated on Fri Sep 18 2020 18:14:52 for libmwaw by doxygen 1.8.20