mirror of
https://github.com/xiaoqidun/ofdgo.git
synced 2026-10-29 14:53:44 +08:00
1 parent
3933afd123
commit
90901fb9e9
2 files changed
+91
-52
No files matched your search
+91
-3
@@ -1663,9 +1663,6 @@ func adobeGB1CIDToUnicode(cid int) (rune, bool) {
|
||||
// 返回: rune Unicode字符
|
||||
func getUnicodeFromName(name string) rune {
|
||||
name, _, _ = strings.Cut(name, ".")
|
||||
if character := cffStandardNameUnicode[name]; character != 0 {
|
||||
return character
|
||||
}
|
||||
digits := ""
|
||||
if strings.HasPrefix(name, "uni") && len(name) == 7 {
|
||||
digits = name[3:]
|
||||
@@ -1678,5 +1675,96 @@ func getUnicodeFromName(name string) rune {
|
||||
return rune(value)
|
||||
}
|
||||
}
|
||||
switch name {
|
||||
case "space":
|
||||
return ' '
|
||||
case "exclam":
|
||||
return '!'
|
||||
case "quotedbl":
|
||||
return '"'
|
||||
case "numbersign":
|
||||
return '#'
|
||||
case "dollar":
|
||||
return '$'
|
||||
case "percent":
|
||||
return '%'
|
||||
case "ampersand":
|
||||
return '&'
|
||||
case "quotesingle":
|
||||
return '\''
|
||||
case "parenleft":
|
||||
return '('
|
||||
case "parenright":
|
||||
return ')'
|
||||
case "asterisk":
|
||||
return '*'
|
||||
case "plus":
|
||||
return '+'
|
||||
case "comma":
|
||||
return ','
|
||||
case "hyphen":
|
||||
return '-'
|
||||
case "period":
|
||||
return '.'
|
||||
case "slash":
|
||||
return '/'
|
||||
case "zero":
|
||||
return '0'
|
||||
case "one":
|
||||
return '1'
|
||||
case "two":
|
||||
return '2'
|
||||
case "three":
|
||||
return '3'
|
||||
case "four":
|
||||
return '4'
|
||||
case "five":
|
||||
return '5'
|
||||
case "six":
|
||||
return '6'
|
||||
case "seven":
|
||||
return '7'
|
||||
case "eight":
|
||||
return '8'
|
||||
case "nine":
|
||||
return '9'
|
||||
case "colon":
|
||||
return ':'
|
||||
case "semicolon":
|
||||
return ';'
|
||||
case "less":
|
||||
return '<'
|
||||
case "equal":
|
||||
return '='
|
||||
case "greater":
|
||||
return '>'
|
||||
case "question":
|
||||
return '?'
|
||||
case "at":
|
||||
return '@'
|
||||
case "bracketleft":
|
||||
return '['
|
||||
case "backslash":
|
||||
return '\\'
|
||||
case "bracketright":
|
||||
return ']'
|
||||
case "asciicircum":
|
||||
return '^'
|
||||
case "underscore":
|
||||
return '_'
|
||||
case "grave":
|
||||
return '`'
|
||||
case "braceleft":
|
||||
return '{'
|
||||
case "bar":
|
||||
return '|'
|
||||
case "braceright":
|
||||
return '}'
|
||||
case "asciitilde":
|
||||
return '~'
|
||||
}
|
||||
if len(name) == 1 {
|
||||
return rune(name[0])
|
||||
}
|
||||
return 0
|
||||
}
|
||||
@@ -77,52 +77,3 @@ Iacutesmall Icircumflexsmall Idieresissmall Ethsmall Ntildesmall Ogravesmall Oac
|
||||
Ugravesmall Uacutesmall Ucircumflexsmall Udieresissmall Yacutesmall Thornsmall Ydieresissmall 001.000 001.001 001.002 001.003 Black
|
||||
Bold Book Light Medium Regular Roman Semibold
|
||||
`)
|
||||
|
||||
// cffStandardUnicode 按SID保存标准字形的单字符Unicode映射,不替换实际字形
|
||||
// https://github.com/adobe-type-tools/agl-aglfn
|
||||
var cffStandardUnicode = [...]rune{
|
||||
0x0, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x2019, 0x28, 0x29, 0x2A,
|
||||
0x2B, 0x2C, 0x2D, 0x2E, 0x2F, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36,
|
||||
0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F, 0x40, 0x41, 0x42,
|
||||
0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E,
|
||||
0x4F, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x5A,
|
||||
0x5B, 0x5C, 0x5D, 0x5E, 0x5F, 0x2018, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
|
||||
0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, 0x70, 0x71, 0x72,
|
||||
0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E,
|
||||
0xA1, 0xA2, 0xA3, 0x2044, 0xA5, 0x192, 0xA7, 0xA4, 0x27, 0x201C, 0xAB, 0x2039,
|
||||
0x203A, 0xFB01, 0xFB02, 0x2013, 0x2020, 0x2021, 0xB7, 0xB6, 0x2022, 0x201A, 0x201E, 0x201D,
|
||||
0xBB, 0x2026, 0x2030, 0xBF, 0x60, 0xB4, 0x2C6, 0x2DC, 0xAF, 0x2D8, 0x2D9, 0xA8,
|
||||
0x2DA, 0xB8, 0x2DD, 0x2DB, 0x2C7, 0x2014, 0xC6, 0xAA, 0x141, 0xD8, 0x152, 0xBA,
|
||||
0xE6, 0x131, 0x142, 0xF8, 0x153, 0xDF, 0xB9, 0xAC, 0xB5, 0x2122, 0xD0, 0xBD,
|
||||
0xB1, 0xDE, 0xBC, 0xF7, 0xA6, 0xB0, 0xFE, 0xBE, 0xB2, 0xAE, 0x2212, 0xF0,
|
||||
0xD7, 0xB3, 0xA9, 0xC1, 0xC2, 0xC4, 0xC0, 0xC5, 0xC3, 0xC7, 0xC9, 0xCA,
|
||||
0xCB, 0xC8, 0xCD, 0xCE, 0xCF, 0xCC, 0xD1, 0xD3, 0xD4, 0xD6, 0xD2, 0xD5,
|
||||
0x160, 0xDA, 0xDB, 0xDC, 0xD9, 0xDD, 0x178, 0x17D, 0xE1, 0xE2, 0xE4, 0xE0,
|
||||
0xE5, 0xE3, 0xE7, 0xE9, 0xEA, 0xEB, 0xE8, 0xED, 0xEE, 0xEF, 0xEC, 0xF1,
|
||||
0xF3, 0xF4, 0xF6, 0xF2, 0xF5, 0x161, 0xFA, 0xFB, 0xFC, 0xF9, 0xFD, 0xFF,
|
||||
0x17E, 0xF721, 0xF6F8, 0xF724, 0xF6E4, 0xF726, 0xF7B4, 0x207D, 0x207E, 0x2025, 0x2024, 0xF730,
|
||||
0xF731, 0xF732, 0xF733, 0xF734, 0xF735, 0xF736, 0xF737, 0xF738, 0xF739, 0xF6E2, 0xF6DE, 0xF6E8,
|
||||
0xF73F, 0xF6E9, 0xF6EA, 0xF6E0, 0xF6EB, 0xF6EC, 0xF6ED, 0xF6EE, 0xF6EF, 0x207F, 0xF6F0, 0xF6F1,
|
||||
0xF6F2, 0xF6F3, 0xFB00, 0xFB03, 0xFB04, 0x208D, 0x208E, 0xF6F6, 0xF6E6, 0xF760, 0xF761, 0xF762,
|
||||
0xF763, 0xF764, 0xF765, 0xF766, 0xF767, 0xF768, 0xF769, 0xF76A, 0xF76B, 0xF76C, 0xF76D, 0xF76E,
|
||||
0xF76F, 0xF770, 0xF771, 0xF772, 0xF773, 0xF774, 0xF775, 0xF776, 0xF777, 0xF778, 0xF779, 0xF77A,
|
||||
0x20A1, 0xF6DC, 0xF6DD, 0xF6FE, 0xF7A1, 0xF7A2, 0xF6F9, 0xF6FD, 0xF6FF, 0xF7A8, 0xF6F4, 0xF6F5,
|
||||
0xF6F7, 0xF7AF, 0x2012, 0xF6E5, 0xF6FB, 0xF6FC, 0xF7B8, 0xF7BF, 0x215B, 0x215C, 0x215D, 0x215E,
|
||||
0x2153, 0x2154, 0x2070, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078, 0x2079, 0x2080, 0x2081, 0x2082,
|
||||
0x2083, 0x2084, 0x2085, 0x2086, 0x2087, 0x2088, 0x2089, 0xF6DF, 0xF6E3, 0xF6E7, 0xF6E1, 0xF7E0,
|
||||
0xF7E1, 0xF7E2, 0xF7E3, 0xF7E4, 0xF7E5, 0xF7E6, 0xF7E7, 0xF7E8, 0xF7E9, 0xF7EA, 0xF7EB, 0xF7EC,
|
||||
0xF7ED, 0xF7EE, 0xF7EF, 0xF7F0, 0xF7F1, 0xF7F2, 0xF7F3, 0xF7F4, 0xF7F5, 0xF7F6, 0xF6FA, 0xF7F8,
|
||||
0xF7F9, 0xF7FA, 0xF7FB, 0xF7FC, 0xF7FD, 0xF7FE, 0xF7FF, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
}
|
||||
|
||||
// cffStandardNameUnicode 按需定位CFF标准字形的Unicode字符
|
||||
var cffStandardNameUnicode = func() map[string]rune {
|
||||
result := make(map[string]rune, len(cffStandardStrings))
|
||||
for sid, character := range cffStandardUnicode {
|
||||
if character != 0 {
|
||||
result[cffStandardStrings[sid]] = character
|
||||
}
|
||||
}
|
||||
return result
|
||||
}()
|
||||
Reference in new issue
Block a user