unipdf/internal/cmap/cmap.go

12 lines
40 KiB
Go
Raw Normal View History

//
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/
2020-11-11 18:48:37 +00:00
package cmap ;import (_fb "bufio";_d "bytes";_g "encoding/hex";_b "errors";_c "fmt";_bb "github.com/unidoc/unipdf/v3/common";_fbae "github.com/unidoc/unipdf/v3/core";_fbb "github.com/unidoc/unipdf/v3/internal/cmap/bcmaps";_fba "io";_gf "sort";_e "strconv";_a "strings";_ce "unicode/utf16";);func (cmap *CMap )parseName ()error {_daag :="";_dfc :=false ;for _gee :=0;_gee < 20&&!_dfc ;_gee ++{_gec ,_gcfb :=cmap .parseObject ();if _gcfb !=nil {return _gcfb ;};switch _dba :=_gec .(type ){case cmapOperand :switch _dba .Operand {case "\u0064\u0065\u0066":_dfc =true ;default:_bb .Log .Debug ("\u0070\u0061\u0072\u0073\u0065\u004e\u0061\u006d\u0065\u003a\u0020\u0053\u0074\u0061\u0074\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u002e\u0020o\u003d\u0025\u0023\u0076\u0020n\u0061\u006de\u003d\u0025\u0023\u0071",_gec ,_daag );if _daag !=""{_daag =_c .Sprintf ("\u0025\u0073\u0020%\u0073",_daag ,_dba .Operand );};_bb .Log .Debug ("\u0070\u0061\u0072\u0073\u0065\u004e\u0061\u006d\u0065\u003a \u0052\u0065\u0063\u006f\u0076\u0065\u0072e\u0064\u002e\u0020\u006e\u0061\u006d\u0065\u003d\u0025\u0023\u0071",_daag );};case cmapName :_daag =_dba .Name ;};};if !_dfc {_bb .Log .Debug ("\u0045R\u0052\u004f\u0052\u003a \u0070\u0061\u0072\u0073\u0065N\u0061m\u0065:\u0020\u004e\u006f\u0020\u0064\u0065\u0066 ");return ErrBadCMap ;};cmap ._ee =_daag ;return nil ;};func LoadCmapFromDataCID (data []byte )(*CMap ,error ){return LoadCmapFromData (data ,false )};func (cmap *CMap )NBits ()int {return cmap ._ag };func (cmap *CMap )toBfData ()string {if len (cmap ._gfe )==0{return "";};_gag :=make ([]CharCode ,0,len (cmap ._gfe ));for _bd :=range cmap ._gfe {_gag =append (_gag ,_bd );};_gf .Slice (_gag ,func (_fce ,_fcea int )bool {return _gag [_fce ]< _gag [_fcea ]});var _dc []charRange ;_dga :=charRange {_gag [0],_gag [0]};_bff :=cmap ._gfe [_gag [0]];for _ ,_cga :=range _gag [1:]{_aag :=cmap ._gfe [_cga ];if _cga ==_dga ._ge +1&&_db (_aag )==_db (_bff )+1{_dga ._ge =_cga ;}else {_dc =append (_dc ,_dga );_dga ._eb ,_dga ._ge =_cga ,_cga ;};_bff =_aag ;};_dc =append (_dc ,_dga );var _gba []CharCode ;var _adc []fbRange ;for _ ,_daae :=range _dc {if _daae ._eb ==_daae ._ge {_gba =append (_gba ,_daae ._eb );}else {_adc =append (_adc ,fbRange {_gg :_daae ._eb ,_ff :_daae ._ge ,_gc :cmap ._gfe [_daae ._eb ]});};};_bb .Log .Trace ("\u0063\u0068ar\u0052\u0061\u006eg\u0065\u0073\u003d\u0025d f\u0062Ch\u0061\u0072\u0073\u003d\u0025\u0064\u0020fb\u0052\u0061\u006e\u0067\u0065\u0073\u003d%\u0064",len (_dc ),len (_gba ),len (_adc ));var _fa []string ;if len (_gba )> 0{_gae :=(len (_gba )+_gdf -1)/_gdf ;for _adg :=0;_adg < _gae ;_adg ++{_ceb :=_edcf (len (_gba )-_adg *_gdf ,_gdf );_fa =append (_fa ,_c .Sprintf ("\u0025\u0064\u0020\u0062\u0065\u0067\u0069\u006e\u0062f\u0063\u0068\u0061\u0072",_ceb ));for _eaf :=0;_eaf < _ceb ;_eaf ++{_ccd :=_gba [_adg *_gdf +_eaf ];_gfa :=cmap ._gfe [_ccd ];_fa =append (_fa ,_c .Sprintf ("\u003c%\u0030\u0034\u0078\u003e\u0020\u0025s",_ccd ,_faa (_gfa )));};_fa =append (_fa ,"\u0065n\u0064\u0062\u0066\u0063\u0068\u0061r");};};if len (_adc )> 0{_cfea :=(len (_adc )+_gdf -1)/_gdf ;for _ffb :=0;_ffb < _cfea ;_ffb ++{_dfeg :=_edcf (len (_adc )-_ffb *_gdf ,_gdf );_fa =append (_fa ,_c .Sprintf ("\u0025d\u0020b\u0065\u0067\u0069\u006e\u0062\u0066\u0072\u0061\u006e\u0067\u0065",_dfeg ));for _cbc :=0;_cbc < _dfeg ;_cbc ++{_fac :=_adc [_ffb *_gdf +_cbc ];_fa =append (_fa ,_c .Sprintf ("\u003c%\u00304\u0078\u003e\u003c\u0025\u0030\u0034\u0078\u003e\u0020\u0025\u0073",_fac ._gg ,_fac ._ff ,_faa (_fac ._gc )));};_fa =append (_fa ,"\u0065\u006e\u0064\u0062\u0066\u0072\u0061\u006e\u0067\u0065");};};return _a .Join (_fa ,"\u000a");};func (_aaf *cMapParser )parseObject ()(cmapObject ,error ){_aaf .skipSpaces ();for {_ebfg ,_fee :=_aaf ._ecg .Peek (2);if _fee !=nil {return nil ,_fee ;};if _ebfg [0]=='%'{_aaf .parseComment ();_aaf .skipSpaces ();continue ;}else if _ebfg [0]=='/'{_cbe ,_ed :=_aaf .parseName ();return _cbe ,_ed ;}else if _ebfg [0]=='('{_fabf ,_dee :=_aaf .parseString ();return _fabf ,_dee ;}else if _ebfg [0]=='['{_bggd ,_deab :=_aaf .parseArray ();r