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 , MWAW_T_WORDMAKER =MWAW_T_RESERVED13 , MWAW_T_STUDENTWRITING =MWAW_T_RESERVED14 ,
  MWAW_T_SCRIPTWRITER =MWAW_T_RESERVED15 , MWAW_T_SCOOP =MWAW_T_RESERVED16 , MWAW_T_SPRINGBOARD_PUBLISHER =MWAW_T_RESERVED17
}
 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.
 
static MWAWLIB Result parse (librevenge::RVNGInputStream *input, librevenge::RVNGTextInterface *documentInterface, char const *password=nullptr)
 Parses the input stream content.
 
static MWAWLIB Result parse (librevenge::RVNGInputStream *input, librevenge::RVNGDrawingInterface *documentInterface, char const *password=nullptr)
 Parses the input stream content.
 
static MWAWLIB Result parse (librevenge::RVNGInputStream *input, librevenge::RVNGPresentationInterface *documentInterface, char const *password=nullptr)
 Parses the input stream content.
 
static MWAWLIB Result parse (librevenge::RVNGInputStream *input, librevenge::RVNGSpreadsheetInterface *documentInterface, char const *password=nullptr)
 Parses the input stream content.
 
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.
 
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.
 
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.
 

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!: v1-v5, v6, v7.7 (only Mac) and Design Studio v2.

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 

Used for WordMaker: see below.

MWAW_T_RESERVED14 

Used for Student Writing Center: see below.

MWAW_T_RESERVED15 

Used for Script Writer: see below.

MWAW_T_RESERVED16 

Used for Scoop: see below.

MWAW_T_RESERVED17 

Used for SpringBoard Publisher: see below.

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 mac: v2-v3 and v5-v8, windows: v3 and v5-v6 and probably v7-v8 ADC Canvas mac: v9-v10, windows: probably v9-v11.

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
MWAW_T_WORDMAKER 

WordMaker: v1.

Note
same enum as MWAW_T_RESERVED13
MWAW_T_STUDENTWRITING 

Student Writing Center: v1.

Note
same enum as MWAW_T_RESERVED14
MWAW_T_SCRIPTWRITER 

Script Writer: v1.3.

Note
same enum as MWAW_T_RESERVED15
MWAW_T_SCOOP 

Scoop: v1.

Note
same enum as MWAW_T_RESERVED16
MWAW_T_SPRINGBOARD_PUBLISHER 

SpringBoard Publisher: v2.

Note
same enum as MWAW_T_RESERVED17

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 Wed May 3 2023 07:18:29 for libmwaw by doxygen 1.9.6