public override byte[] ConvertToBytes(String text)
{
if (cjkMirror != null)
return cjkMirror.ConvertToBytes(text);
else if (isType0) {
char[] chars = text.ToCharArray();
int len = chars.Length;
byte[] b = new byte[len * 2];
int bptr = 0;
for (int k = 0; k < len; ++k) {
int[] ws;
metrics.TryGetValue((int)chars[k], out ws);
if (ws != null) {
int g = ws[0];
b[bptr++] = (byte)(g / 256);
b[bptr++] = (byte)g;
}
}
if (bptr == b.Length)
return b;
else {
byte[] nb = new byte[bptr];
System.Array.Copy(b, 0, nb, 0, bptr);
return nb;
}
}
else {
char[] cc = text.ToCharArray();
byte[] b = new byte[cc.Length];
int ptr = 0;
for (int k = 0; k < cc.Length; ++k) {
if (uni2byte.ContainsKey(cc[k]))
b[ptr++] = (byte)uni2byte[cc[k]];
}
if (ptr == b.Length)
return b;
else {
byte[] b2 = new byte[ptr];
System.Array.Copy(b, 0, b2, 0, ptr);
return b2;
}
}
}