org.jfree.pixie.wmf

Class MfHeader


public class MfHeader
extends Buffer

A buffer which represents a Metafile header.

The meta file header has the following structure

offsetlength in bytesnamemeaning
0x002mfTypeMetaFile type: 0x1 = memory based meta file, 0x2 = disk based meta file
0x022mfHeaderlength of header in words (16bit)
0x042mfVersionWindows version used to save the file as BCD number. 0x30 for windows 3.0, 0x31 for win3.1 etc.
0x064mfSizeFile length in words
0x0A2mfNoObjmaximum number of objects in the file
0x0c4mfMaxRecMaximum record length
0x102mfnoParNot used

Field Summary

static int
QUALITY_MAYBE
A constant stating that the given file could be a Wmf-File.
static int
QUALITY_NO
A constant stating that the given file is not Wmf-File at all.
static int
QUALITY_YES
A constant stating that the given file is a Wmf-File.

Method Summary

Rectangle
getBBox()
Return the bounding box of this metafile.
int
getFileSize()
Gets the file size of the WmfFile.
int
getHeaderSize()
Gets the header size.
int
getMaxRecordSize()
Gets the size of the largest Record.
int
getObjectsSize()
Gets the number of records stored in this metafile.
int
getUnitsPerInch()
Gets the defined resolution, if this is an Aldus-File, null otherwise.
static int
isMetafile(String inName, InputStream in)
Is the given input a metafile? We have to guess by reading the header and/or by looking at the file name.
boolean
isValid()
Returns true if it looks like a real metafile.
void
read(InputStream in)
Read the header from the given input.

Methods inherited from class org.jfree.pixie.wmf.Buffer

getByte, getInputStream, getInt, getLength, getShort, getString, move, read, setByte, setCapacity, setInt, setLength, setShort, setString

Field Details

QUALITY_MAYBE

public static final int QUALITY_MAYBE
A constant stating that the given file could be a Wmf-File.
Field Value:
1

QUALITY_NO

public static final int QUALITY_NO
A constant stating that the given file is not Wmf-File at all.
Field Value:
0

QUALITY_YES

public static final int QUALITY_YES
A constant stating that the given file is a Wmf-File.
Field Value:
2

Method Details

getBBox

public Rectangle getBBox()
Return the bounding box of this metafile. This returns an empty (0,0,0,0) rectangle if this file is not placeable.
Returns:
the bounding box of the metafile.

getFileSize

public int getFileSize()
Gets the file size of the WmfFile.
Returns:
the filesize in bytes.

getHeaderSize

public int getHeaderSize()
Gets the header size.
Returns:
the header size.

getMaxRecordSize

public int getMaxRecordSize()
Gets the size of the largest Record.
Returns:
the maximum record size.

getObjectsSize

public int getObjectsSize()
Gets the number of records stored in this metafile.
Returns:
the number of records.

getUnitsPerInch

public int getUnitsPerInch()
Gets the defined resolution, if this is an Aldus-File, null otherwise.
Returns:
the image resolution or 0 if not defined.

isMetafile

public static int isMetafile(String inName,
                             InputStream in)
Is the given input a metafile? We have to guess by reading the header and/or by looking at the file name.
Parameters:
inName - the file name of the stream source
in - the input stream.
Returns:
either QUALITY_NO, QUALITY_MAYBE or QUALITY_YES.

isValid

public boolean isValid()
Returns true if it looks like a real metafile. This implementation does not support Memory-WmfFiles.
Returns:
true, if this file is valid, false otherwise.

read

public void read(InputStream in)
            throws IOException
Read the header from the given input.
Parameters:
in - the input stream