mirror of
https://github.com/unidoc/unipdf.git
synced 2025-05-01 22:17:29 +08:00
242 lines
6.7 KiB
Go
242 lines
6.7 KiB
Go
/*
|
|
* This file is subject to the terms and conditions defined in
|
|
* file 'LICENSE.md', which is part of this source code package.
|
|
*/
|
|
|
|
package textencoding
|
|
|
|
import "sync"
|
|
|
|
const baseZapfDingbats = "ZapfDingbatsEncoding"
|
|
|
|
var (
|
|
zapfDingbatsOnce sync.Once
|
|
zapfDingbatsRuneToChar map[rune]byte
|
|
)
|
|
|
|
func init() {
|
|
RegisterSimpleEncoding(baseZapfDingbats, NewZapfDingbatsEncoder)
|
|
}
|
|
|
|
// NewZapfDingbatsEncoder returns a SimpleEncoder that implements ZapfDingbatsEncoding.
|
|
func NewZapfDingbatsEncoder() SimpleEncoder {
|
|
zapfDingbatsOnce.Do(initZapfDingbats)
|
|
return &simpleEncoding{
|
|
baseName: baseZapfDingbats,
|
|
encode: zapfDingbatsRuneToChar,
|
|
decode: zapfDingbatsCharToRune,
|
|
}
|
|
}
|
|
|
|
func initZapfDingbats() {
|
|
zapfDingbatsRuneToChar = make(map[rune]byte, len(zapfDingbatsRuneToChar))
|
|
for b, r := range zapfDingbatsCharToRune {
|
|
zapfDingbatsRuneToChar[r] = b
|
|
}
|
|
}
|
|
|
|
var zapfDingbatsCharToRune = map[byte]rune{ // 202 entries
|
|
0x20: 0x0020, // "space"
|
|
0x21: 0x2701, // ✁ "a1"
|
|
0x22: 0x2702, // ✂ "a2"
|
|
0x23: 0x2703, // ✃ "a202"
|
|
0x24: 0x2704, // ✄ "a3"
|
|
0x25: 0x260e, // ☎ "a4"
|
|
0x26: 0x2706, // ✆ "a5"
|
|
0x27: 0x2707, // ✇ "a119"
|
|
0x28: 0x2708, // ✈ "a118"
|
|
0x29: 0x2709, // ✉ "a117"
|
|
0x2a: 0x261b, // ☛ "a11"
|
|
0x2b: 0x261e, // ☞ "a12"
|
|
0x2c: 0x270c, // ✌ "a13"
|
|
0x2d: 0x270d, // ✍ "a14"
|
|
0x2e: 0x270e, // ✎ "a15"
|
|
0x2f: 0x270f, // ✏ "a16"
|
|
0x30: 0x2710, // ✐ "a105"
|
|
0x31: 0x2711, // ✑ "a17"
|
|
0x32: 0x2712, // ✒ "a18"
|
|
0x33: 0x2713, // ✓ "a19"
|
|
0x34: 0x2714, // ✔ "a20"
|
|
0x35: 0x2715, // ✕ "a21"
|
|
0x36: 0x2716, // ✖ "a22"
|
|
0x37: 0x2717, // ✗ "a23"
|
|
0x38: 0x2718, // ✘ "a24"
|
|
0x39: 0x2719, // ✙ "a25"
|
|
0x3a: 0x271a, // ✚ "a26"
|
|
0x3b: 0x271b, // ✛ "a27"
|
|
0x3c: 0x271c, // ✜ "a28"
|
|
0x3d: 0x271d, // ✝ "a6"
|
|
0x3e: 0x271e, // ✞ "a7"
|
|
0x3f: 0x271f, // ✟ "a8"
|
|
0x40: 0x2720, // ✠ "a9"
|
|
0x41: 0x2721, // ✡ "a10"
|
|
0x42: 0x2722, // ✢ "a29"
|
|
0x43: 0x2723, // ✣ "a30"
|
|
0x44: 0x2724, // ✤ "a31"
|
|
0x45: 0x2725, // ✥ "a32"
|
|
0x46: 0x2726, // ✦ "a33"
|
|
0x47: 0x2727, // ✧ "a34"
|
|
0x48: 0x2605, // ★ "a35"
|
|
0x49: 0x2729, // ✩ "a36"
|
|
0x4a: 0x272a, // ✪ "a37"
|
|
0x4b: 0x272b, // ✫ "a38"
|
|
0x4c: 0x272c, // ✬ "a39"
|
|
0x4d: 0x272d, // ✭ "a40"
|
|
0x4e: 0x272e, // ✮ "a41"
|
|
0x4f: 0x272f, // ✯ "a42"
|
|
0x50: 0x2730, // ✰ "a43"
|
|
0x51: 0x2731, // ✱ "a44"
|
|
0x52: 0x2732, // ✲ "a45"
|
|
0x53: 0x2733, // ✳ "a46"
|
|
0x54: 0x2734, // ✴ "a47"
|
|
0x55: 0x2735, // ✵ "a48"
|
|
0x56: 0x2736, // ✶ "a49"
|
|
0x57: 0x2737, // ✷ "a50"
|
|
0x58: 0x2738, // ✸ "a51"
|
|
0x59: 0x2739, // ✹ "a52"
|
|
0x5a: 0x273a, // ✺ "a53"
|
|
0x5b: 0x273b, // ✻ "a54"
|
|
0x5c: 0x273c, // ✼ "a55"
|
|
0x5d: 0x273d, // ✽ "a56"
|
|
0x5e: 0x273e, // ✾ "a57"
|
|
0x5f: 0x273f, // ✿ "a58"
|
|
0x60: 0x2740, // ❀ "a59"
|
|
0x61: 0x2741, // ❁ "a60"
|
|
0x62: 0x2742, // ❂ "a61"
|
|
0x63: 0x2743, // ❃ "a62"
|
|
0x64: 0x2744, // ❄ "a63"
|
|
0x65: 0x2745, // ❅ "a64"
|
|
0x66: 0x2746, // ❆ "a65"
|
|
0x67: 0x2747, // ❇ "a66"
|
|
0x68: 0x2748, // ❈ "a67"
|
|
0x69: 0x2749, // ❉ "a68"
|
|
0x6a: 0x274a, // ❊ "a69"
|
|
0x6b: 0x274b, // ❋ "a70"
|
|
0x6c: 0x25cf, // ● "a71"
|
|
0x6d: 0x274d, // ❍ "a72"
|
|
0x6e: 0x25a0, // ■ "a73"
|
|
0x6f: 0x274f, // ❏ "a74"
|
|
0x70: 0x2750, // ❐ "a203"
|
|
0x71: 0x2751, // ❑ "a75"
|
|
0x72: 0x2752, // ❒ "a204"
|
|
0x73: 0x25b2, // ▲ "a76"
|
|
0x74: 0x25bc, // ▼ "a77"
|
|
0x75: 0x25c6, // ◆ "a78"
|
|
0x76: 0x2756, // ❖ "a79"
|
|
0x77: 0x25d7, // ◗ "a81"
|
|
0x78: 0x2758, // ❘ "a82"
|
|
0x79: 0x2759, // ❙ "a83"
|
|
0x7a: 0x275a, // ❚ "a84"
|
|
0x7b: 0x275b, // ❛ "a97"
|
|
0x7c: 0x275c, // ❜ "a98"
|
|
0x7d: 0x275d, // ❝ "a99"
|
|
0x7e: 0x275e, // ❞ "a100"
|
|
0x80: 0xf8d7, // "a89"
|
|
0x81: 0xf8d8, // "a90"
|
|
0x82: 0xf8d9, // "a93"
|
|
0x83: 0xf8da, // "a94"
|
|
0x84: 0xf8db, // "a91"
|
|
0x85: 0xf8dc, // "a92"
|
|
0x86: 0xf8dd, // "a205"
|
|
0x87: 0xf8de, // "a85"
|
|
0x88: 0xf8df, // "a206"
|
|
0x89: 0xf8e0, // "a86"
|
|
0x8a: 0xf8e1, // "a87"
|
|
0x8b: 0xf8e2, // "a88"
|
|
0x8c: 0xf8e3, // "a95"
|
|
0x8d: 0xf8e4, // "a96"
|
|
0xa1: 0x2761, // ❡ "a101"
|
|
0xa2: 0x2762, // ❢ "a102"
|
|
0xa3: 0x2763, // ❣ "a103"
|
|
0xa4: 0x2764, // ❤ "a104"
|
|
0xa5: 0x2765, // ❥ "a106"
|
|
0xa6: 0x2766, // ❦ "a107"
|
|
0xa7: 0x2767, // ❧ "a108"
|
|
0xa8: 0x2663, // ♣ "a112"
|
|
0xa9: 0x2666, // ♦ "a111"
|
|
0xaa: 0x2665, // ♥ "a110"
|
|
0xab: 0x2660, // ♠ "a109"
|
|
0xac: 0x2460, // ① "a120"
|
|
0xad: 0x2461, // ② "a121"
|
|
0xae: 0x2462, // ③ "a122"
|
|
0xaf: 0x2463, // ④ "a123"
|
|
0xb0: 0x2464, // ⑤ "a124"
|
|
0xb1: 0x2465, // ⑥ "a125"
|
|
0xb2: 0x2466, // ⑦ "a126"
|
|
0xb3: 0x2467, // ⑧ "a127"
|
|
0xb4: 0x2468, // ⑨ "a128"
|
|
0xb5: 0x2469, // ⑩ "a129"
|
|
0xb6: 0x2776, // ❶ "a130"
|
|
0xb7: 0x2777, // ❷ "a131"
|
|
0xb8: 0x2778, // ❸ "a132"
|
|
0xb9: 0x2779, // ❹ "a133"
|
|
0xba: 0x277a, // ❺ "a134"
|
|
0xbb: 0x277b, // ❻ "a135"
|
|
0xbc: 0x277c, // ❼ "a136"
|
|
0xbd: 0x277d, // ❽ "a137"
|
|
0xbe: 0x277e, // ❾ "a138"
|
|
0xbf: 0x277f, // ❿ "a139"
|
|
0xc0: 0x2780, // ➀ "a140"
|
|
0xc1: 0x2781, // ➁ "a141"
|
|
0xc2: 0x2782, // ➂ "a142"
|
|
0xc3: 0x2783, // ➃ "a143"
|
|
0xc4: 0x2784, // ➄ "a144"
|
|
0xc5: 0x2785, // ➅ "a145"
|
|
0xc6: 0x2786, // ➆ "a146"
|
|
0xc7: 0x2787, // ➇ "a147"
|
|
0xc8: 0x2788, // ➈ "a148"
|
|
0xc9: 0x2789, // ➉ "a149"
|
|
0xca: 0x278a, // ➊ "a150"
|
|
0xcb: 0x278b, // ➋ "a151"
|
|
0xcc: 0x278c, // ➌ "a152"
|
|
0xcd: 0x278d, // ➍ "a153"
|
|
0xce: 0x278e, // ➎ "a154"
|
|
0xcf: 0x278f, // ➏ "a155"
|
|
0xd0: 0x2790, // ➐ "a156"
|
|
0xd1: 0x2791, // ➑ "a157"
|
|
0xd2: 0x2792, // ➒ "a158"
|
|
0xd3: 0x2793, // ➓ "a159"
|
|
0xd4: 0x2794, // ➔ "a160"
|
|
0xd5: 0x2192, // → "a161"
|
|
0xd6: 0x2194, // ↔ "a163"
|
|
0xd7: 0x2195, // ↕ "a164"
|
|
0xd8: 0x2798, // ➘ "a196"
|
|
0xd9: 0x2799, // ➙ "a165"
|
|
0xda: 0x279a, // ➚ "a192"
|
|
0xdb: 0x279b, // ➛ "a166"
|
|
0xdc: 0x279c, // ➜ "a167"
|
|
0xdd: 0x279d, // ➝ "a168"
|
|
0xde: 0x279e, // ➞ "a169"
|
|
0xdf: 0x279f, // ➟ "a170"
|
|
0xe0: 0x27a0, // ➠ "a171"
|
|
0xe1: 0x27a1, // ➡ "a172"
|
|
0xe2: 0x27a2, // ➢ "a173"
|
|
0xe3: 0x27a3, // ➣ "a162"
|
|
0xe4: 0x27a4, // ➤ "a174"
|
|
0xe5: 0x27a5, // ➥ "a175"
|
|
0xe6: 0x27a6, // ➦ "a176"
|
|
0xe7: 0x27a7, // ➧ "a177"
|
|
0xe8: 0x27a8, // ➨ "a178"
|
|
0xe9: 0x27a9, // ➩ "a179"
|
|
0xea: 0x27aa, // ➪ "a193"
|
|
0xeb: 0x27ab, // ➫ "a180"
|
|
0xec: 0x27ac, // ➬ "a199"
|
|
0xed: 0x27ad, // ➭ "a181"
|
|
0xee: 0x27ae, // ➮ "a200"
|
|
0xef: 0x27af, // ➯ "a182"
|
|
0xf1: 0x27b1, // ➱ "a201"
|
|
0xf2: 0x27b2, // ➲ "a183"
|
|
0xf3: 0x27b3, // ➳ "a184"
|
|
0xf4: 0x27b4, // ➴ "a197"
|
|
0xf5: 0x27b5, // ➵ "a185"
|
|
0xf6: 0x27b6, // ➶ "a194"
|
|
0xf7: 0x27b7, // ➷ "a198"
|
|
0xf8: 0x27b8, // ➸ "a186"
|
|
0xf9: 0x27b9, // ➹ "a195"
|
|
0xfa: 0x27ba, // ➺ "a187"
|
|
0xfb: 0x27bb, // ➻ "a188"
|
|
0xfc: 0x27bc, // ➼ "a189"
|
|
0xfd: 0x27bd, // ➽ "a190"
|
|
0xfe: 0x27be, // ➾ "a191"
|
|
}
|