Class WMFHeaderProperties
- java.lang.Object
-
- org.apache.batik.transcoder.wmf.tosvg.AbstractWMFReader
-
- org.apache.batik.transcoder.wmf.tosvg.WMFHeaderProperties
-
public class WMFHeaderProperties extends AbstractWMFReader
This class holds simple properties about a WMF Metafile. It can be used whenever general information must be retrieved about this file.- Version:
- $Id: WMFHeaderProperties.java 1831630 2018-05-15 12:56:55Z ssteiner $
-
-
Field Summary
Fields Modifier and Type Field Description private int
_bbottom
private int
_bheight
private int
_bleft
private int
_bright
private int
_btop
private int
_bwidth
private int
_ibottom
private int
_ileft
private int
_iright
private int
_itop
static int
BRUSH
private int
currentHorizAlign
private int
currentVertAlign
private boolean
firstEffectivePaint
static int
FONT
private static java.awt.font.FontRenderContext
fontCtx
private static java.lang.Integer
INTEGER_0
static int
NULL_BRUSH
static int
NULL_PEN
static int
OBJ_BITMAP
static int
OBJ_REGION
static int
PALETTE
static int
PEN
private float
scale
private int
startX
private int
startY
protected java.io.DataInputStream
stream
private WMFFont
wf
-
Fields inherited from class org.apache.batik.transcoder.wmf.tosvg.AbstractWMFReader
bottom, bReading, height, inch, isAldus, isotropic, lastObjectIdx, left, MM_PER_PIXEL, mtHeaderSize, mtMaxRecord, mtNoObjects, mtNoParameters, mtSize, mtType, mtVersion, numObjects, objectVector, PIXEL_PER_INCH, right, scaleX, scaleXY, scaleY, top, vpH, vpW, vpX, vpY, width, windowHeight, windowWidth, xSign, ySign
-
-
Constructor Summary
Constructors Constructor Description WMFHeaderProperties()
Creates a new WMFHeaderProperties, with no associated file.WMFHeaderProperties(java.io.File wmffile)
Creates a new WMFHeaderProperties, and sets the associated WMF File.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
closeResource()
private java.awt.Color
getColorFromObject(int brushObject)
get the Color corresponding with the Object (pen or brush object).int
getHeightBoundsPixels()
int
getHeightBoundsUnits()
java.io.DataInputStream
getStream()
Get the associated stream.private float
getVerticalAlignmentValue(java.awt.font.TextLayout layout, int vertAlign)
get the vertical Alignment value for the text.int
getWidthBoundsPixels()
int
getWidthBoundsUnits()
int
getXOffset()
int
getYOffset()
private void
paint(int brushObject, int penObject, java.awt.Shape shape)
Resize the bounds of the WMF image according with the bounds of the geometric Shape.private void
paintWithPen(int penObject, java.awt.Shape shape)
Resize the bounds of the WMF image according with the bounds of the geometric Shape.protected boolean
readRecords(java.io.DataInputStream is)
Read this InputStream records.void
reset()
Resets the internal storage and viewport coordinates.private void
resetBounds()
private void
resizeBounds(int x, int y)
resize Bounds for each primitive encountered.private void
resizeImageBounds(int x, int y)
resize Bounds for each image primitive encountered.void
setFile(java.io.File wmffile)
Creates the properties associated file.-
Methods inherited from class org.apache.batik.transcoder.wmf.tosvg.AbstractWMFReader
addObject, addObjectAt, getBottomUnits, getHeightPixels, getHeightUnits, getLeftUnits, getMetaFileUnitsPerInch, getNumObjects, getObject, getPixelsPerUnit, getRectangleInch, getRectanglePixel, getRectangleUnits, getRightUnits, getTopUnits, getUnitsToPixels, getViewportHeightInch, getViewportHeightUnits, getViewportWidthInch, getViewportWidthUnits, getVpH, getVpHFactor, getVpW, getVpWFactor, getWidthPixels, getWidthUnits, getXSign, getYSign, isReading, read, readInt, readShort, setReading
-
-
-
-
Field Detail
-
INTEGER_0
private static final java.lang.Integer INTEGER_0
-
stream
protected java.io.DataInputStream stream
-
_bleft
private int _bleft
-
_bright
private int _bright
-
_btop
private int _btop
-
_bbottom
private int _bbottom
-
_bwidth
private int _bwidth
-
_bheight
private int _bheight
-
_ileft
private int _ileft
-
_iright
private int _iright
-
_itop
private int _itop
-
_ibottom
private int _ibottom
-
scale
private float scale
-
startX
private int startX
-
startY
private int startY
-
currentHorizAlign
private int currentHorizAlign
-
currentVertAlign
private int currentVertAlign
-
wf
private WMFFont wf
-
fontCtx
private static final java.awt.font.FontRenderContext fontCtx
-
firstEffectivePaint
private transient boolean firstEffectivePaint
-
PEN
public static final int PEN
- See Also:
- Constant Field Values
-
BRUSH
public static final int BRUSH
- See Also:
- Constant Field Values
-
FONT
public static final int FONT
- See Also:
- Constant Field Values
-
NULL_PEN
public static final int NULL_PEN
- See Also:
- Constant Field Values
-
NULL_BRUSH
public static final int NULL_BRUSH
- See Also:
- Constant Field Values
-
PALETTE
public static final int PALETTE
- See Also:
- Constant Field Values
-
OBJ_BITMAP
public static final int OBJ_BITMAP
- See Also:
- Constant Field Values
-
OBJ_REGION
public static final int OBJ_REGION
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
WMFHeaderProperties
public WMFHeaderProperties(java.io.File wmffile) throws java.io.IOException
Creates a new WMFHeaderProperties, and sets the associated WMF File.- Parameters:
wmffile
- the WMF Metafile- Throws:
java.io.IOException
-
WMFHeaderProperties
public WMFHeaderProperties()
Creates a new WMFHeaderProperties, with no associated file.
-
-
Method Detail
-
closeResource
public void closeResource()
-
setFile
public void setFile(java.io.File wmffile) throws java.io.IOException
Creates the properties associated file.- Throws:
java.io.IOException
-
reset
public void reset()
Resets the internal storage and viewport coordinates.- Specified by:
reset
in classAbstractWMFReader
-
getStream
public java.io.DataInputStream getStream()
Get the associated stream.
-
readRecords
protected boolean readRecords(java.io.DataInputStream is) throws java.io.IOException
Description copied from class:AbstractWMFReader
Read this InputStream records. The aldus placeable header have already been read (seeAbstractWMFReader.read(DataInputStream)
). The behavior of this method is left to the subclass. Each Metafile record is composed of :- the size of the Record in int (32 bits)
- the function ID for the Record on a short word (16 bits)
- the function parameters, according to the WMF Metafile specification. the remaining size in short words (16 bits) for the parameters is equal to the total size for the record minus 3 short words (= 16 + 32 bits)
Example :
while (functionId > 0) { recSize = readInt( is ); // Subtract size in 16-bit words of recSize and functionId; recSize -= 3; functionId = readShort( is ); if ( functionId <= 0 ) break; switch ( functionId ) { case WMFConstants.<a WMF function ID> { do something when this function is encountered } break; default: for ( int j = 0; j < recSize; j++ ) readShort(is); break;
- Specified by:
readRecords
in classAbstractWMFReader
- Throws:
java.io.IOException
- See Also:
WMFConstants
-
getWidthBoundsPixels
public int getWidthBoundsPixels()
- Returns:
- the width of the Rectangle bounding the figures enclosed in the Metafile, in pixels
-
getHeightBoundsPixels
public int getHeightBoundsPixels()
- Returns:
- the height of the Rectangle bounding the figures enclosed in the Metafile, in pixels.
-
getWidthBoundsUnits
public int getWidthBoundsUnits()
- Returns:
- the width of the Rectangle bounding the figures enclosed in the Metafile, in Metafile Units.
-
getHeightBoundsUnits
public int getHeightBoundsUnits()
- Returns:
- the height of the Rectangle bounding the figures enclosed in the Metafile in Metafile Units.
-
getXOffset
public int getXOffset()
- Returns:
- the X offset of the Rectangle bounding the figures enclosed in the Metafile.
-
getYOffset
public int getYOffset()
- Returns:
- the Y offset of the Rectangle bounding the figures enclosed in the Metafile.
-
resetBounds
private void resetBounds()
-
resizeBounds
private void resizeBounds(int x, int y)
resize Bounds for each primitive encountered. Only elements that are in the overall width and height of the Metafile are kept.
-
resizeImageBounds
private void resizeImageBounds(int x, int y)
resize Bounds for each image primitive encountered. Only elements that are in the overall width and height of the Metafile are kept.
-
getColorFromObject
private java.awt.Color getColorFromObject(int brushObject)
get the Color corresponding with the Object (pen or brush object).
-
paint
private void paint(int brushObject, int penObject, java.awt.Shape shape)
Resize the bounds of the WMF image according with the bounds of the geometric Shape. There will be no resizing if one of the following properties is true :- the brush and the pen objects are < 0 (null objects)
- the color of the geometric Shape is white, and no other Shapes has occured
-
paintWithPen
private void paintWithPen(int penObject, java.awt.Shape shape)
Resize the bounds of the WMF image according with the bounds of the geometric Shape. There will be no resizing if one of the following properties is true :- the pen objects is < 0 (null object)
- the color of the geometric Shape is white, and no other Shapes has occured
-
getVerticalAlignmentValue
private float getVerticalAlignmentValue(java.awt.font.TextLayout layout, int vertAlign)
get the vertical Alignment value for the text.
-
-