geomerative 0.1.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +14 -0
- data/LICENSE +662 -0
- data/LICENSE.md +9 -0
- data/README.md +2 -0
- data/Rakefile +37 -0
- data/examples/README.md +7 -0
- data/examples/data/FreeSans.ttf +0 -0
- data/examples/data/ReplicaBold.ttf +0 -0
- data/examples/data/bot1.svg +160 -0
- data/examples/hello_svg_to_pdf.rb +26 -0
- data/examples/hello_world.rb +23 -0
- data/examples/physics_type.rb +77 -0
- data/examples/rotate_first_letter.rb +28 -0
- data/geomerative.gemspec +32 -0
- data/lib/geomerative.rb +12 -0
- data/lib/geomerative/version.rb +3 -0
- data/pom.xml +110 -0
- data/src/geomerative/FastRClip.java +2715 -0
- data/src/geomerative/RClip.java +2892 -0
- data/src/geomerative/RClosest.java +64 -0
- data/src/geomerative/RCommand.java +1941 -0
- data/src/geomerative/RContour.java +348 -0
- data/src/geomerative/RFont.java +583 -0
- data/src/geomerative/RG.java +753 -0
- data/src/geomerative/RGeomElem.java +1075 -0
- data/src/geomerative/RGroup.java +888 -0
- data/src/geomerative/RMatrix.java +401 -0
- data/src/geomerative/RMesh.java +420 -0
- data/src/geomerative/RPath.java +1095 -0
- data/src/geomerative/RPoint.java +419 -0
- data/src/geomerative/RPolygon.java +1110 -0
- data/src/geomerative/RRectangle.java +91 -0
- data/src/geomerative/RSVG.java +976 -0
- data/src/geomerative/RShape.java +2045 -0
- data/src/geomerative/RStrip.java +221 -0
- data/src/geomerative/RStyle.java +469 -0
- data/src/org/apache/batik/svggen/font/.SVGFont.java.swp +0 -0
- data/src/org/apache/batik/svggen/font/Font.java +188 -0
- data/src/org/apache/batik/svggen/font/Glyph.java +113 -0
- data/src/org/apache/batik/svggen/font/Messages.java.bak +72 -0
- data/src/org/apache/batik/svggen/font/Point.java +38 -0
- data/src/org/apache/batik/svggen/font/RandomAccessFileEmulator.java +15 -0
- data/src/org/apache/batik/svggen/font/table/ClassDef.java +42 -0
- data/src/org/apache/batik/svggen/font/table/ClassDefFormat1.java +55 -0
- data/src/org/apache/batik/svggen/font/table/ClassDefFormat2.java +49 -0
- data/src/org/apache/batik/svggen/font/table/CmapFormat.java +81 -0
- data/src/org/apache/batik/svggen/font/table/CmapFormat0.java +60 -0
- data/src/org/apache/batik/svggen/font/table/CmapFormat2.java +48 -0
- data/src/org/apache/batik/svggen/font/table/CmapFormat4.java +147 -0
- data/src/org/apache/batik/svggen/font/table/CmapFormat6.java +60 -0
- data/src/org/apache/batik/svggen/font/table/CmapIndexEntry.java +84 -0
- data/src/org/apache/batik/svggen/font/table/CmapTable.java +87 -0
- data/src/org/apache/batik/svggen/font/table/Coverage.java +50 -0
- data/src/org/apache/batik/svggen/font/table/CoverageFormat1.java +59 -0
- data/src/org/apache/batik/svggen/font/table/CoverageFormat2.java +56 -0
- data/src/org/apache/batik/svggen/font/table/CvtTable.java +48 -0
- data/src/org/apache/batik/svggen/font/table/Device.java +63 -0
- data/src/org/apache/batik/svggen/font/table/DirectoryEntry.java +73 -0
- data/src/org/apache/batik/svggen/font/table/Feature.java +56 -0
- data/src/org/apache/batik/svggen/font/table/FeatureList.java +70 -0
- data/src/org/apache/batik/svggen/font/table/FeatureRecord.java +52 -0
- data/src/org/apache/batik/svggen/font/table/FeatureTags.java +30 -0
- data/src/org/apache/batik/svggen/font/table/FpgmTable.java +38 -0
- data/src/org/apache/batik/svggen/font/table/GlyfCompositeComp.java +165 -0
- data/src/org/apache/batik/svggen/font/table/GlyfCompositeDescript.java +160 -0
- data/src/org/apache/batik/svggen/font/table/GlyfDescript.java +79 -0
- data/src/org/apache/batik/svggen/font/table/GlyfSimpleDescript.java +155 -0
- data/src/org/apache/batik/svggen/font/table/GlyfTable.java +111 -0
- data/src/org/apache/batik/svggen/font/table/GlyphDescription.java +39 -0
- data/src/org/apache/batik/svggen/font/table/GposTable.java +80 -0
- data/src/org/apache/batik/svggen/font/table/GsubTable.java +118 -0
- data/src/org/apache/batik/svggen/font/table/HeadTable.java +159 -0
- data/src/org/apache/batik/svggen/font/table/HheaTable.java +109 -0
- data/src/org/apache/batik/svggen/font/table/HmtxTable.java +99 -0
- data/src/org/apache/batik/svggen/font/table/KernSubtable.java +58 -0
- data/src/org/apache/batik/svggen/font/table/KernSubtableFormat0.java +65 -0
- data/src/org/apache/batik/svggen/font/table/KernSubtableFormat2.java +56 -0
- data/src/org/apache/batik/svggen/font/table/KernTable.java +64 -0
- data/src/org/apache/batik/svggen/font/table/KerningPair.java +53 -0
- data/src/org/apache/batik/svggen/font/table/LangSys.java +58 -0
- data/src/org/apache/batik/svggen/font/table/LangSysRecord.java +52 -0
- data/src/org/apache/batik/svggen/font/table/Ligature.java +57 -0
- data/src/org/apache/batik/svggen/font/table/LigatureSet.java +55 -0
- data/src/org/apache/batik/svggen/font/table/LigatureSubst.java +40 -0
- data/src/org/apache/batik/svggen/font/table/LigatureSubstFormat1.java +63 -0
- data/src/org/apache/batik/svggen/font/table/LocaTable.java +72 -0
- data/src/org/apache/batik/svggen/font/table/Lookup.java +77 -0
- data/src/org/apache/batik/svggen/font/table/LookupList.java +68 -0
- data/src/org/apache/batik/svggen/font/table/LookupSubtable.java +27 -0
- data/src/org/apache/batik/svggen/font/table/LookupSubtableFactory.java +31 -0
- data/src/org/apache/batik/svggen/font/table/MaxpTable.java +124 -0
- data/src/org/apache/batik/svggen/font/table/NameRecord.java +98 -0
- data/src/org/apache/batik/svggen/font/table/NameTable.java +67 -0
- data/src/org/apache/batik/svggen/font/table/Os2Table.java +232 -0
- data/src/org/apache/batik/svggen/font/table/Panose.java +108 -0
- data/src/org/apache/batik/svggen/font/table/PostTable.java +379 -0
- data/src/org/apache/batik/svggen/font/table/PrepTable.java +38 -0
- data/src/org/apache/batik/svggen/font/table/Program.java +49 -0
- data/src/org/apache/batik/svggen/font/table/RangeRecord.java +57 -0
- data/src/org/apache/batik/svggen/font/table/Script.java +72 -0
- data/src/org/apache/batik/svggen/font/table/ScriptList.java +78 -0
- data/src/org/apache/batik/svggen/font/table/ScriptRecord.java +52 -0
- data/src/org/apache/batik/svggen/font/table/ScriptTags.java +28 -0
- data/src/org/apache/batik/svggen/font/table/SingleSubst.java +47 -0
- data/src/org/apache/batik/svggen/font/table/SingleSubstFormat1.java +67 -0
- data/src/org/apache/batik/svggen/font/table/SingleSubstFormat2.java +67 -0
- data/src/org/apache/batik/svggen/font/table/Table.java +204 -0
- data/src/org/apache/batik/svggen/font/table/TableDirectory.java +94 -0
- data/src/org/apache/batik/svggen/font/table/TableFactory.java +121 -0
- metadata +206 -0
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
Copyright 2001 The Apache Software Foundation
|
|
4
|
+
|
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
you may not use this file except in compliance with the License.
|
|
7
|
+
You may obtain a copy of the License at
|
|
8
|
+
|
|
9
|
+
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.batik.svggen.font.table;
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* @version $Id: Panose.java,v 1.3 2004/08/18 07:15:22 vhardy Exp $
|
|
22
|
+
* @author <a href="mailto:david@steadystate.co.uk">David Schweinsberg</a>
|
|
23
|
+
*/
|
|
24
|
+
public class Panose {
|
|
25
|
+
|
|
26
|
+
byte bFamilyType = 0;
|
|
27
|
+
byte bSerifStyle = 0;
|
|
28
|
+
byte bWeight = 0;
|
|
29
|
+
byte bProportion = 0;
|
|
30
|
+
byte bContrast = 0;
|
|
31
|
+
byte bStrokeVariation = 0;
|
|
32
|
+
byte bArmStyle = 0;
|
|
33
|
+
byte bLetterform = 0;
|
|
34
|
+
byte bMidline = 0;
|
|
35
|
+
byte bXHeight = 0;
|
|
36
|
+
|
|
37
|
+
/** Creates new Panose
|
|
38
|
+
* @param panose
|
|
39
|
+
*/
|
|
40
|
+
public Panose(byte[] panose) {
|
|
41
|
+
bFamilyType = panose[0];
|
|
42
|
+
bSerifStyle = panose[1];
|
|
43
|
+
bWeight = panose[2];
|
|
44
|
+
bProportion = panose[3];
|
|
45
|
+
bContrast = panose[4];
|
|
46
|
+
bStrokeVariation = panose[5];
|
|
47
|
+
bArmStyle = panose[6];
|
|
48
|
+
bLetterform = panose[7];
|
|
49
|
+
bMidline = panose[8];
|
|
50
|
+
bXHeight = panose[9];
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
public byte getFamilyType() {
|
|
54
|
+
return bFamilyType;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
public byte getSerifStyle() {
|
|
58
|
+
return bSerifStyle;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
public byte getWeight() {
|
|
62
|
+
return bWeight;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
public byte getProportion() {
|
|
66
|
+
return bProportion;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
public byte getContrast() {
|
|
70
|
+
return bContrast;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
public byte getStrokeVariation() {
|
|
74
|
+
return bStrokeVariation;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
public byte getArmStyle() {
|
|
78
|
+
return bArmStyle;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
public byte getLetterForm() {
|
|
82
|
+
return bLetterform;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
public byte getMidline() {
|
|
86
|
+
return bMidline;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
public byte getXHeight() {
|
|
90
|
+
return bXHeight;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
@Override
|
|
94
|
+
public String toString() {
|
|
95
|
+
StringBuilder sb = new StringBuilder();
|
|
96
|
+
sb.append(String.valueOf(bFamilyType)).append(" ")
|
|
97
|
+
.append(String.valueOf(bSerifStyle)).append(" ")
|
|
98
|
+
.append(String.valueOf(bWeight)).append(" ")
|
|
99
|
+
.append(String.valueOf(bProportion)).append(" ")
|
|
100
|
+
.append(String.valueOf(bContrast)).append(" ")
|
|
101
|
+
.append(String.valueOf(bStrokeVariation)).append(" ")
|
|
102
|
+
.append(String.valueOf(bArmStyle)).append(" ")
|
|
103
|
+
.append(String.valueOf(bLetterform)).append(" ")
|
|
104
|
+
.append(String.valueOf(bMidline)).append(" ")
|
|
105
|
+
.append(String.valueOf(bXHeight));
|
|
106
|
+
return sb.toString();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
/*
|
|
2
|
+
|
|
3
|
+
Copyright 2001 The Apache Software Foundation
|
|
4
|
+
|
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
you may not use this file except in compliance with the License.
|
|
7
|
+
You may obtain a copy of the License at
|
|
8
|
+
|
|
9
|
+
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.batik.svggen.font.table;
|
|
19
|
+
|
|
20
|
+
import java.io.IOException;
|
|
21
|
+
import org.apache.batik.svggen.font.*;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
* @author <a href="mailto:david@steadystate.co.uk">David Schweinsberg</a>
|
|
26
|
+
* @version $Id: PostTable.java,v 1.3 2004/08/18 07:15:22 vhardy Exp $
|
|
27
|
+
*/
|
|
28
|
+
public class PostTable implements Table {
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* TODO: Mac Glyph names for 210 & 257
|
|
32
|
+
*/
|
|
33
|
+
private static final String[] macGlyphName = {
|
|
34
|
+
".notdef", // 0
|
|
35
|
+
"null", // 1
|
|
36
|
+
"CR", // 2
|
|
37
|
+
"space", // 3
|
|
38
|
+
"exclam", // 4
|
|
39
|
+
"quotedbl", // 5
|
|
40
|
+
"numbersign", // 6
|
|
41
|
+
"dollar", // 7
|
|
42
|
+
"percent", // 8
|
|
43
|
+
"ampersand", // 9
|
|
44
|
+
"quotesingle", // 10
|
|
45
|
+
"parenleft", // 11
|
|
46
|
+
"parenright", // 12
|
|
47
|
+
"asterisk", // 13
|
|
48
|
+
"plus", // 14
|
|
49
|
+
"comma", // 15
|
|
50
|
+
"hyphen", // 16
|
|
51
|
+
"period", // 17
|
|
52
|
+
"slash", // 18
|
|
53
|
+
"zero", // 19
|
|
54
|
+
"one", // 20
|
|
55
|
+
"two", // 21
|
|
56
|
+
"three", // 22
|
|
57
|
+
"four", // 23
|
|
58
|
+
"five", // 24
|
|
59
|
+
"six", // 25
|
|
60
|
+
"seven", // 26
|
|
61
|
+
"eight", // 27
|
|
62
|
+
"nine", // 28
|
|
63
|
+
"colon", // 29
|
|
64
|
+
"semicolon", // 30
|
|
65
|
+
"less", // 31
|
|
66
|
+
"equal", // 32
|
|
67
|
+
"greater", // 33
|
|
68
|
+
"question", // 34
|
|
69
|
+
"at", // 35
|
|
70
|
+
"A", // 36
|
|
71
|
+
"B", // 37
|
|
72
|
+
"C", // 38
|
|
73
|
+
"D", // 39
|
|
74
|
+
"E", // 40
|
|
75
|
+
"F", // 41
|
|
76
|
+
"G", // 42
|
|
77
|
+
"H", // 43
|
|
78
|
+
"I", // 44
|
|
79
|
+
"J", // 45
|
|
80
|
+
"K", // 46
|
|
81
|
+
"L", // 47
|
|
82
|
+
"M", // 48
|
|
83
|
+
"N", // 49
|
|
84
|
+
"O", // 50
|
|
85
|
+
"P", // 51
|
|
86
|
+
"Q", // 52
|
|
87
|
+
"R", // 53
|
|
88
|
+
"S", // 54
|
|
89
|
+
"T", // 55
|
|
90
|
+
"U", // 56
|
|
91
|
+
"V", // 57
|
|
92
|
+
"W", // 58
|
|
93
|
+
"X", // 59
|
|
94
|
+
"Y", // 60
|
|
95
|
+
"Z", // 61
|
|
96
|
+
"bracketleft", // 62
|
|
97
|
+
"backslash", // 63
|
|
98
|
+
"bracketright", // 64
|
|
99
|
+
"asciicircum", // 65
|
|
100
|
+
"underscore", // 66
|
|
101
|
+
"grave", // 67
|
|
102
|
+
"a", // 68
|
|
103
|
+
"b", // 69
|
|
104
|
+
"c", // 70
|
|
105
|
+
"d", // 71
|
|
106
|
+
"e", // 72
|
|
107
|
+
"f", // 73
|
|
108
|
+
"g", // 74
|
|
109
|
+
"h", // 75
|
|
110
|
+
"i", // 76
|
|
111
|
+
"j", // 77
|
|
112
|
+
"k", // 78
|
|
113
|
+
"l", // 79
|
|
114
|
+
"m", // 80
|
|
115
|
+
"n", // 81
|
|
116
|
+
"o", // 82
|
|
117
|
+
"p", // 83
|
|
118
|
+
"q", // 84
|
|
119
|
+
"r", // 85
|
|
120
|
+
"s", // 86
|
|
121
|
+
"t", // 87
|
|
122
|
+
"u", // 88
|
|
123
|
+
"v", // 89
|
|
124
|
+
"w", // 90
|
|
125
|
+
"x", // 91
|
|
126
|
+
"y", // 92
|
|
127
|
+
"z", // 93
|
|
128
|
+
"braceleft", // 94
|
|
129
|
+
"bar", // 95
|
|
130
|
+
"braceright", // 96
|
|
131
|
+
"asciitilde", // 97
|
|
132
|
+
"Adieresis", // 98
|
|
133
|
+
"Aring", // 99
|
|
134
|
+
"Ccedilla", // 100
|
|
135
|
+
"Eacute", // 101
|
|
136
|
+
"Ntilde", // 102
|
|
137
|
+
"Odieresis", // 103
|
|
138
|
+
"Udieresis", // 104
|
|
139
|
+
"aacute", // 105
|
|
140
|
+
"agrave", // 106
|
|
141
|
+
"acircumflex", // 107
|
|
142
|
+
"adieresis", // 108
|
|
143
|
+
"atilde", // 109
|
|
144
|
+
"aring", // 110
|
|
145
|
+
"ccedilla", // 111
|
|
146
|
+
"eacute", // 112
|
|
147
|
+
"egrave", // 113
|
|
148
|
+
"ecircumflex", // 114
|
|
149
|
+
"edieresis", // 115
|
|
150
|
+
"iacute", // 116
|
|
151
|
+
"igrave", // 117
|
|
152
|
+
"icircumflex", // 118
|
|
153
|
+
"idieresis", // 119
|
|
154
|
+
"ntilde", // 120
|
|
155
|
+
"oacute", // 121
|
|
156
|
+
"ograve", // 122
|
|
157
|
+
"ocircumflex", // 123
|
|
158
|
+
"odieresis", // 124
|
|
159
|
+
"otilde", // 125
|
|
160
|
+
"uacute", // 126
|
|
161
|
+
"ugrave", // 127
|
|
162
|
+
"ucircumflex", // 128
|
|
163
|
+
"udieresis", // 129
|
|
164
|
+
"dagger", // 130
|
|
165
|
+
"degree", // 131
|
|
166
|
+
"cent", // 132
|
|
167
|
+
"sterling", // 133
|
|
168
|
+
"section", // 134
|
|
169
|
+
"bullet", // 135
|
|
170
|
+
"paragraph", // 136
|
|
171
|
+
"germandbls", // 137
|
|
172
|
+
"registered", // 138
|
|
173
|
+
"copyright", // 139
|
|
174
|
+
"trademark", // 140
|
|
175
|
+
"acute", // 141
|
|
176
|
+
"dieresis", // 142
|
|
177
|
+
"notequal", // 143
|
|
178
|
+
"AE", // 144
|
|
179
|
+
"Oslash", // 145
|
|
180
|
+
"infinity", // 146
|
|
181
|
+
"plusminus", // 147
|
|
182
|
+
"lessequal", // 148
|
|
183
|
+
"greaterequal", // 149
|
|
184
|
+
"yen", // 150
|
|
185
|
+
"mu", // 151
|
|
186
|
+
"partialdiff", // 152
|
|
187
|
+
"summation", // 153
|
|
188
|
+
"product", // 154
|
|
189
|
+
"pi", // 155
|
|
190
|
+
"integral'", // 156
|
|
191
|
+
"ordfeminine", // 157
|
|
192
|
+
"ordmasculine", // 158
|
|
193
|
+
"Omega", // 159
|
|
194
|
+
"ae", // 160
|
|
195
|
+
"oslash", // 161
|
|
196
|
+
"questiondown", // 162
|
|
197
|
+
"exclamdown", // 163
|
|
198
|
+
"logicalnot", // 164
|
|
199
|
+
"radical", // 165
|
|
200
|
+
"florin", // 166
|
|
201
|
+
"approxequal", // 167
|
|
202
|
+
"increment", // 168
|
|
203
|
+
"guillemotleft",// 169
|
|
204
|
+
"guillemotright",//170
|
|
205
|
+
"ellipsis", // 171
|
|
206
|
+
"nbspace", // 172
|
|
207
|
+
"Agrave", // 173
|
|
208
|
+
"Atilde", // 174
|
|
209
|
+
"Otilde", // 175
|
|
210
|
+
"OE", // 176
|
|
211
|
+
"oe", // 177
|
|
212
|
+
"endash", // 178
|
|
213
|
+
"emdash", // 179
|
|
214
|
+
"quotedblleft", // 180
|
|
215
|
+
"quotedblright",// 181
|
|
216
|
+
"quoteleft", // 182
|
|
217
|
+
"quoteright", // 183
|
|
218
|
+
"divide", // 184
|
|
219
|
+
"lozenge", // 185
|
|
220
|
+
"ydieresis", // 186
|
|
221
|
+
"Ydieresis", // 187
|
|
222
|
+
"fraction", // 188
|
|
223
|
+
"currency", // 189
|
|
224
|
+
"guilsinglleft",// 190
|
|
225
|
+
"guilsinglright",//191
|
|
226
|
+
"fi", // 192
|
|
227
|
+
"fl", // 193
|
|
228
|
+
"daggerdbl", // 194
|
|
229
|
+
"middot", // 195
|
|
230
|
+
"quotesinglbase",//196
|
|
231
|
+
"quotedblbase", // 197
|
|
232
|
+
"perthousand", // 198
|
|
233
|
+
"Acircumflex", // 199
|
|
234
|
+
"Ecircumflex", // 200
|
|
235
|
+
"Aacute", // 201
|
|
236
|
+
"Edieresis", // 202
|
|
237
|
+
"Egrave", // 203
|
|
238
|
+
"Iacute", // 204
|
|
239
|
+
"Icircumflex", // 205
|
|
240
|
+
"Idieresis", // 206
|
|
241
|
+
"Igrave", // 207
|
|
242
|
+
"Oacute", // 208
|
|
243
|
+
"Ocircumflex", // 209
|
|
244
|
+
"", // 210
|
|
245
|
+
"Ograve", // 211
|
|
246
|
+
"Uacute", // 212
|
|
247
|
+
"Ucircumflex", // 213
|
|
248
|
+
"Ugrave", // 214
|
|
249
|
+
"dotlessi", // 215
|
|
250
|
+
"circumflex", // 216
|
|
251
|
+
"tilde", // 217
|
|
252
|
+
"overscore", // 218
|
|
253
|
+
"breve", // 219
|
|
254
|
+
"dotaccent", // 220
|
|
255
|
+
"ring", // 221
|
|
256
|
+
"cedilla", // 222
|
|
257
|
+
"hungarumlaut", // 223
|
|
258
|
+
"ogonek", // 224
|
|
259
|
+
"caron", // 225
|
|
260
|
+
"Lslash", // 226
|
|
261
|
+
"lslash", // 227
|
|
262
|
+
"Scaron", // 228
|
|
263
|
+
"scaron", // 229
|
|
264
|
+
"Zcaron", // 230
|
|
265
|
+
"zcaron", // 231
|
|
266
|
+
"brokenbar", // 232
|
|
267
|
+
"Eth", // 233
|
|
268
|
+
"eth", // 234
|
|
269
|
+
"Yacute", // 235
|
|
270
|
+
"yacute", // 236
|
|
271
|
+
"Thorn", // 237
|
|
272
|
+
"thorn", // 238
|
|
273
|
+
"minus", // 239
|
|
274
|
+
"multiply", // 240
|
|
275
|
+
"onesuperior", // 241
|
|
276
|
+
"twosuperior", // 242
|
|
277
|
+
"threesuperior",// 243
|
|
278
|
+
"onehalf", // 244
|
|
279
|
+
"onequarter", // 245
|
|
280
|
+
"threequarters",// 246
|
|
281
|
+
"franc", // 247
|
|
282
|
+
"Gbreve", // 248
|
|
283
|
+
"gbreve", // 249
|
|
284
|
+
"Idot", // 250
|
|
285
|
+
"Scedilla", // 251
|
|
286
|
+
"scedilla", // 252
|
|
287
|
+
"Cacute", // 253
|
|
288
|
+
"cacute", // 254
|
|
289
|
+
"Ccaron", // 255
|
|
290
|
+
"ccaron", // 256
|
|
291
|
+
"" // 257
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
private final int version;
|
|
295
|
+
private final int italicAngle;
|
|
296
|
+
private final short underlinePosition;
|
|
297
|
+
private final short underlineThickness;
|
|
298
|
+
private final int isFixedPitch;
|
|
299
|
+
private final int minMemType42;
|
|
300
|
+
private final int maxMemType42;
|
|
301
|
+
private final int minMemType1;
|
|
302
|
+
private final int maxMemType1;
|
|
303
|
+
|
|
304
|
+
// v2
|
|
305
|
+
private int numGlyphs;
|
|
306
|
+
private int[] glyphNameIndex;
|
|
307
|
+
private String[] psGlyphName;
|
|
308
|
+
|
|
309
|
+
/**
|
|
310
|
+
* Creates new PostTable
|
|
311
|
+
*
|
|
312
|
+
* @param de
|
|
313
|
+
* @param raf
|
|
314
|
+
* @throws java.io.IOException
|
|
315
|
+
*/
|
|
316
|
+
protected PostTable(DirectoryEntry de, RandomAccessFileEmulator raf) throws IOException {
|
|
317
|
+
raf.seek(de.getOffset());
|
|
318
|
+
version = raf.readInt();
|
|
319
|
+
italicAngle = raf.readInt();
|
|
320
|
+
underlinePosition = raf.readShort();
|
|
321
|
+
underlineThickness = raf.readShort();
|
|
322
|
+
isFixedPitch = raf.readInt();
|
|
323
|
+
minMemType42 = raf.readInt();
|
|
324
|
+
maxMemType42 = raf.readInt();
|
|
325
|
+
minMemType1 = raf.readInt();
|
|
326
|
+
maxMemType1 = raf.readInt();
|
|
327
|
+
|
|
328
|
+
if (version == 0x00020000) {
|
|
329
|
+
numGlyphs = raf.readUnsignedShort();
|
|
330
|
+
glyphNameIndex = new int[numGlyphs];
|
|
331
|
+
for (int i = 0; i < numGlyphs; i++) {
|
|
332
|
+
glyphNameIndex[i] = raf.readUnsignedShort();
|
|
333
|
+
}
|
|
334
|
+
int h = highestGlyphNameIndex();
|
|
335
|
+
if (h > 257) {
|
|
336
|
+
h -= 257;
|
|
337
|
+
psGlyphName = new String[h];
|
|
338
|
+
for (int i = 0; i < h; i++) {
|
|
339
|
+
int len = raf.readUnsignedByte();
|
|
340
|
+
byte[] buf = new byte[len];
|
|
341
|
+
raf.readFully(buf);
|
|
342
|
+
psGlyphName[i] = new String(buf);
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
} else if (version == 0x00020005) {
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
private int highestGlyphNameIndex() {
|
|
350
|
+
int high = 0;
|
|
351
|
+
for (int i = 0; i < numGlyphs; i++) {
|
|
352
|
+
if (high < glyphNameIndex[i]) {
|
|
353
|
+
high = glyphNameIndex[i];
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
return high;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
public String getGlyphName(int i) {
|
|
360
|
+
if (version == 0x00020000) {
|
|
361
|
+
return (glyphNameIndex[i] > 257)
|
|
362
|
+
? psGlyphName[glyphNameIndex[i] - 258]
|
|
363
|
+
: macGlyphName[glyphNameIndex[i]];
|
|
364
|
+
} else {
|
|
365
|
+
return null;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
/**
|
|
370
|
+
* Get the table type, as a table directory value.
|
|
371
|
+
*
|
|
372
|
+
* @return The table type
|
|
373
|
+
*/
|
|
374
|
+
@Override
|
|
375
|
+
public int getType() {
|
|
376
|
+
return post;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
}
|