unipdf/model/internal/fonts/std_other.go
2019-05-16 20:44:51 +00:00

472 lines
11 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* This file is subject to the terms and conditions defined in
* file 'LICENSE.md', which is part of this source code package.
*/
/*
* The embedded character metrics specified in this file are distributed under the terms listed in
* ./testdata/afms/MustRead.html.
*/
package fonts
import (
"github.com/unidoc/unipdf/v3/internal/textencoding"
)
func init() {
// The aliases seen for the standard 14 font names.
// Most of these are from table 5.5.1 in
// https://www.adobe.com/content/dam/acom/en/devnet/acrobat/pdfs/adobe_supplement_iso32000.pdf
RegisterStdFont(SymbolName, newFontSymbol, "Symbol,Italic", "Symbol,Bold", "Symbol,BoldItalic")
RegisterStdFont(ZapfDingbatsName, newFontZapfDingbats)
}
const (
// SymbolName is a PDF name of the Symbol font.
SymbolName = StdFontName("Symbol")
// ZapfDingbatsName is a PDF name of the ZapfDingbats font.
ZapfDingbatsName = StdFontName("ZapfDingbats")
)
// newFontSymbol returns a new instance of the font with a default encoder set (SymbolEncoder).
func newFontSymbol() StdFont {
enc := textencoding.NewSymbolEncoder()
desc := Descriptor{
Name: SymbolName,
Family: string(SymbolName),
Weight: FontWeightMedium,
Flags: 0x0004,
BBox: [4]float64{-180, -293, 1090, 1010},
ItalicAngle: 0,
Ascent: 0,
Descent: 0,
CapHeight: 0,
XHeight: 0,
StemV: 85,
StemH: 92,
}
return NewStdFontWithEncoding(desc, symbolCharMetrics, enc)
}
// newFontZapfDingbats returns a new instance of the font with a default encoder set (ZapfDingbatsEncoder).
func newFontZapfDingbats() StdFont {
enc := textencoding.NewZapfDingbatsEncoder()
desc := Descriptor{
Name: ZapfDingbatsName,
Family: string(ZapfDingbatsName),
Weight: FontWeightMedium,
Flags: 0x0004,
BBox: [4]float64{-1, -143, 981, 820},
ItalicAngle: 0,
Ascent: 0,
Descent: 0,
CapHeight: 0,
XHeight: 0,
StemV: 90,
StemH: 28,
}
return NewStdFontWithEncoding(desc, zapfDingbatsCharMetrics, enc)
}
// symbolCharMetrics are the font metrics loaded from afms/Symbol.afm.
// See afms/MustRead.html for license information.
var symbolCharMetrics = map[rune]CharMetrics{
' ': {Wx: 250},
'!': {Wx: 333},
'#': {Wx: 500},
'%': {Wx: 833},
'&': {Wx: 778},
'(': {Wx: 333},
')': {Wx: 333},
'+': {Wx: 549},
',': {Wx: 250},
'.': {Wx: 250},
'/': {Wx: 278},
'0': {Wx: 500},
'1': {Wx: 500},
'2': {Wx: 500},
'3': {Wx: 500},
'4': {Wx: 500},
'5': {Wx: 500},
'6': {Wx: 500},
'7': {Wx: 500},
'8': {Wx: 500},
'9': {Wx: 500},
':': {Wx: 278},
';': {Wx: 278},
'<': {Wx: 549},
'=': {Wx: 549},
'>': {Wx: 549},
'?': {Wx: 444},
'[': {Wx: 333},
']': {Wx: 333},
'_': {Wx: 500},
'{': {Wx: 480},
'|': {Wx: 200},
'}': {Wx: 480},
'¬': {Wx: 713},
'°': {Wx: 400},
'±': {Wx: 549},
'µ': {Wx: 576},
'×': {Wx: 549},
'÷': {Wx: 549},
'ƒ': {Wx: 500},
'Α': {Wx: 722},
'Β': {Wx: 667},
'Γ': {Wx: 603},
'Ε': {Wx: 611},
'Ζ': {Wx: 611},
'Η': {Wx: 722},
'Θ': {Wx: 741},
'Ι': {Wx: 333},
'Κ': {Wx: 722},
'Λ': {Wx: 686},
'Μ': {Wx: 889},
'Ν': {Wx: 722},
'Ξ': {Wx: 645},
'Ο': {Wx: 722},
'Π': {Wx: 768},
'Ρ': {Wx: 556},
'Σ': {Wx: 592},
'Τ': {Wx: 611},
'Υ': {Wx: 690},
'Φ': {Wx: 763},
'Χ': {Wx: 722},
'Ψ': {Wx: 795},
'α': {Wx: 631},
'β': {Wx: 549},
'γ': {Wx: 411},
'δ': {Wx: 494},
'ε': {Wx: 439},
'ζ': {Wx: 494},
'η': {Wx: 603},
'θ': {Wx: 521},
'ι': {Wx: 329},
'κ': {Wx: 549},
'λ': {Wx: 549},
'ν': {Wx: 521},
'ξ': {Wx: 493},
'ο': {Wx: 549},
'π': {Wx: 549},
'ρ': {Wx: 549},
'ς': {Wx: 439},
'σ': {Wx: 603},
'τ': {Wx: 439},
'υ': {Wx: 576},
'φ': {Wx: 521},
'χ': {Wx: 549},
'ψ': {Wx: 686},
'ω': {Wx: 686},
'ϑ': {Wx: 631},
'ϒ': {Wx: 620},
'ϕ': {Wx: 603},
'ϖ': {Wx: 713},
'•': {Wx: 460},
'…': {Wx: 1000},
'': {Wx: 247},
'″': {Wx: 411},
'': {Wx: 167},
'€': {Wx: 750},
'': {Wx: 686},
'℘': {Wx: 987},
'': {Wx: 795},
'Ω': {Wx: 768},
'ℵ': {Wx: 823},
'←': {Wx: 987},
'↑': {Wx: 603},
'→': {Wx: 987},
'↓': {Wx: 603},
'↔': {Wx: 1042},
'↵': {Wx: 658},
'⇐': {Wx: 987},
'⇑': {Wx: 603},
'⇒': {Wx: 987},
'⇓': {Wx: 603},
'⇔': {Wx: 1042},
'∀': {Wx: 713},
'∂': {Wx: 494},
'∃': {Wx: 549},
'∅': {Wx: 823},
'∆': {Wx: 612},
'∇': {Wx: 713},
'∈': {Wx: 713},
'∉': {Wx: 713},
'∋': {Wx: 439},
'∏': {Wx: 823},
'∑': {Wx: 713},
'': {Wx: 549},
'': {Wx: 500},
'√': {Wx: 549},
'∝': {Wx: 713},
'∞': {Wx: 713},
'∠': {Wx: 768},
'∧': {Wx: 603},
'': {Wx: 603},
'∩': {Wx: 768},
'': {Wx: 768},
'∫': {Wx: 274},
'∴': {Wx: 863},
'': {Wx: 549},
'≅': {Wx: 549},
'≈': {Wx: 549},
'≠': {Wx: 549},
'≡': {Wx: 549},
'≤': {Wx: 549},
'≥': {Wx: 549},
'⊂': {Wx: 713},
'⊃': {Wx: 713},
'⊄': {Wx: 713},
'⊆': {Wx: 713},
'⊇': {Wx: 713},
'⊕': {Wx: 768},
'⊗': {Wx: 768},
'⊥': {Wx: 658},
'⋅': {Wx: 250},
'⌠': {Wx: 686},
'⌡': {Wx: 686},
'〈': {Wx: 329},
'〉': {Wx: 329},
'◊': {Wx: 494},
'♠': {Wx: 753},
'♣': {Wx: 753},
'♥': {Wx: 753},
'♦': {Wx: 753},
'\uf6d9': {Wx: 790},
'\uf6da': {Wx: 790},
'\uf6db': {Wx: 890},
'\uf8e5': {Wx: 500},
'\uf8e6': {Wx: 603},
'\uf8e7': {Wx: 1000},
'\uf8e8': {Wx: 790},
'\uf8e9': {Wx: 790},
'\uf8ea': {Wx: 786},
'\uf8eb': {Wx: 384},
'\uf8ec': {Wx: 384},
'\uf8ed': {Wx: 384},
'\uf8ee': {Wx: 384},
'\uf8ef': {Wx: 384},
'\uf8f0': {Wx: 384},
'\uf8f1': {Wx: 494},
'\uf8f2': {Wx: 494},
'\uf8f3': {Wx: 494},
'\uf8f4': {Wx: 494},
'\uf8f5': {Wx: 686},
'\uf8f6': {Wx: 384},
'\uf8f7': {Wx: 384},
'\uf8f8': {Wx: 384},
'\uf8f9': {Wx: 384},
'\uf8fa': {Wx: 384},
'\uf8fb': {Wx: 384},
'\uf8fc': {Wx: 494},
'\uf8fd': {Wx: 494},
'\uf8fe': {Wx: 494},
'\uf8ff': {Wx: 790},
}
// zapfDingbatsCharMetrics are the font metrics loaded from afms/ZapfDingbats.afm.
// See afms/MustRead.html for license information.
var zapfDingbatsCharMetrics = map[rune]CharMetrics{
' ': {Wx: 278},
'→': {Wx: 838},
'↔': {Wx: 1016},
'↕': {Wx: 458},
'①': {Wx: 788},
'②': {Wx: 788},
'③': {Wx: 788},
'④': {Wx: 788},
'⑤': {Wx: 788},
'⑥': {Wx: 788},
'⑦': {Wx: 788},
'⑧': {Wx: 788},
'⑨': {Wx: 788},
'⑩': {Wx: 788},
'■': {Wx: 761},
'▲': {Wx: 892},
'▼': {Wx: 892},
'◆': {Wx: 788},
'●': {Wx: 791},
'◗': {Wx: 438},
'★': {Wx: 816},
'☎': {Wx: 719},
'☛': {Wx: 960},
'☞': {Wx: 939},
'♠': {Wx: 626},
'♣': {Wx: 776},
'♥': {Wx: 694},
'♦': {Wx: 595},
'✁': {Wx: 974},
'✂': {Wx: 961},
'✃': {Wx: 974},
'✄': {Wx: 980},
'✆': {Wx: 789},
'✇': {Wx: 790},
'✈': {Wx: 791},
'✉': {Wx: 690},
'✌': {Wx: 549},
'✍': {Wx: 855},
'✎': {Wx: 911},
'✏': {Wx: 933},
'✐': {Wx: 911},
'✑': {Wx: 945},
'✒': {Wx: 974},
'✓': {Wx: 755},
'✔': {Wx: 846},
'✕': {Wx: 762},
'✖': {Wx: 761},
'✗': {Wx: 571},
'✘': {Wx: 677},
'✙': {Wx: 763},
'✚': {Wx: 760},
'✛': {Wx: 759},
'✜': {Wx: 754},
'✝': {Wx: 494},
'✞': {Wx: 552},
'✟': {Wx: 537},
'✠': {Wx: 577},
'✡': {Wx: 692},
'✢': {Wx: 786},
'✣': {Wx: 788},
'✤': {Wx: 788},
'✥': {Wx: 790},
'✦': {Wx: 793},
'✧': {Wx: 794},
'✩': {Wx: 823},
'✪': {Wx: 789},
'✫': {Wx: 841},
'✬': {Wx: 823},
'✭': {Wx: 833},
'✮': {Wx: 816},
'✯': {Wx: 831},
'✰': {Wx: 923},
'✱': {Wx: 744},
'✲': {Wx: 723},
'✳': {Wx: 749},
'✴': {Wx: 790},
'✵': {Wx: 792},
'✶': {Wx: 695},
'✷': {Wx: 776},
'✸': {Wx: 768},
'✹': {Wx: 792},
'✺': {Wx: 759},
'✻': {Wx: 707},
'✼': {Wx: 708},
'✽': {Wx: 682},
'✾': {Wx: 701},
'✿': {Wx: 826},
'❀': {Wx: 815},
'❁': {Wx: 789},
'❂': {Wx: 789},
'❃': {Wx: 707},
'❄': {Wx: 687},
'❅': {Wx: 696},
'❆': {Wx: 689},
'❇': {Wx: 786},
'❈': {Wx: 787},
'❉': {Wx: 713},
'❊': {Wx: 791},
'❋': {Wx: 785},
'❍': {Wx: 873},
'❏': {Wx: 762},
'❐': {Wx: 762},
'❑': {Wx: 759},
'❒': {Wx: 759},
'❖': {Wx: 784},
'❘': {Wx: 138},
'❙': {Wx: 277},
'❚': {Wx: 415},
'❛': {Wx: 392},
'❜': {Wx: 392},
'❝': {Wx: 668},
'❞': {Wx: 668},
'❡': {Wx: 732},
'❢': {Wx: 544},
'❣': {Wx: 544},
'❤': {Wx: 910},
'❥': {Wx: 667},
'❦': {Wx: 760},
'❧': {Wx: 760},
'❶': {Wx: 788},
'❷': {Wx: 788},
'❸': {Wx: 788},
'❹': {Wx: 788},
'❺': {Wx: 788},
'❻': {Wx: 788},
'❼': {Wx: 788},
'❽': {Wx: 788},
'❾': {Wx: 788},
'❿': {Wx: 788},
'➀': {Wx: 788},
'➁': {Wx: 788},
'➂': {Wx: 788},
'➃': {Wx: 788},
'➄': {Wx: 788},
'➅': {Wx: 788},
'➆': {Wx: 788},
'➇': {Wx: 788},
'➈': {Wx: 788},
'➉': {Wx: 788},
'➊': {Wx: 788},
'➋': {Wx: 788},
'➌': {Wx: 788},
'➍': {Wx: 788},
'➎': {Wx: 788},
'➏': {Wx: 788},
'➐': {Wx: 788},
'➑': {Wx: 788},
'➒': {Wx: 788},
'➓': {Wx: 788},
'➔': {Wx: 894},
'➘': {Wx: 748},
'➙': {Wx: 924},
'➚': {Wx: 748},
'➛': {Wx: 918},
'➜': {Wx: 927},
'➝': {Wx: 928},
'➞': {Wx: 928},
'➟': {Wx: 834},
'➠': {Wx: 873},
'➡': {Wx: 828},
'➢': {Wx: 924},
'➣': {Wx: 924},
'➤': {Wx: 917},
'➥': {Wx: 930},
'➦': {Wx: 931},
'➧': {Wx: 463},
'➨': {Wx: 883},
'➩': {Wx: 836},
'➪': {Wx: 836},
'➫': {Wx: 867},
'➬': {Wx: 867},
'➭': {Wx: 696},
'➮': {Wx: 696},
'➯': {Wx: 874},
'➱': {Wx: 874},
'➲': {Wx: 760},
'➳': {Wx: 946},
'➴': {Wx: 771},
'➵': {Wx: 865},
'➶': {Wx: 771},
'➷': {Wx: 888},
'➸': {Wx: 967},
'➹': {Wx: 888},
'➺': {Wx: 831},
'➻': {Wx: 873},
'➼': {Wx: 927},
'➽': {Wx: 970},
'➾': {Wx: 918},
'\uf8d7': {Wx: 390},
'\uf8d8': {Wx: 390},
'\uf8d9': {Wx: 317},
'\uf8da': {Wx: 317},
'\uf8db': {Wx: 276},
'\uf8dc': {Wx: 276},
'\uf8dd': {Wx: 509},
'\uf8de': {Wx: 509},
'\uf8df': {Wx: 410},
'\uf8e0': {Wx: 410},
'\uf8e1': {Wx: 234},
'\uf8e2': {Wx: 234},
'\uf8e3': {Wx: 334},
'\uf8e4': {Wx: 334},
}