ttfos_2table.java

来自「纯java操作系统jnode,安装简单和操作简单的个人使用的Java操作系统」· Java 代码 · 共 94 行

JAVA
94
字号
// Copyright 2001, FreeHEP.
package org.jnode.awt.font.truetype;

import java.io.IOException;

/**
 * OS/2 Table.
 *
 *  @author Simon Fischer
 *  @version $Id: TTFOS_2Table.java,v 1.1 2003/11/25 11:51:38 epr Exp $
 */
public class TTFOS_2Table extends TTFVersionTable {

	private int version;
	short xAvgCharWidth;
	int usWeightClass, usWidthClass;
	short fsType;
	short ySubscriptXSize, ySubscriptYSize, ySubscriptXOffset, ySubscriptYOffset;
	short ySuperscriptXSize, ySuperscriptYSize, ySuperscriptXOffset, ySuperscriptYOffset;
	short yStrikeoutSize, yStrikeoutPosition;
	short sFamilyClass;
	private byte[] panose = new byte[10];
	private long[] ulUnicode = new long[4];
	private byte[] achVendID = new byte[4];
	private int fsSelection;
	int usFirstCharIndex, usLastCharIndes;
	int sTypoAscender, sTzpoDescender, sTypoLineGap;
	int usWinAscent, usWinDescent;
	private long[] ulCodePageRange = new long[2];

	public String getTag() {
		return "OS/2";
	}

	public void readTable() throws IOException {

		version = ttf.readUShort();
		xAvgCharWidth = ttf.readShort();
		usWeightClass = ttf.readUShort();
		usWidthClass = ttf.readUShort();
		fsType = ttf.readShort();

		ySubscriptXSize = ttf.readShort();
		ySubscriptYSize = ttf.readShort();
		ySubscriptXOffset = ttf.readShort();
		ySubscriptYOffset = ttf.readShort();
		ySuperscriptXSize = ttf.readShort();
		ySuperscriptYSize = ttf.readShort();
		ySuperscriptXOffset = ttf.readShort();
		ySuperscriptYOffset = ttf.readShort();
		yStrikeoutSize = ttf.readShort();
		yStrikeoutPosition = ttf.readShort();

		sFamilyClass = ttf.readShort();

		ttf.readFully(panose);

		for (int i = 0; i < ulUnicode.length; i++)
			ulUnicode[i] = ttf.readULong();
		ttf.readFully(achVendID);
		fsSelection = ttf.readUShort();

		usFirstCharIndex = ttf.readUShort();
		usLastCharIndes = ttf.readUShort();

		sTypoAscender = ttf.readUShort();
		sTzpoDescender = ttf.readUShort();
		sTypoLineGap = ttf.readUShort();

		usWinAscent = ttf.readUShort();
		usWinDescent = ttf.readUShort();

		ulCodePageRange[0] = ttf.readULong();
		ulCodePageRange[1] = ttf.readULong();

	}

	public String getAchVendID() {
		return new String(achVendID);
	}

	public String toString() {
		return super.toString() + "\n  version: " + version + "\n  vendor: " + getAchVendID();
	}

	/**
	 * @return
	 */
	final int getFsSelection() {
		return this.fsSelection;
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?