/* * This program is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software * Foundation. * * You should have received a copy of the GNU Lesser General Public License along with this * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html * or from the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * Copyright (c) 2006 - 2013 Pentaho Corporation and Contributors. All rights reserved. */ package org.pentaho.reporting.libraries.fonts.pfm; import org.pentaho.reporting.libraries.fonts.LEByteAccessUtilities; /** * Creation-Date: 21.07.2007, 16:34:25 * * @author Thomas Morgner */ public class PfmExtendedTextMetrics { private short pointSize; private short orientation; private short masterHeight; private short minScale; private short maxScale; private short masterUnits; private short capHeight; private short xHeight; private short lowerCaseAscent; private short lowerCaseDescent; private short slant; private short superScript; private short subScript; private short superScriptSize; private short subScriptSize; private short underlineOffset; private short underlineWidth; private short doubleLowerUnderlineOffset; private short doubleLowerUnderlineWidth; private short doubleUpperUnderlineOffset; private short doubleUpperUnderlineWidth; private short strikeOutOffset; private short strikeOutWidth; private short kernPairs; private short kernTracks; public PfmExtendedTextMetrics( final byte[] data ) { pointSize = LEByteAccessUtilities.readShort( data, 2 ); orientation = LEByteAccessUtilities.readShort( data, 4 ); masterHeight = LEByteAccessUtilities.readShort( data, 6 ); minScale = LEByteAccessUtilities.readShort( data, 8 ); maxScale = LEByteAccessUtilities.readShort( data, 10 ); masterUnits = LEByteAccessUtilities.readShort( data, 12 ); capHeight = LEByteAccessUtilities.readShort( data, 14 ); xHeight = LEByteAccessUtilities.readShort( data, 16 ); lowerCaseAscent = LEByteAccessUtilities.readShort( data, 18 ); lowerCaseDescent = LEByteAccessUtilities.readShort( data, 20 ); slant = LEByteAccessUtilities.readShort( data, 22 ); superScript = LEByteAccessUtilities.readShort( data, 24 ); subScript = LEByteAccessUtilities.readShort( data, 26 ); superScriptSize = LEByteAccessUtilities.readShort( data, 28 ); subScriptSize = LEByteAccessUtilities.readShort( data, 30 ); underlineOffset = LEByteAccessUtilities.readShort( data, 32 ); underlineWidth = LEByteAccessUtilities.readShort( data, 34 ); doubleLowerUnderlineOffset = LEByteAccessUtilities.readShort( data, 36 ); doubleLowerUnderlineWidth = LEByteAccessUtilities.readShort( data, 38 ); doubleUpperUnderlineOffset = LEByteAccessUtilities.readShort( data, 40 ); doubleUpperUnderlineWidth = LEByteAccessUtilities.readShort( data, 42 ); strikeOutOffset = LEByteAccessUtilities.readShort( data, 44 ); strikeOutWidth = LEByteAccessUtilities.readShort( data, 46 ); kernPairs = LEByteAccessUtilities.readShort( data, 48 ); kernTracks = LEByteAccessUtilities.readShort( data, 50 ); } public short getPointSize() { return pointSize; } public short getOrientation() { return orientation; } public short getMasterHeight() { return masterHeight; } public short getMinScale() { return minScale; } public short getMaxScale() { return maxScale; } public short getMasterUnits() { return masterUnits; } public short getCapHeight() { return capHeight; } public short getxHeight() { return xHeight; } public short getLowerCaseAscent() { return lowerCaseAscent; } public short getLowerCaseDescent() { return lowerCaseDescent; } public short getSlant() { return slant; } public short getSuperScript() { return superScript; } public short getSubScript() { return subScript; } public short getSuperScriptSize() { return superScriptSize; } public short getSubScriptSize() { return subScriptSize; } public short getUnderlineOffset() { return underlineOffset; } public short getUnderlineWidth() { return underlineWidth; } public short getDoubleLowerUnderlineOffset() { return doubleLowerUnderlineOffset; } public short getDoubleLowerUnderlineWidth() { return doubleLowerUnderlineWidth; } public short getDoubleUpperUnderlineOffset() { return doubleUpperUnderlineOffset; } public short getDoubleUpperUnderlineWidth() { return doubleUpperUnderlineWidth; } public short getStrikeOutOffset() { return strikeOutOffset; } public short getStrikeOutWidth() { return strikeOutWidth; } public short getKernPairs() { return kernPairs; } public short getKernTracks() { return kernTracks; } }