2020-08-27 21:45:09 +00:00
|
|
|
|
//
|
|
|
|
|
// Copyright 2020 FoxyUtils ehf. All rights reserved.
|
|
|
|
|
//
|
|
|
|
|
// This is a commercial product and requires a license to operate.
|
|
|
|
|
// A trial license can be obtained at https://unidoc.io
|
|
|
|
|
//
|
|
|
|
|
// DO NOT EDIT: generated by unitwist Go source code obfuscator.
|
|
|
|
|
//
|
|
|
|
|
// Use of this source code is governed by the UniDoc End User License Agreement
|
|
|
|
|
// terms that can be accessed at https://unidoc.io/eula/
|
|
|
|
|
|
2021-04-06 22:35:37 +00:00
|
|
|
|
package textencoding ;import (_f "bytes";_gg "encoding/binary";_g "errors";_dba "fmt";_ccd "github.com/unidoc/unipdf/v3/common";_fa "github.com/unidoc/unipdf/v3/core";_eb "github.com/unidoc/unipdf/v3/internal/cmap";_ag "github.com/unidoc/unipdf/v3/internal/strutils";
|
|
|
|
|
_da "github.com/unidoc/unipdf/v3/internal/textencoding/internal/syncmap";_de "golang.org/x/text/encoding";_a "golang.org/x/text/transform";_ff "golang.org/x/xerrors";_e "regexp";_db "sort";_cc "strconv";_bb "strings";_b "sync";_bd "unicode";_c "unicode/utf8";
|
|
|
|
|
);func NewPdfDocEncoder ()SimpleEncoder {return _dda .NewEncoder ()};func _bca (_bdc TextEncoder ,_dfc string )[]byte {_bgd :=make ([]byte ,0,len (_dfc ));for _ ,_gba :=range _dfc {_gdf ,_faef :=_bdc .RuneToCharcode (_gba );if !_faef ||_gdf > 0xff{_ccd .Log .Debug ("\u0046\u0061i\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u006d\u0061\u0070\u0020\u0072\u0075\u006e\u0065\u0020\u0074\u006f\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0020\u0066\u006f\u0072\u0020\u0072\u0075\u006e\u0065\u0020\u0030\u0078\u0025\u0030\u0034\u0078",_gba );
|
|
|
|
|
continue ;};_bgd =append (_bgd ,byte (_gdf ));};return _bgd ;};var _bea =_da .NewByteRuneMap (map[byte ]rune {0x20:' ',0x21:'✁',0x22:'✂',0x23:'✃',0x24:'✄',0x25:'☎',0x26:'✆',0x27:'✇',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:'✿',0x60:'❀',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:'❞',0x80:'\uf8d7',0x81:'\uf8d8',0x82:'\uf8d9',0x83:'\uf8da',0x84:'\uf8db',0x85:'\uf8dc',0x86:'\uf8dd',0x87:'\uf8de',0x88:'\uf8df',0x89:'\uf8e0',0x8a:'\uf8e1',0x8b:'\uf8e2',0x8c:'\uf8e3',0x8d:'\uf8e4',0xa1:'❡',0xa2:'❢',0xa3:'❣',0xa4:'❤',0xa5:'❥',0xa6:'❦',0xa7:'❧',0xa8:'♣',0xa9:'♦',0xaa:'♥',0xab:'♠',0xac:'①',0xad:'②',0xae:'③',0xaf:'④',0xb0:'⑤',0xb1:'⑥',0xb2:'⑦',0xb3:'⑧',0xb4:'⑨',0xb5:'⑩',0xb6:'❶',0xb7:'❷',0xb8:'❸',0xb9:'❹',0xba:'❺',0xbb:'❻',0xbc:'❼',0xbd:'❽',0xbe:'❾',0xbf:'❿',0xc0:'➀',0xc1:'➁',0xc2:'➂',0xc3:'➃',0xc4:'➄',0xc5:'➅',0xc6:'➆',0xc7:'➇',0xc8:'➈',0xc9:'➉',0xca:'➊',0xcb:'➋',0xcc:'➌',0xcd:'➍',0xce:'➎',0xcf:'➏',0xd0:'➐',0xd1:'➑',0xd2:'➒',0xd3:'➓',0xd4:'➔',0xd5:'→',0xd6:'↔',0xd7:'↕',0xd8:'➘',0xd9:'➙',0xda:'➚',0xdb:'➛',0xdc:'➜',0xdd:'➝',0xde:'➞',0xdf:'➟',0xe0:'➠',0xe1:'➡',0xe2:'➢',0xe3:'➣',0xe4:'➤',0xe5:'➥',0xe6:'➦',0xe7:'➧',0xe8:'➨',0xe9:'➩',0xea:'➪',0xeb:'➫',0xec:'➬',0xed:'➭',0xee:'➮',0xef:'➯',0xf1:'➱',0xf2:'➲',0xf3:'➳',0xf4:'➴',0xf5:'➵',0xf6:'➶',0xf7:'➷',0xf8:'➸',0xf9:'➹',0xfa:'➺',0xfb:'➻',0xfc:'➼',0xfd:'➽',0xfe:'➾'});
|
|
|
|
|
func (_feg *IdentityEncoder )String ()string {return _feg ._cgfe };func _dfcc (_eedb rune )string {_abc :="u\u006e\u0070\u0072\u0069\u006e\u0074\u0061\u0062\u006c\u0065";if _bd .IsPrint (_eedb ){_abc =_dba .Sprintf ("\u0025\u0023\u0071",_eedb );};return _dba .Sprintf ("\u0025\u002b\u0071\u0020\u0028\u0025\u0073\u0029",_eedb ,_abc );
|
|
|
|
|
};func (_bdd *TrueTypeFontEncoder )String ()string {_dcc :=[]string {_dba .Sprintf ("\u0025\u0064\u0020\u0065\u006e\u0074\u0072\u0069\u0065\u0073",_bdd ._feaa .Length ())};type runeGID struct{_cgaa rune ;_gafc GID ;};_acgd :=make ([]runeGID ,0,_bdd ._feaa .Length ());
|
|
|
|
|
_bdd ._feaa .Range (func (_fdg rune ,_age uint16 )(_ccf bool ){_acgd =append (_acgd ,runeGID {_cgaa :_fdg ,_gafc :GID (_age )});return false ;});_db .Slice (_acgd ,func (_cbbe ,_cbgg int )bool {return _acgd [_cbbe ]._cgaa < _acgd [_cbgg ]._cgaa });_bae :=len (_acgd );
|
|
|
|
|
if _bae > _dfd {_bae =_dfd ;};for _aebbb :=0;_aebbb < _bae ;_aebbb ++{_cfc :=_acgd [_aebbb ];_dcc =append (_dcc ,_dba .Sprintf ("\u0025\u0064\u003d\u0030\u0078\u0025\u0030\u0032\u0078\u003a\u0020\u0025\u0071",_cfc ._cgaa ,_cfc ._cgaa ,_cfc ._gafc ));};
|
|
|
|
|
return _dba .Sprintf ("T\u0052U\u0045\u0054\u0059\u0050\u0045\u005f\u0045\u004eC\u004f\u0044\u0045\u0052{%\u0073\u007d",_bb .Join (_dcc ,"\u002c\u0020"));};func (_ce *differencesEncoding )String ()string {return _dba .Sprintf ("\u0064\u0069\u0066\u0066er\u0065\u006e\u0063\u0065\u0073\u0028\u0025\u0073\u002c\u0020\u0025\u0076\u0029",_ce ._cgce .String (),_ce ._dbdf );
|
|
|
|
|
};func RuneToGlyph (r rune )(GlyphName ,bool ){_dab ,_fccg :=_addb .Read (r );if !_fccg &&r > 0{_dab =_dba .Sprintf ("\u0075n\u0069\u0025\u0030\u0034\u0078",r );_fccg =true ;};return GlyphName (_dab ),_fccg ;};func (_egad UTF16Encoder )CharcodeToRune (code CharCode )(rune ,bool ){return rune (code ),true };
|
|
|
|
|
func (_bdbe *differencesEncoding )BaseName ()string {return _bdbe ._cgce .BaseName ()};const (MissingCodeRune ='\ufffd';MissingCodeString =string (MissingCodeRune ););func (_cf CMapEncoder )Decode (raw []byte )string {if _cf ._fc !=nil {if _gf ,_cbe :=_cf ._fc .BytesToCharcodes (raw );
|
|
|
|
|
_cbe {var _dbd _f .Buffer ;for _ ,_cfg :=range _gf {_gb ,_ :=_cf .charcodeToString (CharCode (_cfg ));_dbd .WriteString (_gb );};return _dbd .String ();};};return _fbf (_cf ,raw );};func NewUTF16TextEncoder (baseName string )UTF16Encoder {return UTF16Encoder {baseName }};
|
|
|
|
|
func NewSimpleTextEncoder (baseName string ,differences map[CharCode ]GlyphName )(SimpleEncoder ,error ){_ccg ,_ccgf :=_bgbe .Read (baseName );if !_ccgf {_ccd .Log .Debug ("\u0045\u0052\u0052\u004f\u0052\u003a\u0020\u004ee\u0077\u0053\u0069mp\u006c\u0065\u0054\u0065\u0078\u0074E\u006e\u0063\u006f\u0064\u0065\u0072\u002e\u0020\u0055\u006e\u006b\u006e\u006f\u0077\u006e \u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067 \u0025\u0071",baseName );
|
|
|
|
|
return nil ,_ff .Errorf ("\u0075\u006e\u0073up\u0070\u006f\u0072\u0074\u0065\u0064\u0020\u0066\u006fn\u0074 \u0065n\u0063o\u0064\u0069\u006e\u0067\u003a\u0020\u0025\u0071\u0020\u0028\u0025\u0077\u0029",baseName ,_fa .ErrNotSupported );};_fdeg :=_ccg ();
|
|
|
|
|
if len (differences )!=0{_fdeg =ApplyDifferences (_fdeg ,differences );};return _fdeg ,nil ;};var (_feb =_bfef (_bcg ,_cbfg );_ffc =_bfef (_ggb ,_fbfb ););var _dce =_da .NewRuneStringMap (map[rune ]string {'Ꜳ':"\u0041\u0041",'ꜳ':"\u0061\u0061",'Ꜵ':"\u0061\u0061",'ꜵ':"\u0061\u006f",'Ꜷ':"\u0041\u0055",'ꜷ':"\u0061\u0075",'Ꜽ':"\u0041\u0059",'ꜽ':"\u0061\u0079",'\U0001f670':"\u0065\u0074",'ff':"\u0066\u0066",'ffi':"\u0066\u0066\u0069",'ffl':"\u0066\u0066\u006c",'fi':"\u0066\u0069",'fl':"\u0066\u006c",'Œ':"\u004f\u0045",'œ':"\u006f\u0065",'Ꝏ':"\u004f\u004f",'ꝏ':"\u006f\u006f",'st':"\u0073\u0074",'ſt':"\u017f\u0074",'Ꜩ':"\u0054\u005a",'ꜩ':"\u0074\u007a",'ᵫ':"\u0075\u0065",'Ꝡ':"\u0056\u0059",'ꝡ':"\u0076\u0079",0xe000:"\u0066\u0074",0xe001:"\u0066\u006a",0xe002:"\u0066\u0062",0xe003:"\u0066\u0068",0xe004:"\u0066\u006b",0xe005:"\u0074\u0074",0xe006:"\u0074\u0066",0xe007:"\u0066\u0066\u006a",0xe008:"\u0066\u0066\u0062",0xe009:"\u0066\u0066\u0068",0xe00a:"\u0066\u0066\u006b",0xe00b:"\u0054\u005f\u0068"});
|
|
|
|
|
func (_dbdff *TrueTypeFontEncoder )CharcodeToRune (code CharCode )(rune ,bool ){_fbeg :=rune (-1);_dbdff ._feaa .Range (func (_dbf rune ,_cafdc uint16 )(_gbfc bool ){_fcae :=CharCode (_cafdc );if _fcae ==code {_fbeg =_dbf ;return true ;};return false ;
|
|
|
|
|
});if _fbeg !=-1{return _fbeg ,true ;};_ccd .Log .Debug ("\u0043h\u0061\u0072c\u006f\u0064\u0065\u0054o\u0052\u0075\u006ee\u003a\u0020\u004e\u006f\u0020\u006d\u0061\u0074\u0063h.\u0020\u0063\u006fd\u0065\u003d0\u0078\u0025\u0030\u0034\u0078\u0020e\u006e\u0063=\u0025\u0073",code ,_dbdff );
|
|
|
|
|
return 0,false ;};func (_edd *simpleEncoder )Transform (dst ,src []byte ,atEOF bool )(_faf ,_ega int ,_ error ){for len (src )!=0{if !_c .FullRune (src )&&!atEOF {return _faf ,_ega ,_a .ErrShortSrc ;}else if len (dst )==0{return _faf ,_ega ,_a .ErrShortDst ;
|
|
|
|
|
};_agdf ,_agcf :=_c .DecodeRune (src );if _agdf ==_c .RuneError {_agdf =MissingCodeRune ;};src =src [_agcf :];_ega +=_agcf ;_gdg ,_ace :=_edd ._dgc .Read (_agdf );if !_ace {_gdg ,_ =_edd ._dgc .Read (MissingCodeRune );};dst [0]=_gdg ;dst =dst [1:];_faf ++;
|
|
|
|
|
};return _faf ,_ega ,nil ;};func (_bgfg *TrueTypeFontEncoder )SubsetRegistered (){_ccd .Log .Info ("\u0054\u0054\u0046\u0020Su\u0062\u0073\u0065\u0074\u003a\u0020\u0050\u0072\u0075\u006e\u0069\u006e\u0067");_bgfg ._feaa .RangeDelete (func (_ceded rune ,_ uint16 )(_gee bool ,_cdd bool ){return !_bgfg ._bdaa .Exists (_ceded ),_cdd });
|
|
|
|
|
};var _cgg =_da .NewByteRuneMap (map[byte ]rune {0x20:' ',0x21:'!',0x22:'"',0x23:'#',0x24:'$',0x25:'%',0x26:'&',0x27:'\'',0x28:'(',0x29:')',0x2a:'*',0x2b:'+',0x2c:',',0x2d:'-',0x2e:'.',0x2f:'/',0x30:'0',0x31:'1',0x32:'2',0x33:'3',0x34:'4',0x35:'5',0x36:'6',0x37:'7',0x38:'8',0x39:'9',0x3a:':',0x3b:';',0x3c:'<',0x3d:'=',0x3e:'>',0x3f:'?',0x40:'@',0x41:'A',0x42:'B',0x43:'C',0x44:'D',0x45:'E',0x46:'F',0x47:'G',0x48:'H',0x49:'I',0x4a:'J',0x4b:'K',0x4c:'L',0x4d:'M',0x4e:'N',0x4f:'O',0x50:'P',0x51:'Q',0x52:'R',0x53:'S',0x54:'T',0x55:'U',0x56:'V',0x57:'W',0x58:'X',0x59:'Y',0x5a:'Z',0x5b:'[',0x5c:'\\',0x5d:']',0x5e:'^',0x5f:'_',0x60:'`',0x61:'a',0x62:'b',0x63:'c',0x64:'d',0x65:'e',0x66:'f',0x67:'g',0x68:'h',0x69:'i',0x6a:'j',0x6b:'k',0x6c:'l',0x6d:'m',0x6e:'n',0x6f:'o',0x70:'p',0x71:'q',0x72:'r',0x73:'s',0x74:'t',0x75:'u',0x76:'v',0x77:'w',0x78:'x',0x79:'y',0x7a:'z',0x7b:'{',0x7c:'|',0x7d:'}',0x7e:'~',0x7f:'•',0x80:'€',0x81:'•',0x82:'‚',0x83:'ƒ',0x84:'„',0x85:'…',0x86:'†',0x87:'‡',0x88:'ˆ',0x89:'‰',0x8a:'Š',0x8b:'‹',0x8c:'Œ',0x8d:'•',0x8e:'Ž',0x8f:'•',0x90:'•',0x91:'‘',0x92:'’',0x93:'“',0x94:'”',0x95:'•',0x96:'–',0x97:'—',0x98:'˜',0x99:'™',0x9a:'š',0x9b:'›',0x9c:'œ',0x9d:'•',0x9e:'ž',0x9f:'Ÿ',0xa0:' ',0xa1:'¡',0xa2:'¢',0xa3:'£',0xa4:'¤',0xa5:'¥',0xa6:'¦',0xa7:'§',0xa8:'¨',0xa9:'©',0xaa:'ª',0xab:'«',0xac:'¬',0xad:'-',0xae:'®',0xaf:'¯',0xb0:'°',0xb1:'±',0xb2:'²',0xb3:'³',0xb4:'´',0xb5:'µ',0xb6:'¶',0xb7:'·',0xb8:'¸',0xb9:'¹',0xba:'º',0xbb:'»',0xbc:'¼',0xbd:'½',0xbe:'¾',0xbf:'¿',0xc0:'À',0xc1:'Á',0xc2:'Â',0xc3:'Ã',0xc4:'Ä',0xc5:'Å',0xc6:'Æ',0xc7:'Ç',0xc8:'È',0xc9:'É',0xca:'Ê',0xcb:'Ë',0xcc:'Ì',0xcd:'Í',0xce:'Î',0xcf:'Ï',0xd0:'Ð',0xd1:'Ñ',0xd2:'Ò',0xd3:'Ó',0xd4:'Ô',0xd5:'Õ',0xd6:'Ö',0xd7:'×',0xd8:'Ø',0xd9:'Ù',0xda:'Ú',0xdb:'Û',0xdc:'Ü',0xdd:'Ý',0xde:'Þ',0xdf:'ß',0xe0:'à',0xe1:'á',0xe2:'â',0xe3:'ã',0xe4:'ä',0xe5:'å',0xe6:'æ',0xe7:'ç',0xe8:'è',0xe9:'é',0xea:'ê',0xeb:'ë',0xec:'ì',0xed:'í',0xee:'î',0xef:'ï',0xf0:'ð',0xf1:'ñ',0xf2:'ò',0xf3:'ó',0xf4:'ô',0xf5:'õ',0xf6:'ö',0xf7:'÷',0xf8:'ø',0xf9:'ù',0xfa:'ú',0xfb:'û',0xfc:'ü',0xfd:'ý',0xfe:'þ',0xff:'ÿ'});
|
|
|
|
|
type CharCode uint16 ;const _gbfa ="\u0057i\u006eA\u006e\u0073\u0069\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";var (_cee =_bfef (_gbfa ,_cgg ););func (_ddb *differencesEncoding )Encode (str string )[]byte {_gaa :=[]rune (str );_bbed :=_f .NewBuffer (nil );
|
|
|
|
|
_bbed .Grow (len (_gaa ));for _ ,_agg :=range _gaa {_cgd ,_ :=_ddb .RuneToCharcode (_agg );_bbed .WriteByte (byte (_cgd ));};return _bbed .Bytes ();};type TrueTypeFontEncoder struct{_feaa *_da .RuneUint16Map ;_bdaa *_da .RuneSet ;};func (_ecg *simpleEncoding )Encode (str string )[]byte {_dcgf ,_ :=_ecg .NewEncoder ().Bytes ([]byte (str ));
|
|
|
|
|
return _dcgf ;};type simpleEncodersMap struct{_gfdb map[string ]func ()SimpleEncoder ;_ffgf _b .RWMutex ;};func NewIdentityTextEncoder (baseName string )*IdentityEncoder {return &IdentityEncoder {_cgfe :baseName ,_dcd :_da .MakeRuneSet (0)};};var _daca =_da .NewByteRuneMap (map[byte ]rune {0x1:'\x01',0x2:'\x02',0x3:'\x03',0x4:'\x04',0x5:'\x05',0x6:'\x06',0x7:'\a',0x8:'\b',0x9:'\t',0xa:'\n',0xb:'\v',0xc:'\f',0xd:'\r',0xe:'\x0e',0xf:'\x0f',0x10:'\x10',0x11:'\x11',0x12:'\x12',0x13:'\x13',0x14:'\x14',0x15:'\x15',0x16:'\x17',0x17:'\x17',0x18:'˘',0x19:'ˇ',0x1a:'ˆ',0x1b:'˙',0x1c:'˝',0x1d:'˛',0x1e:'˚',0x1f:'˜',0x20:' ',0x21:'!',0x22:'"',0x23:'#',0x24:'$',0x25:'%',0x26:'&',0x27:'\'',0x28:'(',0x29:')',0x2a:'*',0x2b:'+',0x2c:',',0x2d:'-',0x2e:'.',0x2f:'/',0x30:'0',0x31:'1',0x32:'2',0x33:'3',0x34:'4',0x35:'5',0x36:'6',0x37:'7',0x38:'8',0x39:'9',0x3a:':',0x3b:';',0x3c:'<',0x3d:'=',0x3e:'>',0x3f:'?',0x40:'@',0x41:'A',0x42:'B',0x43:'C',0x44:'D',0x45:'E',0x46:'F',0x47:'G',0x48:'H',0x49:'I',0x4a:'J',0x4b:'K',0x4c:'L',0x4d:'M',0x4e:'N',0x4f:'O',0x50:'P',0x51:'Q',0x52:'R',0x53:'S',0x54:'T',0x55:'U',0x56:'V',0x57:'W',0x58:'X',0x59:'Y',0x5a:'Z',0x5b:'[',0x5c:'\\',0x5d:']',0x5e:'^',0x5f:'_',0x60:'`',0x61:'a',0x62:'b',0x63:'c',0x64:'d',0x65:'e',0x66:'f',0x67:'g',0x68:'h',0x69:'i',0x6a:'j',0x6b:'k',0x6c:'l',0x6d:'m',0x6e:'n',0x6f:'o',0x70:'p',0x71:'q',0x72:'r',0x73:'s',0x74:'t',0x75:'u',0x76:'v',0x77:'w',0x78:'x',0x79:'y',0x7a:'z',0x7b:'{',0x7c:'|',0x7d:'}',0x7e:'~',0x80:'•',0x81:'†',0x82:'‡',0x83:'…',0x84:'—',0x85:'–',0x86:'ƒ',0x87:'⁄',0x88:'‹',0x89:'›',0x8a:'−',0x8b:'‰',0x8c:'„',0x8d:'“',0x8e:'”',0x8f:'‘',0x90:'’',0x91:'‚',0x92:'™',0x93:'fi',0x94:'fl',0x95:'Ł',0x96:'Œ',0x97:'Š',0x98:'Ÿ',0x99:'Ž',0x9a:'ı',0x9b:'ł',0x9c:'œ',0x9d:'š',0x9e:'ž',0xa0:'€',0xa1:'¡',0xa2:'¢',0xa3:'£',0xa4:'¤',0xa5:'¥',0xa6:'¦',0xa7:'§',0xa8:'¨',0xa9:'©',0xaa:'ª',0xab:'«',0xac:'¬',0xae:'®',0xaf:'¯',0xb0:'°',0xb1:'±',0xb2:'²',0xb3:'³',0xb4:'´',0xb5:'µ',0xb6:'¶',0xb7:'·',0xb8:'¸',0xb9:'¹',0xba:'º',0xbb:'»',0xbc:'¼',0xbd:'½',0xbe:'¾',0xbf:'¿',0xc0:'À',0xc1:'Á',0xc2:'Â',0xc3:'Ã',0xc4:'Ä',0xc5:'Å',0xc6:'Æ',0xc7:'Ç',0xc8:'È',0xc9:'É',0xca:'Ê',0xcb:'Ë',0xcc:'Ì',0xcd:'Í',0xce:'Î',0xcf:'Ï',0xd0:'Ð',0xd1:'Ñ',0xd2:'Ò',0xd3:'Ó',0xd4:'Ô',0xd5:'Õ',0xd6:'Ö',0xd7:'×',0xd8:'Ø',0xd9:'Ù',0xda:'Ú',0xdb:'Û',0xdc:'Ü',0xdd:'Ý',0xde:'Þ',0xdf:'ß',0xe0:'à',0xe1:'á',0xe2:'â',0xe3:'ã',0xe4:'ä',0xe5:'å',0xe6:'æ',0xe7:'ç',0xe8:'è',0xe9:'é',0xea:'ê',0xeb:'ë',0xec:'ì',0xed:'í',0xee:'î',0xef:'ï',0xf0:'ð',0xf1:'ñ',0xf2:'ò',0xf3:'ó',0xf4:'ô',0xf5:'õ',0xf6:'ö',0xf7:'÷',0xf8:'ø',0xf9:'ù',0xfa:'ú',0xfb:'û',0xfc:'ü',0xfd:'ý',0xfe:'þ',0xff:'ÿ'});
|
|
|
|
|
func (_ddc *simpleMapping )NewEncoder ()SimpleEncoder {_ddc ._bbgd .Do (_ddc .init );return &simpleEncoding {_aed :_ddc ._ffge ,_cga :_ddc ._ebcf ,_ggec :_ddc ._aedb };};var _dad =_da .NewByteRuneMap (map[byte ]rune {0x20:' ',0x21:'!',0x22:'∀',0x23:'#',0x24:'∃',0x25:'%',0x26:'&',0x27:'∋',0x28:'(',0x29:')',0x2a:'∗',0x2b:'+',0x2c:',',0x2d:'−',0x2e:'.',0x2f:'/',0x30:'0',0x31:'1',0x32:'2',0x33:'3',0x34:'4',0x35:'5',0x36:'6',0x37:'7',0x38:'8',0x39:'9',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:'_',0x60:'\uf8e5',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:'∼',0xa0:'€',0xa1:'ϒ',0xa2:'′',0xa3:'≤',0xa4:'⁄',0xa5:'∞',0xa6:'ƒ',0xa7:'♣',0xa8:'♦',0xa9:'♥',0xaa:'♠',0xab:'↔',0xac:'←',0xad:'↑',0xae:'→',0xaf:'↓',0xb0:'°',0xb1:'±',0xb2:'″',0xb3:'≥',0xb4:'×',0xb5:'∝',0xb6:'∂',0xb7:'•',0xb8:'÷',0xb9:'≠',0xba:'≡',0xbb:'≈',0xbc:'…',0xbd:'\uf8e6',0xbe:'\uf8e7',0xbf:'↵',0xc0:'ℵ',0xc1:'ℑ',0xc2:'ℜ',0xc3:'℘',0xc4:'⊗',0xc5:'⊕',0xc6:'∅',0xc7:'∩',0xc8:'∪',0xc9:'⊃',0xca:'⊇',0xcb:'⊄',0xcc:'⊂',0xcd:'⊆',0xce:'∈',0xcf:'∉',0xd0:'∠',0xd1:'∇',0xd2:'\uf6da',0xd3:'\uf6d9',0xd4:'\uf6db',0xd5:'∏',0xd6:'√',0xd7:'⋅',0xd8:'¬',0xd9:'∧',0xda:'∨',0xdb:'⇔',0xdc:'⇐',0xdd:'⇑',0xde:'⇒',0xdf:'⇓',0xe0:'◊',0xe1:'〈',0xe2:'\uf8e8',0xe3:'\uf8e9',0xe4:'\uf8ea',0xe5:'∑',0xe6:'\uf8eb',0xe7:'\uf8ec',0xe8:'\uf8ed',0xe9:'\uf8ee',0xea:'\uf8ef',0xeb:'\uf8f0',0xec:'\uf8f1',0xed:'\uf8f2',0xee:'\uf8f3',0xef:'\uf8f4',0xf1:'〉',0xf2:'∫',0xf3:'⌠',0xf4:'\uf8f5',0xf5:'⌡',0xf6:'\uf8f6',0xf7:'\uf8f7',0xf8:'\uf8f8',0xf9:'\uf8f9',0xfa:'\uf8fa',0xfb:'\uf8fb',0xfc:'\uf8fc',0xfd:'\uf8fd',0xfe:'\uf8fe'});
|
|
|
|
|
func NewStandardEncoder ()SimpleEncoder {return _aeec .NewEncoder ()};func _fd (_gcc *charCodeGlyphNameMap )*_fa .PdfObjectArray {if _gcc .Length ()==0{return nil ;};_bfb :=make ([]CharCode ,0,_gcc .Length ());_gcc .Range (func (_ea CharCode ,_ GlyphName )(_ebe bool ){_bfb =append (_bfb ,_ea );
|
|
|
|
|
return false });_db .Slice (_bfb ,func (_cda ,_dec int )bool {return _bfb [_cda ]< _bfb [_dec ]});_bac :=_bfb [0];_bba ,_ :=_gcc .Read (_bac );_agd :=[]_fa .PdfObject {_fa .MakeInteger (int64 (_bac )),_fa .MakeName (string (_bba ))};for _ ,_fe :=range _bfb [1:]{if _fe ==_bac +1{_bba ,_ =_gcc .Read (_fe );
|
|
|
|
|
_agd =append (_agd ,_fa .MakeName (string (_bba )));}else {_agd =append (_agd ,_fa .MakeInteger (int64 (_fe )));};_bac =_fe ;};return _fa .MakeArray (_agd ...);};func (_bda CMapEncoder )String ()string {return _bda ._cgf };const (_bcg ="\u004d\u0061\u0063\u0045\u0078\u0070\u0065\u0072\u0074\u0045\u006e\u0063o\u0064\u0069\u006e\u0067";
|
|
|
|
|
_ggb ="\u004d\u0061c\u0052\u006f\u006da\u006e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";);func (_ddg *simpleEncoder )Reset (){};func (_aaa *IdentityEncoder )GlyphToRune (glyph GlyphName )(rune ,bool ){if glyph =="\u0073\u0070\u0061c\u0065"{return ' ',true ;
|
|
|
|
|
}else if !_bb .HasPrefix (string (glyph ),"\u0075\u006e\u0069")||len (glyph )!=7{return 0,false ;};_dgf ,_aadb :=_cc .ParseUint (string (glyph [3:]),16,16);if _aadb !=nil {return 0,false ;};return rune (_dgf ),true ;};func NewMacRomanEncoder ()SimpleEncoder {return _ffc .NewEncoder ()};
|
|
|
|
|
var _gga =_da .NewStringRuneMap (map[string ]rune {"\u002en\u006f\u0074\u0064\u0065\u0066":0xfffd,"\u0032\u0035\u0030\u0061":0x250a,"\u0032\u0035\u0030\u0062":0x250b,"\u0032\u0035\u0030\u0064":0x250d,"\u0032\u0035\u0030\u0065":0x250e,"\u0032\u0035\u0030\u0066":0x250f,"\u0032\u0035\u0031\u0061":0x251a,"\u0032\u0035\u0031\u0062":0x251b,"\u0032\u0035\u0031\u0064":0x251d,"\u0032\u0035\u0031\u0065":0x251e,"\u0032\u0035\u0031\u0066":0x251f,"\u0032\u0035\u0032\u0061":0x252a,"\u0032\u0035\u0032\u0062":0x252b,"\u0032\u0035\u0032\u0064":0x252d,"\u0032\u0035\u0032\u0065":0x252e,"\u0032\u0035\u0032\u0066":0x252f,"\u0032\u0035\u0033\u0061":0x253a,"\u0032\u0035\u0033\u0062":0x253b,"\u0032\u0035\u0033\u0064":0x253d,"\u0032\u0035\u0033\u0065":0x253e,"\u0032\u0035\u0033\u0066":0x253f,"\u0032\u0035\u0034\u0061":0x254a,"\u0032\u0035\u0034\u0062":0x254b,"\u0032\u0035\u0034\u0063":0x254c,"\u0032\u0035\u0034\u0064":0x254d,"\u0032\u0035\u0034\u0065":0x254e,"\u0032\u0035\u0034\u0066":0x254f,"\u0032\u0035\u0036\u0064":0x256d,"\u0032\u0035\u0036\u0065":0x256e,"\u0032\u0035\u0036\u0066":0x256f,"\u0032\u0035\u0037\u0061":0x257a,"\u0032\u0035\u0037\u0062":0x257b,"\u0032\u0035\u0037\u0063":0x257c,"\u0032\u0035\u0037\u0064":0x257d,"\u0032\u0035\u0037\u0065":0x257e,"\u0032\u0035\u0037\u0066":0x257f,"\u0041":0x0041,"\u0041\u0045":0x00c6,"\u0041E\u0061\u0063\u0075\u0074\u0065":0x01fc,"\u0041\u0045\u006d\u0061\u0063\u0072\u006f\u006e":0x01e2,"\u0041E\u0073\u006d\u0061\u006c\u006c":0xf7e6,"\u0041\u0050\u004c\u0062\u006f\u0078\u0071\u0075\u0065s\u0074\u0069\u006f\u006e":0x2370,"\u0041\u0050\u004c\u0062\u006f\u0078\u0075\u0070\u0063\u0061\u0072\u0065\u0074":0x2353,"\u0041P\u004cn\u006f\u0074\u0062\u0061\u0063\u006b\u0073\u006c\u0061\u0073\u0068":0x2340,"A\u0050\u004c\u006e\u006f\u0074\u0073\u006c\u0061\u0073\u0068":0x233f,"\u0041\u0061\u0063\u0075\u0074\u0065":0x00c1,"A\u0061\u0063\u0075\u0074\u0065\u0073\u006d\u0061\u006c\u006c":0xf7e1,"\u0041\u0062\u0072\u0065\u0076\u0065":0x0102,"A\u0062\u0072\u0065\u0076\u0065\u0061\u0063\u0075\u0074\u0065":0x1eae,"\u0041\u0062\u0072\u0065\u0076\u0065\u0063\u0079\u0072i\u006c\u006c\u0069\u0063":0x04d0,"\u0041\u0062\u0072\u0065\u0076\u0065\u0064\u006f\u0074b\u0065\u006c\u006f\u0077":0x1eb6,"A\u0062\u0072\u0065\u0076\u0065\u0067\u0072\u0061\u0076\u0065":0x1eb0,"\u0041b\u0072e\u0076\u0065\u0068\u006f\u006f\u006b\u0061\u0062\u006f\u0076\u0065":0x1eb2,"A\u0062\u0072\u0065\u0076\u0065\u0074\u0069\u006c\u0064\u0065":0x1eb4,"\u0041\u0063\u0061\u0072\u006f\u006e":0x01cd,"\u0041c\u0069\u0072\u0063\u006c\u0065":0x24b6,"A\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078":0x00c2,"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0061\u0063\u0075\u0074\u0065":0x1ea4,"\u0041\u0063\u0069\u0072cu\u006d\u0066\u006c\u0065\u0078\u0064\u006f\u0074\u0062\u0065\u006c\u006f\u0077":0x1eac,"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0067\u0072\u0061\u0076\u0065":0x1ea6,"A\u0063i\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078h\u006f\u006f\u006b\u0061bo\u0076\u0065":0x1ea8,"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0073\u006d\u0061\u006c\u006c":0xf7e2,"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0074\u0069\u006c\u0064\u0065":0x1eaa,"\u0041\u0063\u0075t\u0065":0xf6c9,"\u0041\u0063\u0075\u0074\u0065\u0073\u006d\u0061\u006c\u006c":0xf7b4,"\u0041d\u0062\u006c\u0067\u0072\u0061\u0076e":0x0200,"\u0041d\u0069\u0065\u0072\u0065\u0073\u0069s":0x00c4,"\u0041\u0064\u0069\u0065\u0072\u0065\u0073\u0069\u0073\u0063\u0079\u0072i\u006c\u006c\u0069\u0063":0x04d2,"\u0041d\u0069e\u0072\u0065\u0073\u0069\u0073\u006d\u0061\u0063\u0072\u006f\u006e":0x01de,"\u0041\u0064\u0069\u0065\u0072\u0065\u0073\u0069\u0073s\u006d\u0061\u006c\u006c":0xf7e4,"\u0041d\u006f\u0074\u0062\u0065\u006c\u006fw":0x1ea0,"\u0041\u0064\u006f\u0074\u006d\u0061\u0063\u0072\u006f\u006e":0x01e0,"\u0041\u0067\u0072\u0061\u0076\u0065":0x00c0,"A\u0067\u0072\u0061\u0076\u0065\u0073\u006d\u0061\u006c\u006c":0xf7e0,"\u0041\u0068\u006f\u006f\u006b\u0061\u0062\u006f\u0076\u0065":0x1ea2,"A\u0069\u0065\u0063\u0079\u0072\u0069\u006c\u006c\u0069\u
|
|
|
|
|
type charCodeGlyphNameMap struct{_cb map[CharCode ]GlyphName ;_bc _b .RWMutex ;};type SimpleEncoder interface{TextEncoder ;BaseName ()string ;Charcodes ()[]CharCode ;};func (_adfd *IdentityEncoder )ToPdfObject ()_fa .PdfObject {if _adfd ._cgfe !=""{return _fa .MakeName (_adfd ._cgfe );
|
|
|
|
|
};return _fa .MakeNull ();};func NewZapfDingbatsEncoder ()SimpleEncoder {return _cgdb .NewEncoder ()};func (_becb UTF16Encoder )Decode (raw []byte )string {return _ag .UTF16ToString (raw )};func NewCustomSimpleTextEncoder (encoding ,differences map[CharCode ]GlyphName )(SimpleEncoder ,error ){if len (encoding )==0{return nil ,_g .New ("e\u006d\u0070\u0074\u0079 c\u0075s\u0074\u006f\u006d\u0020\u0065n\u0063\u006f\u0064\u0069\u006e\u0067");
|
|
|
|
|
};const _gge ="\u0063\u0075\u0073\u0074\u006f\u006d";_cafd :=_da .MakeByteRuneMap (len (encoding ));for _ceff ,_bcaa :=range encoding {_edad ,_eeb :=GlyphToRune (_bcaa );if !_eeb {_ccd .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0055\u006e\u006b\u006e\u006f\u0077n\u0020\u0067\u006c\u0079\u0070\u0068\u002e\u0020\u0025\u0071",_bcaa );
|
|
|
|
|
continue ;};_cafd .Write (byte (_ceff ),_edad );};_ged :=_cfa (_gge ,_cafd );if len (differences )!=0{_ged =ApplyDifferences (_ged ,differences );};return _ged ,nil ;};func (_ecee *TrueTypeFontEncoder )Decode (raw []byte )string {return _fbf (_ecee ,raw )};
|
|
|
|
|
func (_ga *charCodeGlyphNameMap )Write (k CharCode ,v GlyphName ){_ga ._bc .Lock ();defer _ga ._bc .Unlock ();_ga ._cb [k ]=v ;};var (_ SimpleEncoder =(*simpleEncoding )(nil );_ _de .Encoding =(*simpleEncoding )(nil ););func (_efc *IdentityEncoder )Encode (str string )[]byte {return _fgc (_efc ,str )};
|
|
|
|
|
func (_cgc CMapEncoder )RuneToCharcode (r rune )(CharCode ,bool ){if _cgc ._deg ==nil {return 0,false ;};_dg ,_bgb :=_cgc ._deg .StringToCID (string (r ));if !_bgb {return 0,false ;};if _cgc ._fc !=nil {_ccb ,_eg :=_cgc ._fc .CIDToCharcode (_dg );if !_eg {return 0,false ;
|
|
|
|
|
};return CharCode (_ccb ),true ;};return CharCode (_dg ),true ;};func _ad (_ge ...charCodeGlyphNameTuple )*charCodeGlyphNameMap {_gc :=map[CharCode ]GlyphName {};for _ ,_dac :=range _ge {_gc [_dac .CharCode ]=_dac .GlyphName ;};return &charCodeGlyphNameMap {_cb :_gc };
|
|
|
|
|
};func _cfa (_cdag string ,_efcf *_da .ByteRuneMap )SimpleEncoder {_gdac :=&simpleEncoding {_aed :_cdag ,_ggec :_efcf ,_cga :_da .MakeRuneByteMap (_efcf .Length ())};_gdac ._ggec .Range (func (_fgde byte ,_efec rune )(_cfae bool ){if _gaaeb ,_eae :=_gdac ._cga .Read (_efec );
|
|
|
|
|
!_eae ||_fgde < _gaaeb {_gdac ._cga .Write (_efec ,_fgde );};return false ;});return _gdac ;};type charCodeGlyphNameTuple struct{CharCode CharCode ;GlyphName GlyphName ;};func NewMacExpertEncoder ()SimpleEncoder {return _feb .NewEncoder ()};func NewTrueTypeFontEncoder (runeToGIDMap map[rune ]GID )*TrueTypeFontEncoder {_ede :=_da .MakeRuneUint16Map (len (runeToGIDMap ));
|
|
|
|
|
for _adfc ,_aaf :=range runeToGIDMap {_ede .Write (_adfc ,uint16 (_aaf ));};return &TrueTypeFontEncoder {_feaa :_ede ,_bdaa :_da .MakeRuneSet (0)};};type simpleEncoding struct{_aed string ;_cga *_da .RuneByteMap ;_ggec *_da .ByteRuneMap ;_cdge *_da .RuneSet ;
|
|
|
|
|
};func _bfef (_geg string ,_cged *_da .ByteRuneMap )*simpleMapping {return &simpleMapping {_ffge :_geg ,_aedb :_cged };};func (_bfa *charCodeGlyphNameMap )Delete (key CharCode ){_bfa ._bc .Lock ();defer _bfa ._bc .Unlock ();delete (_bfa ._cb ,key );};func (_faa *differencesEncoding )CharcodeToRune (code CharCode )(rune ,bool ){if code > 0xff{return MissingCodeRune ,false ;
|
|
|
|
|
};_ffd :=byte (code );if _agfd ,_gbf :=_faa ._agcc .Read (_ffd );_gbf {return _agfd ,true ;};return _faa ._cgce .CharcodeToRune (code );};func FromFontDifferences (diffList *_fa .PdfObjectArray )(map[CharCode ]GlyphName ,error ){_bdgg :=make (map[CharCode ]GlyphName );
|
|
|
|
|
var _fg CharCode ;for _ ,_fce :=range diffList .Elements (){switch _bde :=_fce .(type ){case *_fa .PdfObjectInteger :_fg =CharCode (*_bde );case *_fa .PdfObjectName :_df :=string (*_bde );_bdgg [_fg ]=GlyphName (_df );_fg ++;default:_ccd .Log .Debug ("\u0045\u0052\u0052OR\u003a\u0020\u0042\u0061\u0064\u0020\u0074\u0079\u0070\u0065\u002e\u0020\u006f\u0062\u006a\u003d\u0025\u0073",_fce );
|
|
|
|
|
return nil ,_fa .ErrTypeError ;};};return _bdgg ,nil ;};func (_baba *TrueTypeFontEncoder )ToPdfObject ()_fa .PdfObject {return _fa .MakeNull ()};func (_ae CMapEncoder )Encode (str string )[]byte {if _ae ._deg ==nil {return []byte {};};if _ae ._deg .NBits ()==8{return _bca (_ae ,str );
|
|
|
|
|
};return _fgc (_ae ,str );};func (_ecf *differencesEncoding )Decode (raw []byte )string {_bbg :=make ([]rune ,0,len (raw ));for _ ,_bag :=range raw {_cef ,_ :=_ecf .CharcodeToRune (CharCode (_bag ));_bbg =append (_bbg ,_cef );};return string (_bbg );};
|
|
|
|
|
func (_dc *charCodeGlyphNameMap )RangeDelete (f func (_bf CharCode ,_aa GlyphName )(_ec bool ,_cg bool )){_dc ._bc .Lock ();defer _dc ._bc .Unlock ();for _ac ,_ef :=range _dc ._cb {_eda ,_def :=f (_ac ,_ef );if _eda {delete (_dc ._cb ,_ac );};if _def {break ;
|
|
|
|
|
};};};const _dfd =10;func ApplyDifferences (base SimpleEncoder ,differences map[CharCode ]GlyphName )SimpleEncoder {if len (differences )==0{return base ;};_dca :=make ([]charCodeGlyphNameTuple ,len (differences ));var _afe int ;for _aec ,_fgg :=range differences {_dca [_afe ]=charCodeGlyphNameTuple {CharCode :_aec ,GlyphName :_fgg };
|
|
|
|
|
_afe ++;};_gdd :=&differencesEncoding {_cgce :base ,_dbdf :_ad (_dca ...),_agcc :_da .MakeByteRuneMap (len (differences )),_edb :_da .MakeRuneByteMap (len (differences ))};if _geb ,_gfa :=base .(*differencesEncoding );_gfa {_fae :=make (map[CharCode ]GlyphName );
|
|
|
|
|
_geb ._dbdf .Range (func (_fgd CharCode ,_cad GlyphName )(_bdb bool ){_fae [_fgd ]=_cad ;return false });_gdd ._dbdf .Range (func (_deca CharCode ,_adf GlyphName )(_aca bool ){_fae [_deca ]=_adf ;return false });differences =_fae ;};for _cbg ,_dbb :=range differences {_bdae :=byte (_cbg );
|
|
|
|
|
_cag ,_bad :=GlyphToRune (_dbb );if _bad {_gdd ._edb .Write (_cag ,_bdae );}else {_ccd .Log .Debug ("\u0045R\u0052\u004fR\u003a\u0020\u004e\u006f \u006d\u0061\u0074c\u0068\u0020\u0066\u006f\u0072\u0020\u0067\u006c\u0079ph\u003d\u0025\u0071 \u0064\u0069f\u0066\u0065\u0072\u0065\u006e\u0063e\u0073\u003d%\u002b\u0076",_dbb ,differences );
|
|
|
|
|
};_gdd ._agcc .Write (_bdae ,_cag );};return _gdd ;};func _fgc (_ggg TextEncoder ,_fccf string )[]byte {_cebe :=[]rune (_fccf );_acd :=make ([]byte ,0,len (_cebe )*2);for _ ,_caf :=range _cebe {_egb ,_efe :=_ggg .RuneToCharcode (_caf );if !_efe {_ccd .Log .Debug ("F\u0061\u0069\u006c\u0065\u0064\u0020\u0074\u006f\u0020\u006d\u0061\u0070\u0020\u0072\u0075\u006e\u0065\u0020t\u006f\u0020\u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065. \u0072\u0075\u006ee\u003d%\u002b\u0071",_caf );
|
|
|
|
|
continue ;};var _aad [2]byte ;_gg .BigEndian .PutUint16 (_aad [:],uint16 (_egb ));_acd =append (_acd ,_aad [:]...);};return _acd ;};func GlyphToRune (glyph GlyphName )(rune ,bool ){_eag :=string (glyph );if _bb .Contains (_eag ,"\u002e"){_egbc :=_dbc .FindStringSubmatch (_eag );
|
|
|
|
|
if _egbc !=nil {_eag =_egbc [1];};};if _gcf ,_deb :=_gbg .Read (_eag );_deb {_eag =_gcf ;};if _agcg ,_acae :=_gga .Read (_eag );_acae {return _agcg ,true ;};if _afg ,_babb :=_eee .Read (_eag );_babb {return _afg ,true ;};if _fab :=_gfe .FindStringSubmatch (_eag );
|
|
|
|
|
_fab !=nil {_cede ,_afb :=_cc .ParseInt (_fab [1],16,32);if _afb ==nil {return rune (_cede ),true ;};};if _cdg :=_fcd .FindStringSubmatch (_eag );_cdg !=nil {_cbf ,_fcb :=_cc .Atoi (_cdg [1]);if _fcb ==nil {return rune (_cbf ),true ;};};return rune (0),false ;
|
|
|
|
|
};type GID uint16 ;func RuneToString (r rune )string {if _agcce ,_efg :=_dce .Read (r );_efg {return _agcce ;};return string (r );};func (_be *differencesEncoding )ToPdfObject ()_fa .PdfObject {_gfg :=_fa .MakeDict ();_gfg .Set ("\u0054\u0079\u0070\u0065",_fa .MakeName ("\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067"));
|
|
|
|
|
_gfg .Set ("\u0042\u0061\u0073e\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067",_be ._cgce .ToPdfObject ());if _gag :=_fd (_be ._dbdf );_gag !=nil {_gfg .Set ("D\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073",_gag );}else {_ccd .Log .Debug ("W\u0041\u0052\u004e\u003a\u0020\u0066\u006f\u006e\u0074\u0020\u0044\u0069\u0066\u0066\u0065\u0072\u0065\u006e\u0063\u0065\u0073\u0020\u0061\u0072\u0072\u0061y\u0020i\u0073\u0020\u006e\u0069l\u002e\u0020O\u0075\u0074\u0070\u0075\u0074\u0020\u006d\u0061\u0079\u0020\u0062\u0065\u0020\u0069\u006e\u0063\u006f\u0072\u0072\u0065\u0063\u0074\u002e");
|
|
|
|
|
};return _fa .MakeIndirectObject (_gfg );};var (_gca =_bfef (_fff ,_dad );_cgdb =_bfef (_bgbb ,_bea ););type simpleEncoder struct{_dgc *_da .RuneByteMap };type IdentityEncoder struct{_cgfe string ;_dcd *_da .RuneSet ;};var _gbg =_da .NewStringsMap (_cedd [:]);
|
|
|
|
|
func (_aac simpleDecoder )Reset (){};var (_fcd =_e .MustCompile ("\u005e\u005b\u0041\u002dZa\u002d\u007a\u005d\u0028\u005c\u0064\u007b\u0031\u002c\u0035\u007d\u0029\u0024");_gfe =_e .MustCompile ("\u005e\u0075\u006e\u0069\u0028\u005b\u005c\u0064\u0041\u002d\u0046\u005d{\u0034\u007d\u0029\u0024");
|
|
|
|
|
_dbc =_e .MustCompile ("\u005e\u0028\u005cw\u002b\u0029\u005c\u002e\u005c\u0077\u002b\u0024"););var _cedd =[...]_da .StringsTuple {{Key :"\u0066\u005f\u0066",Value :"\u0066\u0066"},{Key :"\u0066\u005f\u0066_\u0069",Value :"\u0066\u0066\u0069"},{Key :"\u0066\u005f\u0066_\u006c",Value :"\u0066\u0066\u006c"},{Key :"\u0066\u005f\u0069",Value :"\u0066\u0069"},{Key :"\u0066\u005f\u006c",Value :"\u0066\u006c"},{Key :"a\u0073\u0063\u0072\u0069\u0070\u0074\u0074\u0075\u0072\u006e",Value :"\u0041\u0045\u006d\u0061\u0063\u0072\u006f\u006e"},{Key :"\u006d\u0074\u0075r\u006e\u0064\u0065\u0073\u0063\u0065\u006e\u0064",Value :"\u0041d\u0062\u006c\u0067\u0072\u0061\u0076e"},{Key :"\u0061\u0074\u0075r\u006e",Value :"\u0041\u0064\u006f\u0074\u006d\u0061\u0063\u0072\u006f\u006e"},{Key :"n\u006c\u0066\u0074\u006c\u0066\u0074\u0068\u006f\u006f\u006b",Value :"\u0041\u0069\u006e\u0076\u0065\u0072\u0074\u0065\u0064b\u0072\u0065\u0076\u0065"},{Key :"\u0075p\u0041\u006c\u0070\u0068\u0061",Value :"\u0041\u006c\u0070h\u0061"},{Key :"\u0049s\u006d\u0061\u006c\u006c\u0063\u0061p",Value :"\u0041\u0072\u0069\u006e\u0067\u0061\u0063\u0075\u0074\u0065"},{Key :"\u0043\u0062\u0062",Value :"\u0042\u0062\u0062\u0043"},{Key :"\u0043\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u0043"},{Key :"\u0048\u0062\u0062",Value :"\u0042\u0062\u0062\u0048"},{Key :"\u0048\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u0048"},{Key :"\u004e\u0062\u0062",Value :"\u0042\u0062\u0062\u004e"},{Key :"\u004e\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u004e"},{Key :"\u0050\u0062\u0062",Value :"\u0042\u0062\u0062\u0050"},{Key :"\u0050\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u0050"},{Key :"\u0051\u0062\u0062",Value :"\u0042\u0062\u0062\u0051"},{Key :"\u0051\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u0051"},{Key :"\u0052\u0062\u0062",Value :"\u0042\u0062\u0062\u0052"},{Key :"\u0052\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u0052"},{Key :"\u005a\u0062\u0062",Value :"\u0042\u0062\u0062\u005a"},{Key :"\u005a\u0064\u0062\u006c\u0073\u0074\u0072\u0075\u0063\u006b",Value :"\u0042\u0062\u0062\u005a"},{Key :"\u0075\u0070\u0042\u0065\u0074\u0061",Value :"\u0042\u0065\u0074\u0061"},{Key :"\u004f\u0049",Value :"\u0042t\u006f\u0070\u0062\u0061\u0072"},{Key :"\u0048m\u0061\u0063\u0072\u006f\u006e",Value :"\u0043\u0061\u0063\u0075\u0074\u0065"},{Key :"\u0043\u0064\u006f\u0074",Value :"\u0043\u0064\u006f\u0074\u0061\u0063\u0063\u0065\u006e\u0074"},{Key :"\u0043\u0068\u0065",Value :"C\u0068\u0065\u0063\u0079\u0072\u0069\u006c\u006c\u0069\u0063"},{Key :"\u0061f\u0069\u0069\u0031\u0030\u0030\u00341",Value :"C\u0068\u0065\u0063\u0079\u0072\u0069\u006c\u006c\u0069\u0063"},{Key :"l\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078",Value :"C\u0068e\u0064\u0065\u0073\u0063\u0065\u006e\u0064\u0065r\u0063\u0079\u0072\u0069ll\u0069\u0063"},{Key :"\u0075\u0070\u0043h\u0069",Value :"\u0043\u0068\u0069"},{Key :"\u0079\u0075\u0073\u0062\u0069\u0067",Value :"\u0043\u0068\u0069"},{Key :"\u0067\u0063\u0075\u0072\u0073\u0069\u0076\u0065",Value :"\u0044\u005a"},{Key :"\u0047\u0062\u0061\u0072",Value :"\u0044Z\u0063\u0061\u0072\u006f\u006e"},{Key :"\u0044\u0073\u006c\u0061\u0073\u0068",Value :"\u0044\u0063\u0072\u006f\u0061\u0074"},{Key :"\u0044\u0065",Value :"\u0044\u0065\u0063\u0079\u0072\u0069\u006c\u006c\u0069\u0063"},{Key :"\u0061f\u0069\u0069\u0031\u0030\u0030\u00321",Value :"\u0044\u0065\u0063\u0079\u0072\u0069\u006c\u006c\u0069\u0063"},{Key :"\u004b\u0068\u0061\u0072\u0074\u0064\u0065\u0073",Value :"\u0044e\u0069\u0063\u006f\u0070\u0074\u0069c"},{Key :"\u0069n\u0063\u0072\u0065\u006d\u0065\u006et",Value :"\u0044\u0065\u006ct\u0061"},{Key :"\u0075p\u0044\u0065\u006c\u0074\u0061",Value :"\u0044\u0065\u006c\u0074\u0061\u0067\u0072\u0065\u0065\u006b"},{Key :"\u0065\u0073\u0068\u006c\u006f\u006f\u0070\u0072\u0065\u0076",Value :"\u0044\u0068\u006fo\u006b"},{Key :"\u006d\u0062\
|
|
|
|
|
func (_bbe *charCodeGlyphNameMap )Length ()int {_bbe ._bc .RLock ();defer _bbe ._bc .RUnlock ();return len (_bbe ._cb );};func (_ecgc *TrueTypeFontEncoder )RegisteredRunes ()[]rune {_dbdb :=make ([]rune ,_ecgc ._bdaa .Length ());_efgd :=0;_ecgc ._bdaa .Range (func (_bfad rune )(_afc bool ){_dbdb [_efgd ]=_bfad ;
|
|
|
|
|
_efgd ++;return false });return _dbdb ;};var _eee =_da .NewStringRuneMap (map[string ]rune {"\u0066\u005f\u0074":0xe000,"\u0066\u005f\u006a":0xe001,"\u0066\u005f\u0062":0xe002,"\u0066\u005f\u0068":0xe003,"\u0066\u005f\u006b":0xe004,"\u0074\u005f\u0074":0xe005,"\u0074\u005f\u0066":0xe006,"\u0066\u005f\u0066_\u006a":0xe007,"\u0066\u005f\u0066_\u0062":0xe008,"\u0066\u005f\u0066_\u0068":0xe009,"\u0066\u005f\u0066_\u006b":0xe00a,"\u0054\u005f\u0068":0xe00b});
|
|
|
|
|
func (_gccc *simpleEncoding )NewDecoder ()*_de .Decoder {return &_de .Decoder {Transformer :simpleDecoder {_gbfb :_gccc ._ggec }};};func (_gegg *simpleEncodersMap )Range (f func (_gegc string ,_egea func ()SimpleEncoder )(_ecfa bool )){_gegg ._ffgf .RLock ();
|
|
|
|
|
defer _gegg ._ffgf .RUnlock ();for _cbdc ,_gbc :=range _gegg ._gfdb {if f (_cbdc ,_gbc ){break ;};};};var _fbfb =_da .NewByteRuneMap (map[byte ]rune {0x1:'\x01',0x2:'\x02',0x3:'\x03',0x4:'\x04',0x5:'\x05',0x6:'\x06',0x7:'\a',0x8:'\b',0x9:'\t',0xa:'\n',0xb:'\v',0xc:'\f',0xd:'\r',0xe:'\x0e',0xf:'\x0f',0x10:'\x10',0x11:'\x11',0x12:'\x12',0x13:'\x13',0x14:'\x14',0x15:'\x15',0x16:'\x16',0x17:'\x17',0x18:'\x18',0x19:'\x19',0x1a:'\x1a',0x1b:'\x1b',0x1c:'\x1c',0x1d:'\x1d',0x1e:'\x1e',0x1f:'\x1f',0x20:' ',0x21:'!',0x22:'"',0x23:'#',0x24:'$',0x25:'%',0x26:'&',0x27:'\'',0x28:'(',0x29:')',0x2a:'*',0x2b:'+',0x2c:',',0x2d:'-',0x2e:'.',0x2f:'/',0x30:'0',0x31:'1',0x32:'2',0x33:'3',0x34:'4',0x35:'5',0x36:'6',0x37:'7',0x38:'8',0x39:'9',0x3a:':',0x3b:';',0x3c:'<',0x3d:'=',0x3e:'>',0x3f:'?',0x40:'@',0x41:'A',0x42:'B',0x43:'C',0x44:'D',0x45:'E',0x46:'F',0x47:'G',0x48:'H',0x49:'I',0x4a:'J',0x4b:'K',0x4c:'L',0x4d:'M',0x4e:'N',0x4f:'O',0x50:'P',0x51:'Q',0x52:'R',0x53:'S',0x54:'T',0x55:'U',0x56:'V',0x57:'W',0x58:'X',0x59:'Y',0x5a:'Z',0x5b:'[',0x5c:'\\',0x5d:']',0x5e:'^',0x5f:'_',0x60:'`',0x61:'a',0x62:'b',0x63:'c',0x64:'d',0x65:'e',0x66:'f',0x67:'g',0x68:'h',0x69:'i',0x6a:'j',0x6b:'k',0x6c:'l',0x6d:'m',0x6e:'n',0x6f:'o',0x70:'p',0x71:'q',0x72:'r',0x73:'s',0x74:'t',0x75:'u',0x76:'v',0x77:'w',0x78:'x',0x79:'y',0x7a:'z',0x7b:'{',0x7c:'|',0x7d:'}',0x7e:'~',0x7f:'\u007f',0x80:'Ä',0x81:'Å',0x82:'Ç',0x83:'É',0x84:'Ñ',0x85:'Ö',0x86:'Ü',0x87:'á',0x88:'à',0x89:'â',0x8a:'ä',0x8b:'ã',0x8c:'å',0x8d:'ç',0x8e:'é',0x8f:'è',0x90:'ê',0x91:'ë',0x92:'í',0x93:'ì',0x94:'î',0x95:'ï',0x96:'ñ',0x97:'ó',0x98:'ò',0x99:'ô',0x9a:'ö',0x9b:'õ',0x9c:'ú',0x9d:'ù',0x9e:'û',0x9f:'ü',0xa0:'†',0xa1:'°',0xa2:'¢',0xa3:'£',0xa4:'§',0xa5:'•',0xa6:'¶',0xa7:'ß',0xa8:'®',0xa9:'©',0xaa:'™',0xab:'´',0xac:'¨',0xad:'≠',0xae:'Æ',0xaf:'Ø',0xb0:'∞',0xb1:'±',0xb2:'≤',0xb3:'≥',0xb4:'¥',0xb5:'µ',0xb6:'∂',0xb7:'∑',0xb8:'∏',0xb9:'π',0xba:'∫',0xbb:'ª',0xbc:'º',0xbd:'Ω',0xbe:'æ',0xbf:'ø',0xc0:'¿',0xc1:'¡',0xc2:'¬',0xc3:'√',0xc4:'ƒ',0xc5:'≈',0xc6:'∆',0xc7:'«',0xc8:'»',0xc9:'…',0xca:'\u00a0',0xcb:'À',0xcc:'Ã',0xcd:'Õ',0xce:'Œ',0xcf:'œ',0xd0:'–',0xd1:'—',0xd2:'“',0xd3:'”',0xd4:'‘',0xd5:'’',0xd6:'÷',0xd7:'◊',0xd8:'ÿ',0xd9:'Ÿ',0xda:'⁄',0xdb:'€',0xdc:'‹',0xdd:'›',0xde:'fi',0xdf:'fl',0xe0:'‡',0xe1:'·',0xe2:'‚',0xe3:'„',0xe4:'‰',0xe5:'Â',0xe6:'Ê',0xe7:'Á',0xe8:'Ë',0xe9:'È',0xea:'Í',0xeb:'Î',0xec:'Ï',0xed:'Ì',0xee:'Ó',0xef:'Ô',0xf0:'\uf8ff',0xf1:'Ò',0xf2:'Ú',0xf3:'Û',0xf4:'Ù',0xf5:'ı',0xf6:'ˆ',0xf7:'˜',0xf8:'¯',0xf9:'˘',0xfa:'˙',0xfb:'˚',0xfc:'¸',0xfd:'˝',0xfe:'˛',0xff:'ˇ'});
|
|
|
|
|
type differencesEncoding struct{_cgce SimpleEncoder ;_dbdf *charCodeGlyphNameMap ;_agcc *_da .ByteRuneMap ;_edb *_da .RuneByteMap ;};func (_debb *simpleMapping )init (){_debb ._ebcf =_da .MakeRuneByteMap (_debb ._aedb .Length ());_debb ._aedb .Range (func (_bef byte ,_ggaf rune )(_bbede bool ){if _efeb ,_cbd :=_debb ._ebcf .Read (_ggaf );
|
|
|
|
|
!_cbd ||_bef < _efeb {_debb ._ebcf .Write (_ggaf ,_bef );};return false ;});};type UTF16Encoder struct{_fbc string };type CMapEncoder struct{_cgf string ;_fc *_eb .CMap ;_deg *_eb .CMap ;};func (_fbd *TrueTypeFontEncoder )RuneToCharcode (r rune )(CharCode ,bool ){_abg ,_fdc :=_fbd ._feaa .Read (r );
|
|
|
|
|
if !_fdc {_ccd .Log .Debug ("M\u0069\u0073\u0073\u0069\u006e\u0067 \u0072\u0075\u006e\u0065\u0020\u0025d\u0020\u0028\u0025\u002b\u0071\u0029\u0020f\u0072\u006f\u006d\u0020\u0065\u006e\u0063\u006f\u0064\u0069n\u0067",r ,r );return 0,false ;};_fbd ._bdaa .Write (r );
|
|
|
|
|
_cadg :=CharCode (_abg );return _cadg ,true ;};func (_gcb *TrueTypeFontEncoder )GlyphToCharcode (glyph GlyphName )(CharCode ,bool ){if len (glyph )==7&&glyph [0:3]=="\u0075\u006e\u0069"{var _becf uint16 ;_efgdc ,_cdc :=_dba .Sscanf (string (glyph ),"\u0075\u006e\u0069%\u0058",&_becf );
|
|
|
|
|
if _efgdc ==1&&_cdc ==nil {return _gcb .RuneToCharcode (rune (_becf ));};};if _bbad ,_cdbc :=_gga .Read (string (glyph ));_cdbc {return _gcb .RuneToCharcode (_bbad );};_ccd .Log .Debug ("\u0053\u0079\u006d\u0062\u006f\u006c\u0020\u0065\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u0020\u0065r\u0072\u006f\u0072\u003a\u0020\u0075\u006e\u0061\u0062\u006ce\u0020\u0074\u006f\u0020\u0066\u0069\u006e\u0064\u0020\u0067\u006c\u0079\u0070\u0068\u002d\u003e\u0063\u0068a\u0072\u0063\u006f\u0064\u0065\u0020e\u006e\u0074r\u0079\u0020(\u0025s\u0029",glyph );
|
|
|
|
|
return 0,false ;};func NewCMapEncoder (baseName string ,codeToCID ,cidToUnicode *_eb .CMap )CMapEncoder {return CMapEncoder {_cgf :baseName ,_fc :codeToCID ,_deg :cidToUnicode };};func (_cdgd *IdentityEncoder )RuneToGlyph (r rune )(GlyphName ,bool ){if r ==' '{return "\u0073\u0070\u0061c\u0065",true ;
|
|
|
|
|
};_fde :=GlyphName (_dba .Sprintf ("\u0075n\u0069\u0025\u002e\u0034\u0058",r ));return _fde ,true ;};func (_cefd *simpleEncoding )String ()string {return "\u0073i\u006dp\u006c\u0065\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067\u0028"+_cefd ._aed +"\u0029";
|
|
|
|
|
};func init (){RegisterSimpleEncoding (_bcg ,NewMacExpertEncoder );RegisterSimpleEncoding (_ggb ,NewMacRomanEncoder );};func (_dge CMapEncoder )ToPdfObject ()_fa .PdfObject {if _dge ._cgf !=""{return _fa .MakeName (_dge ._cgf );};return _fa .MakeNull ();
|
|
|
|
|
};type TextEncoder interface{String ()string ;Encode (_fbed string )[]byte ;Decode (_fcc []byte )string ;RuneToCharcode (_bgc rune )(CharCode ,bool );CharcodeToRune (_aeg CharCode )(rune ,bool );ToPdfObject ()_fa .PdfObject ;};type simpleDecoder struct{_gbfb *_da .ByteRuneMap };
|
|
|
|
|
func (_dag *differencesEncoding )RuneToCharcode (r rune )(CharCode ,bool ){if _daa ,_bbga :=_dag ._edb .Read (r );_bbga {return CharCode (_daa ),true ;};return _dag ._cgce .RuneToCharcode (r );};func (_fca *differencesEncoding )Charcodes ()[]CharCode {_bfd :=_fca ._cgce .Charcodes ();
|
|
|
|
|
_eac :=true ;_abe :=make (map[CharCode ]struct{},len (_bfd ));for _ ,_eeg :=range _bfd {_abe [_eeg ]=struct{}{};};_fca ._agcc .Range (func (_agcd byte ,_gdc rune )(_eea bool ){_fec :=CharCode (_agcd );if _ ,_gfd :=_abe [_fec ];!_gfd {_bfd =append (_bfd ,_fec );
|
|
|
|
|
_eac =false ;};return false ;});if !_eac {_db .Slice (_bfd ,func (_agca ,_bfg int )bool {return _bfd [_agca ]< _bfd [_bfg ]});};return _bfd ;};func (_ca *charCodeGlyphNameMap )Range (f func (_agf CharCode ,_add GlyphName )(_dd bool )){_ca ._bc .RLock ();
|
|
|
|
|
defer _ca ._bc .RUnlock ();for _agc ,_cd :=range _ca ._cb {if f (_agc ,_cd ){break ;};};};func init (){RegisterSimpleEncoding (_fff ,NewSymbolEncoder );RegisterSimpleEncoding (_bgbb ,NewZapfDingbatsEncoder );};const (_fdb ="\u0050\u0064\u0066\u0044\u006f\u0063\u0045\u006e\u0063o\u0064\u0069\u006e\u0067";
|
|
|
|
|
_befd ="\u0053\u0074a\u006e\u0064\u0061r\u0064\u0045\u006e\u0063\u006f\u0064\u0069\u006e\u0067";);func (_abec simpleDecoder )Transform (dst ,src []byte ,_ bool )(_acg ,_agcca int ,_ error ){for len (src )!=0{_cdb :=src [0];src =src [1:];_ebee ,_aebb :=_abec ._gbfb .Read (_cdb );
|
|
|
|
|
if !_aebb {_ebee =MissingCodeRune ;};if _c .RuneLen (_ebee )> len (dst ){return _acg ,_agcca ,_a .ErrShortDst ;};_beb :=_c .EncodeRune (dst ,_ebee );dst =dst [_beb :];_agcca ++;_acg +=_beb ;};return _acg ,_agcca ,nil ;};func (_gec *charCodeGlyphNameMap )Read (key CharCode )(GlyphName ,bool ){_gec ._bc .RLock ();
|
|
|
|
|
defer _gec ._bc .RUnlock ();_bg ,_bdg :=_gec ._cb [key ];return _bg ,_bdg ;};func (_dfb *simpleEncoding )RuneToCharcode (r rune )(CharCode ,bool ){_gaf ,_cade :=_dfb ._cga .Read (r );if _dfb ._cdge ==nil {_dfb ._cdge =_da .MakeRuneSet (1);};_dfb ._cdge .Write (r );
|
|
|
|
|
return CharCode (_gaf ),_cade ;};var (_dda =_bfef (_fdb ,_daca );_aeec =_bfef (_befd ,_dea ););func _fbf (_aeeb TextEncoder ,_cfd []byte )string {_ece :=make ([]rune ,0,len (_cfd )/2+len (_cfd )%2);for len (_cfd )> 0{if len (_cfd )==1{_cfd =[]byte {_cfd [0],0};
|
|
|
|
|
};_aeb :=CharCode (_gg .BigEndian .Uint16 (_cfd [:]));_cfd =_cfd [2:];_gda ,_afd :=_aeeb .CharcodeToRune (_aeb );if !_afd {_ccd .Log .Debug ("\u0046a\u0069\u006ce\u0064\u0020\u0074\u006f \u006d\u0061\u0070 \u0063\u0068\u0061\u0072\u0063\u006f\u0064\u0065\u0020to\u0020\u0072\u0075n\u0065\u002e \u0063\u0068\u0061\u0072\u0063\u006fd\u0065\u003d%\u0023\u0078",_aeb );
|
|
|
|
|
continue ;};_ece =append (_ece ,_gda );};return string (_ece );};func init (){RegisterSimpleEncoding (_fdb ,NewPdfDocEncoder );RegisterSimpleEncoding (_befd ,NewStandardEncoder );};func (_ebge *simpleEncoding )CharcodeToRune (code CharCode )(rune ,bool ){if code > 0xff{return MissingCodeRune ,false ;
|
|
|
|
|
};_bgcc :=byte (code );_gedg ,_gdda :=_ebge ._ggec .Read (_bgcc );if _ebge ._cdge ==nil {_ebge ._cdge =_da .MakeRuneSet (1);};_ebge ._cdge .Write (_gedg );return _gedg ,_gdda ;};var _cbfg =_da .NewByteRuneMap (map[byte ]rune {0x20:' ',0x21:'\uf721',0x22:'\uf6f8',0x23:'\uf7a2',0x24:'\uf724',0x25:'\uf6e4',0x26:'\uf726',0x27:'\uf7b4',0x28:'⁽',0x29:'⁾',0x2a:'‥',0x2b:'․',0x2c:',',0x2d:'-',0x2e:'.',0x2f:'⁄',0x30:'\uf730',0x31:'\uf731',0x32:'\uf732',0x33:'\uf733',0x34:'\uf734',0x35:'\uf735',0x36:'\uf736',0x37:'\uf737',0x38:'\uf738',0x39:'\uf739',0x3a:':',0x3b:';',0x3d:'\uf6de',0x3f:'\uf73f',0x44:'\uf7f0',0x47:'¼',0x48:'½',0x49:'¾',0x4a:'⅛',0x4b:'⅜',0x4c:'⅝',0x4d:'⅞',0x4e:'⅓',0x4f:'⅔',0x56:'ff',0x57:'fi',0x58:'fl',0x59:'ffi',0x5a:'ffl',0x5b:'₍',0x5d:'₎',0x5e:'\uf6f6',0x5f:'\uf6e5',0x60:'\uf760',0x61:'\uf761',0x62:'\uf762',0x63:'\uf763',0x64:'\uf764',0x65:'\uf765',0x66:'\uf766',0x67:'\uf767',0x68:'\uf768',0x69:'\uf769',0x6a:'\uf76a',0x6b:'\uf76b',0x6c:'\uf76c',0x6d:'\uf76d',0x6e:'\uf76e',0x6f:'\uf76f',0x70:'\uf770',0x71:'\uf771',0x72:'\uf772',0x73:'\uf773',0x74:'\uf774',0x75:'\uf775',0x76:'\uf776',0x77:'\uf777',0x78:'\uf778',0x79:'\uf779',0x7a:'\uf77a',0x7b:'₡',0x7c:'\uf6dc',0x7d:'\uf6dd',0x7e:'\uf6fe',0x81:'\uf6e9',0x82:'\uf6e0',0x87:'\uf7e1',0x88:'\uf7e0',0x89:'\uf7e2',0x8a:'\uf7e4',0x8b:'\uf7e3',0x8c:'\uf7e5',0x8d:'\uf7e7',0x8e:'\uf7e9',0x8f:'\uf7e8',0x90:'\uf7ea',0x91:'\uf7eb',0x92:'\uf7ed',0x93:'\uf7ec',0x94:'\uf7ee',0x95:'\uf7ef',0x96:'\uf7f1',0x97:'\uf7f3',0x98:'\uf7f2',0x99:'\uf7f4',0x9a:'\uf7f6',0x9b:'\uf7f5',0x9c:'\uf7fa',0x9d:'\uf7f9',0x9e:'\uf7fb',0x9f:'\uf7fc',0xa1:'⁸',0xa2:'₄',0xa3:'₃',0xa4:'₆',0xa5:'₈',0xa6:'₇',0xa7:'\uf6fd',0xa9:'\uf6df',0xaa:'₂',0xac:'\uf7a8',0xae:'\uf6f5',0xaf:'\uf6f0',0xb0:'₅',0xb2:'\uf6e1',0xb3:'\uf6e7',0xb4:'\uf7fd',0xb6:'\uf6e3',0xb9:'\uf7fe',0xbb:'₉',0xbc:'₀',0xbd:'\uf6ff',0xbe:'\uf7e6',0xbf:'\uf7f8',0xc0:'\uf7bf',0xc1:'₁',0xc2:'\uf6f9',0xc9:'\uf7b8',0xcf:'\uf6fa',0xd0:'‒',0xd1:'\uf6e6',0xd6:'\uf7a1',0xd8:'\uf7ff',0xda:'¹',0xdb:'²',0xdc:'³',0xdd:'⁴',0xde:'⁵',0xdf:'⁶',0xe0:'⁷',0xe1:'⁹',0xe2:'⁰',0xe4:'\uf6ec',0xe5:'\uf6f1',0xe6:'\uf6f3',0xe9:'\uf6ed',0xea:'\uf6f2',0xeb:'\uf6eb',0xf1:'\uf6ee',0xf2:'\uf6fb',0xf3:'\uf6f4',0xf4:'\uf7af',0xf5:'\uf6ea',0xf6:'ⁿ',0xf7:'\uf6ef',0xf8:'\uf6e2',0xf9:'\uf6e8',0xfa:'\uf6f7',0xfb:'\uf6fc'});
|
|
|
|
|
func (_ccda *simpleEncoding )Charcodes ()[]CharCode {_eagf :=make ([]CharCode ,0,_ccda ._ggec .Length ());_ccda ._ggec .Range (func (_cbb byte ,_ rune )(_geda bool ){_eagf =append (_eagf ,CharCode (_cbb ));return false });_db .Slice (_eagf ,func (_cefb ,_bbb int )bool {return _eagf [_cefb ]< _eagf [_bbb ]});
|
|
|
|
|
return _eagf ;};const (_fff ="\u0053\u0079\u006d\u0062\u006f\u006c\u0045\u006e\u0063o\u0064\u0069\u006e\u0067";_bgbb ="Z\u0061p\u0066\u0044\u0069\u006e\u0067\u0062\u0061\u0074s\u0045\u006e\u0063\u006fdi\u006e\u0067";);func (_ded *simpleEncodersMap )Read (s string )(func ()SimpleEncoder ,bool ){_ded ._ffgf .RLock ();
|
|
|
|
|
defer _ded ._ffgf .RUnlock ();_ebd ,_aceb :=_ded ._gfdb [s ];return _ebd ,_aceb ;};func (_gaae *IdentityEncoder )RuneToCharcode (r rune )(CharCode ,bool ){_gaae ._dcd .Write (r );return CharCode (r ),true ;};func init (){RegisterSimpleEncoding (_gbfa ,NewWinAnsiEncoder )};
|
|
|
|
|
func (_bga *simpleEncoding )BaseName ()string {return _bga ._aed };func (_cfcb UTF16Encoder )Encode (str string )[]byte {return []byte (_ag .StringToUTF16 (str ))};func (_acbc *simpleEncoding )Decode (raw []byte )string {_gedc ,_ :=_acbc .NewDecoder ().Bytes (raw );
|
|
|
|
|
return string (_gedc );};func NewWinAnsiEncoder ()SimpleEncoder {return _cee .NewEncoder ()};func (_fega *simpleEncodersMap )Write (s string ,f func ()SimpleEncoder ){_fega ._ffgf .Lock ();defer _fega ._ffgf .Unlock ();_fega ._gfdb [s ]=f ;};type simpleMapping struct{_ffge string ;
|
|
|
|
|
_bbgd _b .Once ;_aedb *_da .ByteRuneMap ;_ebcf *_da .RuneByteMap ;};func (_fdf UTF16Encoder )RuneToCharcode (r rune )(CharCode ,bool ){return CharCode (r ),true };func (_eaf *TrueTypeFontEncoder )Encode (str string )[]byte {return _fgc (_eaf ,str )};func ExpandLigatures (runes []rune )string {var _ebg _f .Buffer ;
|
|
|
|
|
for _ ,_ege :=range runes {_ebc :=RuneToString (_ege );_ebg .WriteString (_ebc );};return _ebg .String ();};func (_gccd UTF16Encoder )ToPdfObject ()_fa .PdfObject {if _gccd ._fbc !=""{return _fa .MakeName (_gccd ._fbc );};return _fa .MakeNull ();};var _dea =_da .NewByteRuneMap (map[byte ]rune {0x20:' ',0x21:'!',0x22:'"',0x23:'#',0x24:'$',0x25:'%',0x26:'&',0x27:'’',0x28:'(',0x29:')',0x2a:'*',0x2b:'+',0x2c:',',0x2d:'-',0x2e:'.',0x2f:'/',0x30:'0',0x31:'1',0x32:'2',0x33:'3',0x34:'4',0x35:'5',0x36:'6',0x37:'7',0x38:'8',0x39:'9',0x3a:':',0x3b:';',0x3c:'<',0x3d:'=',0x3e:'>',0x3f:'?',0x40:'@',0x41:'A',0x42:'B',0x43:'C',0x44:'D',0x45:'E',0x46:'F',0x47:'G',0x48:'H',0x49:'I',0x4a:'J',0x4b:'K',0x4c:'L',0x4d:'M',0x4e:'N',0x4f:'O',0x50:'P',0x51:'Q',0x52:'R',0x53:'S',0x54:'T',0x55:'U',0x56:'V',0x57:'W',0x58:'X',0x59:'Y',0x5a:'Z',0x5b:'[',0x5c:'\\',0x5d:']',0x5e:'^',0x5f:'_',0x60:'‘',0x61:'a',0x62:'b',0x63:'c',0x64:'d',0x65:'e',0x66:'f',0x67:'g',0x68:'h',0x69:'i',0x6a:'j',0x6b:'k',0x6c:'l',0x6d:'m',0x6e:'n',0x6f:'o',0x70:'p',0x71:'q',0x72:'r',0x73:'s',0x74:'t',0x75:'u',0x76:'v',0x77:'w',0x78:'x',0x79:'y',0x7a:'z',0x7b:'{',0x7c:'|',0x7d:'}',0x7e:'~',0xa1:'¡',0xa2:'¢',0xa3:'£',0xa4:'⁄',0xa5:'¥',0xa6:'ƒ',0xa7:'§',0xa8:'¤',0xa9:'\'',0xaa:'“',0xab:'«',0xac:'‹',0xad:'›',0xae:'fi',0xaf:'fl',0xb1:'–',0xb2:'†',0xb3:'‡',0xb4:'·',0xb6:'¶',0xb7:'•',0xb8:'‚',0xb9:'„',0xba:'”',0xbb:'»',0xbc:'…',0xbd:'‰',0xbf:'¿',0xc1:'`',0xc2:'´',0xc3:'ˆ',0xc4:'˜',0xc5:'¯',0xc6:'˘',0xc7:'˙',0xc8:'¨',0xca:'˚',0xcb:'¸',0xcc:'˝',0xcd:'˛',0xce:'ˇ',0xcf:'—',0xe1:'Æ',0xe3:'ª',0xe8:'Ł',0xe9:'Ø',0xea:'Œ',0xeb:'º',0xf1:'æ',0xf5:'ı',0xf8:'ł',0xf9:'ø',0xfa:'œ',0xfb:'ß'});
|
|
|
|
|
func (_ggac *IdentityEncoder )Decode (raw []byte )string {return _fbf (_ggac ,raw )};func (_bdee UTF16Encoder )String ()string {return _bdee ._fbc };func (_aea *simpleEncoding )ToPdfObject ()_fa .PdfObject {return _fa .MakeName (_aea ._aed )};func NewSymbolEncoder ()SimpleEncoder {return _gca .NewEncoder ()};
|
|
|
|
|
type GlyphName string ;func (_cbec *simpleEncoding )NewEncoder ()*_de .Encoder {return &_de .Encoder {Transformer :&simpleEncoder {_dgc :_cbec ._cga }};};var _addb =_da .NewRuneStringMap (map[rune ]string {0xfffd:"\u002en\u006f\u0074\u0064\u0065\u0066",0x250a:"\u0032\u0035\u0030\u0061",0x250b:"\u0032\u0035\u0030\u0062",0x250d:"\u0032\u0035\u0030\u0064",0x250e:"\u0032\u0035\u0030\u0065",0x250f:"\u0032\u0035\u0030\u0066",0x251a:"\u0032\u0035\u0031\u0061",0x251b:"\u0032\u0035\u0031\u0062",0x251d:"\u0032\u0035\u0031\u0064",0x251e:"\u0032\u0035\u0031\u0065",0x251f:"\u0032\u0035\u0031\u0066",0x252a:"\u0032\u0035\u0032\u0061",0x252b:"\u0032\u0035\u0032\u0062",0x252d:"\u0032\u0035\u0032\u0064",0x252e:"\u0032\u0035\u0032\u0065",0x252f:"\u0032\u0035\u0032\u0066",0x253a:"\u0032\u0035\u0033\u0061",0x253b:"\u0032\u0035\u0033\u0062",0x253d:"\u0032\u0035\u0033\u0064",0x253e:"\u0032\u0035\u0033\u0065",0x253f:"\u0032\u0035\u0033\u0066",0x254a:"\u0032\u0035\u0034\u0061",0x254b:"\u0032\u0035\u0034\u0062",0x254c:"\u0032\u0035\u0034\u0063",0x254d:"\u0032\u0035\u0034\u0064",0x254e:"\u0032\u0035\u0034\u0065",0x254f:"\u0032\u0035\u0034\u0066",0x256d:"\u0032\u0035\u0036\u0064",0x256e:"\u0032\u0035\u0036\u0065",0x256f:"\u0032\u0035\u0036\u0066",0x257a:"\u0032\u0035\u0037\u0061",0x257b:"\u0032\u0035\u0037\u0062",0x257c:"\u0032\u0035\u0037\u0063",0x257d:"\u0032\u0035\u0037\u0064",0x257e:"\u0032\u0035\u0037\u0065",0x257f:"\u0032\u0035\u0037\u0066",0x0041:"\u0041",0x00c6:"\u0041\u0045",0x01fc:"\u0041E\u0061\u0063\u0075\u0074\u0065",0x01e2:"\u0041\u0045\u006d\u0061\u0063\u0072\u006f\u006e",0xf7e6:"\u0041E\u0073\u006d\u0061\u006c\u006c",0x2370:"\u0041\u0050\u004c\u0062\u006f\u0078\u0071\u0075\u0065s\u0074\u0069\u006f\u006e",0x2353:"\u0041\u0050\u004c\u0062\u006f\u0078\u0075\u0070\u0063\u0061\u0072\u0065\u0074",0x2340:"\u0041P\u004cn\u006f\u0074\u0062\u0061\u0063\u006b\u0073\u006c\u0061\u0073\u0068",0x233f:"A\u0050\u004c\u006e\u006f\u0074\u0073\u006c\u0061\u0073\u0068",0x00c1:"\u0041\u0061\u0063\u0075\u0074\u0065",0xf7e1:"A\u0061\u0063\u0075\u0074\u0065\u0073\u006d\u0061\u006c\u006c",0x0102:"\u0041\u0062\u0072\u0065\u0076\u0065",0x1eae:"A\u0062\u0072\u0065\u0076\u0065\u0061\u0063\u0075\u0074\u0065",0x04d0:"\u0041\u0062\u0072\u0065\u0076\u0065\u0063\u0079\u0072i\u006c\u006c\u0069\u0063",0x1eb6:"\u0041\u0062\u0072\u0065\u0076\u0065\u0064\u006f\u0074b\u0065\u006c\u006f\u0077",0x1eb0:"A\u0062\u0072\u0065\u0076\u0065\u0067\u0072\u0061\u0076\u0065",0x1eb2:"\u0041b\u0072e\u0076\u0065\u0068\u006f\u006f\u006b\u0061\u0062\u006f\u0076\u0065",0x1eb4:"A\u0062\u0072\u0065\u0076\u0065\u0074\u0069\u006c\u0064\u0065",0x01cd:"\u0041\u0063\u0061\u0072\u006f\u006e",0x24b6:"\u0041c\u0069\u0072\u0063\u006c\u0065",0x00c2:"A\u0063\u0069\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078",0x1ea4:"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0061\u0063\u0075\u0074\u0065",0x1eac:"\u0041\u0063\u0069\u0072cu\u006d\u0066\u006c\u0065\u0078\u0064\u006f\u0074\u0062\u0065\u006c\u006f\u0077",0x1ea6:"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0067\u0072\u0061\u0076\u0065",0x1ea8:"A\u0063i\u0072\u0063\u0075\u006d\u0066\u006c\u0065\u0078h\u006f\u006f\u006b\u0061bo\u0076\u0065",0xf7e2:"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0073\u006d\u0061\u006c\u006c",0x1eaa:"\u0041\u0063i\u0072\u0063\u0075m\u0066\u006c\u0065\u0078\u0074\u0069\u006c\u0064\u0065",0xf6c9:"\u0041\u0063\u0075t\u0065",0xf7b4:"\u0041\u0063\u0075\u0074\u0065\u0073\u006d\u0061\u006c\u006c",0x0200:"\u0041d\u0062\u006c\u0067\u0072\u0061\u0076e",0x00c4:"\u0041d\u0069\u0065\u0072\u0065\u0073\u0069s",0x04d2:"\u0041\u0064\u0069\u0065\u0072\u0065\u0073\u0069\u0073\u0063\u0079\u0072i\u006c\u006c\u0069\u0063",0x01de:"\u0041d\u0069e\u0072\u0065\u0073\u0069\u0073\u006d\u0061\u0063\u0072\u006f\u006e",0xf7e4:"\u0041\u0064\u0069\u0065\u0072\u0065\u0073\u0069\u0073s\u006d\u0061\u006c\u006c",0x1ea0:"\u0041d\u006f\u0074\u0062\u0065\u006c\u006fw",0x01e0:"\u0041\u0064\u006f\u0074\u006d\u0061\u0063\u0072\u006f\u006e",0x00c0:"\u0041\u0067\u0072\u0061\u0076\u0065",0xf7e0:"A\u0067\u0072\u0061\u0076\u0065\u007
|
|
|
|
|
func RegisterSimpleEncoding (name string ,fnc func ()SimpleEncoder ){if _ ,_eed :=_bgbe .Read (name );_eed {panic ("\u0061l\u0072e\u0061\u0064\u0079\u0020\u0072e\u0067\u0069s\u0074\u0065\u0072\u0065\u0064");};_bgbe .Write (name ,fnc );};var (_bgbe =&simpleEncodersMap {_gfdb :map[string ]func ()SimpleEncoder {}};
|
|
|
|
|
);func (_ffg CMapEncoder )charcodeToString (_af CharCode )(string ,bool ){if _ffg ._deg ==nil {return MissingCodeString ,false ;};_fb :=_eb .CharCode (_af );if _ffg ._fc !=nil {var _bab bool ;if _fb ,_bab =_ffg ._fc .CharcodeToCID (_eb .CharCode (_af ));
|
|
|
|
|
!_bab {return MissingCodeString ,false ;};};return _ffg ._deg .CharcodeToUnicode (_fb );};func (_gea *IdentityEncoder )CharcodeToRune (code CharCode )(rune ,bool ){_gea ._dcd .Write (rune (code ));return rune (code ),true ;};func (_cac CMapEncoder )CharcodeToRune (code CharCode )(rune ,bool ){_ee ,_ba :=_cac .charcodeToString (code );
|
|
|
|
|
return ([]rune (_ee ))[0],_ba ;};func (_acb *IdentityEncoder )RegisteredRunes ()[]rune {_bfe :=make ([]rune ,_acb ._dcd .Length ());_bcc :=0;_acb ._dcd .Range (func (_bfea rune )(_aff bool ){_bfe [_bcc ]=_bfea ;_bcc ++;return false });return _bfe ;};
|