01: /* ====================================================================
02: Licensed to the Apache Software Foundation (ASF) under one or more
03: contributor license agreements. See the NOTICE file distributed with
04: this work for additional information regarding copyright ownership.
05: The ASF licenses this file to You under the Apache License, Version 2.0
06: (the "License"); you may not use this file except in compliance with
07: the License. You may obtain a copy of the License at
08:
09: http://www.apache.org/licenses/LICENSE-2.0
10:
11: Unless required by applicable law or agreed to in writing, software
12: distributed under the License is distributed on an "AS IS" BASIS,
13: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: See the License for the specific language governing permissions and
15: limitations under the License.
16: ==================================================================== */
17:
18: package org.apache.poi.hdf.extractor;
19:
20: /**
21: * Comment me
22: *
23: * @author Ryan Ackley
24: */
25:
26: public class FontTable {
27: String[] fontNames;
28:
29: public FontTable(byte[] fontTable) {
30: int size = Utils.convertBytesToShort(fontTable, 0);
31: fontNames = new String[size];
32:
33: int currentIndex = 4;
34: for (int x = 0; x < size; x++) {
35: byte ffnLength = fontTable[currentIndex];
36:
37: int nameOffset = currentIndex + 40;
38: StringBuffer nameBuf = new StringBuffer();
39: char ch = Utils.getUnicodeCharacter(fontTable, nameOffset);
40: while (ch != '\0') {
41: nameBuf.append(ch);
42: nameOffset += 2;
43: ch = Utils.getUnicodeCharacter(fontTable, nameOffset);
44: }
45: fontNames[x] = nameBuf.toString();
46: if (fontNames[x].startsWith("Times")) {
47: fontNames[x] = "Times";
48: }
49:
50: currentIndex += ffnLength + 1;
51: }
52:
53: }
54:
55: public String getFont(int index) {
56: return fontNames[index];
57: }
58: }
|