unioffice/internal/convertutils/convertutils.go
2022-02-05 13:05:36 +00:00

12 lines
40 KiB
Go

//
// 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/
package convertutils ;import (_c "bytes";_cb "errors";_ac "fmt";_fa "github.com/unidoc/unioffice/common/logger";_dg "github.com/unidoc/unioffice/measurement";_cc "github.com/unidoc/unioffice/schema/soo/dml";_g "github.com/unidoc/unioffice/schema/soo/dml/chart";_ed "github.com/unidoc/unioffice/spreadsheet/format";_ff "github.com/unidoc/unipdf/v3/creator";_da "github.com/unidoc/unipdf/v3/model";_be "github.com/unidoc/unipdf/v3/render";_e "github.com/unidoc/unitype";_b "image";_f "math";_ag "os";_bd "sort";_d "strconv";_fg "strings";_ad "sync";_ab "unicode";);func _bbgg (_dgg ,_dfe ,_eadc uint8 )(float64 ,float64 ,float64 ){_abff ,_dbeg ,_cbdg :=float64 (_dgg )/255,float64 (_dfe )/255,float64 (_eadc )/255;_geac :=_abff ;if _dbeg < _geac {_geac =_dbeg ;};if _cbdg < _geac {_geac =_cbdg ;};var _egaa ,_fcfa bool ;_cec :=_abff ;if _dbeg > _cec {_cec =_dbeg ;_egaa =true ;};if _cbdg > _cec {_cec =_cbdg ;_egaa =false ;_fcfa =true ;};_dabg :=(_geac +_cec )/2;var _beb float64 ;if _geac !=_cec {if _dabg <=0.5{_beb =(_cec -_geac )/(_cec +_geac );}else {_beb =(_cec -_geac )/(2.0-_cec -_geac );};};var _cabc float64 ;if _geac !=_cec {if _egaa {_cabc =2.0+(_cbdg -_abff )/(_cec -_geac );}else if _fcfa {_cabc =4.0+(_abff -_dbeg )/(_cec -_geac );}else {_cabc =(_dbeg -_cbdg )/(_cec -_geac );};_cabc *=60;if _cabc < 0{_cabc +=360;};};return _cabc ,_beb ,_dabg ;};type fontsMap struct{_bbfd *_ad .Mutex ;_bbca map[string ]map[FontStyle ]*_da .PdfFont ;};const _dgeg =6.0;func GetOpacityFromColorTransform (trs []*_cc .EG_ColorTransform )float64 {for _ ,_afd :=range trs {if _afd !=nil {if _egea :=_afd .Alpha ;_egea !=nil {if _cdff :=_egea .ValAttr .ST_PositiveFixedPercentageDecimal ;_cdff !=nil {return float64 (*_cdff )/100000;};};};};return 1.0;};func MakeImageFromChartSpace (cs *_g .ChartSpace ,width ,height float64 ,theme *_cc .Theme )(_b .Image ,error ){_ggd ,_bcd :=_fad (cs ,width ,height ,theme ,true );if _bcd !=nil {return nil ,_bcd ;};_gd ,_bcd :=GetPageFromCreator (_ggd );if _bcd !=nil {return nil ,_bcd ;};return _be .NewImageDevice ().Render (_gd );};var _gdg =_bfec (1.5);func _ecba (_edgf _cc .ST_SchemeColorVal ,_bbgb *_cc .Theme )string {if _fgfc :=_bbgb .ThemeElements ;_fgfc !=nil {if _dgae :=_fgfc .ClrScheme ;_dgae !=nil {switch _edgf {case _cc .ST_SchemeColorValLt1 :return GetColorStringFromDmlColor (_dgae .Lt1 );case _cc .ST_SchemeColorValDk1 ,_cc .ST_SchemeColorValTx1 :return GetColorStringFromDmlColor (_dgae .Dk1 );case _cc .ST_SchemeColorValLt2 :return GetColorStringFromDmlColor (_dgae .Lt2 );case _cc .ST_SchemeColorValDk2 :return GetColorStringFromDmlColor (_dgae .Dk2 );case _cc .ST_SchemeColorValAccent1 :return GetColorStringFromDmlColor (_dgae .Accent1 );case _cc .ST_SchemeColorValAccent2 :return GetColorStringFromDmlColor (_dgae .Accent2 );case _cc .ST_SchemeColorValAccent3 :return GetColorStringFromDmlColor (_dgae .Accent3 );case _cc .ST_SchemeColorValAccent4 :return GetColorStringFromDmlColor (_dgae .Accent4 );case _cc .ST_SchemeColorValAccent5 :return GetColorStringFromDmlColor (_dgae .Accent5 );case _cc .ST_SchemeColorValAccent6 :return GetColorStringFromDmlColor (_dgae .Accent6 );};};};return "";};func (_bdb *creatorContext )drawAxes (_bad *_g .CT_PlotAreaChoice1 ,_gbd ,_bcdf ,_dfa float64 ,_dfc []string ,_ccfg *Rectangle ,_fda bool )error {_adff :=_bdb ._fac ;_dba :=_bdb ._cbc ;if _bad ==nil {return _cb .New ("\u004e\u006f\u0020\u0061xi\u0073\u0020\u0069\u006e\u0066\u006f\u0072\u006d\u0061\u0074\u0069\u006f\u006e");};if len (_bad .ValAx )==0||(len (_bad .CatAx )==0&&len (_bad .DateAx )==0&&len (_bad .SerAx )==0){return _cb .New ("\u004e\u006f\u0020\u0078\u0020\u006f\u0072\u0020\u0079 \u0061\u0078\u0069\u0073");};var _ffb ,_cge ,_efc ,_fec uint32 ;var _cdcf ,_defg _g .ST_AxPos ;var _baa ,_gdgd _g .ST_TickMark ;var _cdca ,_ccd *_g .CT_ChartLines ;var _ebbc ,_eae _g .ST_TickLblPos ;var _bddc ,_ageg *_cc .CT_ShapeProperties ;var _eeb error ;_begf :=_ccfg .Right -_ccfg .Left ;_dbda :=_ccfg .Bottom -_ccfg .Top ;if len (_bad .ValAx )> 0{_cge ,_defg ,_gdgd ,_eae ,_ccd ,_fec ,_ageg ,_eeb =_acb (_bad .ValAx [0]);};if _defg !=_g .ST_AxPosL &&_defg !=_g .ST_AxPosB {return _cb .New ("\u004f\u006e\u006c\u0079\u0020l\u0065\u0066\u0074\u0020\u006f\u0072\u0020\u0062\u006f\u0074\u0074\u006f\u006d \u0079\u0020\u0061\u0078\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0020\u0073\u006f\u0020\u0066\u0061\u0072");};_dee :=_bcdf -_gbd ;_ebd :=int (_dee /_dfa )+1;var _cea ,_aad float64 ;switch _gdgd {case _g .ST_TickMarkIn :_cea ,_aad =_afcf ,0;case _g .ST_TickMarkOut :_cea ,_aad =0,_afcf ;case _g .ST_TickMarkCross :_cea ,_aad =_afcf ,_afcf ;};_cea =_cea *_dba ;_aad =_aad *_dba ;var _bbb *_cc .CT_ShapeProperties ;if _ccd !=nil {_bbb =_ccd .SpPr ;};_dgec ,_geg :=_ebbc !=_g .ST_TickLblPosNone ,_eae !=_g .ST_TickLblPosNone ;_adbc :=_gbd ;if len (_bad .CatAx )> 0{_ffb ,_cdcf ,_baa ,_ebbc ,_cdca ,_efc ,_bddc ,_eeb =_bbec (_bad .CatAx [0]);}else if len (_bad .DateAx )> 0{_ffb ,_cdcf ,_baa ,_ebbc ,_cdca ,_efc ,_bddc ,_eeb =_fdaf (_bad .DateAx [0]);}else if len (_bad .SerAx )> 0{_ffb ,_cdcf ,_baa ,_ebbc ,_cdca ,_efc ,_bddc ,_eeb =_bcad (_bad .SerAx [0]);};if _eeb !=nil {return _eeb ;};if _cdcf !=_g .ST_AxPosL &&_cdcf !=_g .ST_AxPosB {return _cb .New ("\u004f\u006e\u006c\u0079\u0020l\u0065\u0066\u0074\u0020\u006f\u0072\u0020\u0062\u006f\u0074\u0074\u006f\u006d \u0078\u0020\u0061\u0078\u0069\u0073\u0020\u0073\u0075\u0070\u0070\u006f\u0072\u0074\u0020\u0073\u006f\u0020\u0066\u0061\u0072");};if _ffb !=_fec ||_cge !=_efc {return _cb .New ("a\u0078i\u0073\u0020\u0069\u0064\u0073\u0020\u0064\u006fn\u0027\u0074\u0020\u006dat\u0063\u0068");};_bfa :=len (_dfc )+1;var _dccc ,_cgc float64 ;switch _baa {case _g .ST_TickMarkIn :_dccc ,_cgc =_afcf ,0;case _g .ST_TickMarkOut :_dccc ,_cgc =0,_afcf ;case _g .ST_TickMarkCross :_dccc ,_cgc =_afcf ,_afcf ;};_dccc =_dccc *_dba ;_cgc =_cgc *_dba ;var _egc *_cc .CT_ShapeProperties ;if _cdca !=nil {_egc =_cdca .SpPr ;};if _fda {_gcg :=_dbda /float64 (len (_dfc ));_afec :=_ccfg .Left -_gbd *_begf /_dee ;_gcb :=_afec -_df *_dba ;if _dgec {var _ced float64 ;for _gdc :=0;_gdc < _bfa ;_gdc ++{_eafd :=_ccfg .Bottom -float64 (_gdc )*_gcg ;if _gdc < _bfa -1{_fadbg :=_adff .NewParagraph (_dfc [_gdc ]);_fadbg .SetFontSize (_dgeg *_dba );_fadbg .SetPos (_gcb ,_eafd -_gcg /2-_gdg *_dba );_adff .Draw (_fadbg );_ecg :=(_fadbg .Width ()/1000-_df )*_dba ;if _ecg > 0&&_ecg > _ced {_ced =_ecg ;};};};if _ced > 0{_ccfg .Left +=_ced +_eage ;_afec =_ccfg .Left -_gbd *_begf /_dee ;_begf =_ccfg .Right -_ccfg .Left ;};};_ceaa :=_afec -_cgc ;_bgf :=_afec +_dccc ;_fcf :=_ccfg .Left ;_dec :=_ccfg .Right ;for _eadg :=0;_eadg < _bfa ;_eadg ++{_fgc :=_ccfg .Bottom -float64 (_eadg )*_gcg ;_bdb .drawLineWithProps (_bddc ,_ceaa ,_fgc ,_bgf ,_fgc ,true );_bdb .drawLineWithProps (_egc ,_fcf ,_fgc ,_dec ,_fgc ,true );};_bca :=_begf /_dee ;_feb :=_ccfg .Bottom -_cea ;_dadg :=_ccfg .Bottom +_aad ;_dfb :=_ccfg .Top ;_gbge :=_ccfg .Bottom ;for _eec :=0;_eec < _ebd ;_eec ++{_ffbf :=_ccfg .Left +(_adbc -_gbd )*_bca ;_bdb .drawLineWithProps (_ageg ,_ffbf ,_feb ,_ffbf ,_dadg ,true );_bdb .drawLineWithProps (_bbb ,_ffbf ,_dfb ,_ffbf ,_gbge ,true );if _geg {_dab :=_adff .NewParagraph (_d .FormatFloat (_adbc ,'g',-1,64));_dab .SetFontSize (_dgeg *_dba );_dab .SetPos (_ffbf -_efg *_dba ,_gbge +_adfb *_dba );_adff .Draw (_dab );};_adbc +=_dfa ;};}else {_cbbb :=_dbda /_dee ;_fbb :=_ccfg .Left ;if _geg {var _daf float64 ;for _cffd :=0;_cffd < _ebd ;_cffd ++{_daac :=_ccfg .Bottom -(_adbc -_gbd )*_cbbb ;_cdgb :=_adff .NewParagraph (_d .FormatFloat (_adbc ,'g',-1,64));_cdgb .SetFontSize (_dgeg *_dba );_cdgb .SetPos (_fbb -_df *_dba ,_daac -_gdg *_dba );_adff .Draw (_cdgb );_adbcb :=(_cdgb .Width ()/1000-_df )*_dba ;if _adbcb > 0&&_adbcb > _daf {_daf =_adbcb ;};_adbc +=_dfa ;};if _daf > 0{_ccfg .Left +=_daf +_eage ;_begf =_ccfg .Right -_ccfg .Left ;};};_adbc =_gbd ;_dde :=_ccfg .Left -_aad ;_dadf :=_ccfg .Left +_cea ;_fbb =_ccfg .Left ;_cdcg :=_ccfg .Right ;for _ccgg :=0;_ccgg < _ebd ;_ccgg ++{_ffbe :=_ccfg .Bottom -(_adbc -_gbd )*_cbbb ;_bdb .drawLineWithProps (_ageg ,_dde ,_ffbe ,_dadf ,_ffbe ,true );_bdb .drawLineWithProps (_bbb ,_fbb ,_ffbe ,_cdcg ,_ffbe ,true );_adbc +=_dfa ;};_cfc :=_begf /float64 (len (_dfc ));_fbbg :=_ccfg .Bottom +_gbd *_dbda /_dee ;_ded :=_fbbg -_dccc ;_afa :=_fbbg +_cgc ;_ecgd :=_ccfg .Top ;_dgb :=_ccfg .Bottom ;_dfbg :=_fbbg +_adfb *_dba ;for _ceg :=0;_ceg < _bfa ;_ceg ++{_ece :=_ccfg .Left +float64 (_ceg )*_cfc ;_bdb .drawLineWithProps (_bddc ,_ece ,_ded ,_ece ,_afa ,true );_bdb .drawLineWithProps (_egc ,_ece ,_ecgd ,_ece ,_dgb ,true );if _dgec &&_ceg < _bfa -1{_acd :=_adff .NewParagraph (_dfc [_ceg ]);_acd .SetFontSize (_dgeg *_dba );_acd .SetPos (_ece +_gaf *_dba ,_dfbg );_adff .Draw (_acd );};};};return nil ;};type ImgPart byte ;var _efg =_bfec (0.5);func GetRegisteredFont (name string ,style FontStyle )*_da .PdfFont {_agbcf ._bbfd .Lock ();defer _agbcf ._bbfd .Unlock ();if _abfe ,_abd :=_agbcf ._bbca [name ];_abd {if _dddc ,_fff :=_abfe [style ];_fff {return _dddc ;};};return nil ;};func _fad (_eef *_g .ChartSpace ,_ade ,_gb float64 ,_ead *_cc .Theme ,_edc bool )(*_ff .Creator ,error ){_fadb :=1.0;if _edc {_fadb =8.0;};_bbe :=&Rectangle {};_dga :=&Rectangle {Top :_bbe .Top ,Bottom :_gb -_bbe .Bottom ,Left :_bbe .Left ,Right :_ade -_bbe .Right };_ccg :=MakeTempCreator (_ade *_fadb +1,_gb *_fadb +1);_fea :=&creatorContext {_fac :_ccg ,_cda :_ead ,_cbc :_fadb };var _agbe bool ;if _gab :=_eef .Chart ;_gab !=nil {_gbg :=_gab .PlotArea ;if _gbg ==nil {return nil ,_cb .New ("\u004e\u006f\u0020p\u006c\u006f\u0074\u0020\u0061\u0072\u0065\u0061");};_fc :=&Rectangle {Top :_bfec (10),Bottom :_dga .Bottom -_bfec (15),Left :_bfec (10),Right :_dga .Right -_bfec (10)};var _bag *Rectangle ;_eagb :=_gab .Legend ;if _eagb !=nil {_fcg :=_eagb .Overlay !=nil &&_eagb .Overlay .ValAttr !=nil &&*_eagb .Overlay .ValAttr ;if _cfec :=_eagb .LegendPos ;_cfec !=nil {switch _cfec .ValAttr {case _g .ST_LegendPosTr :if !_fcg {_fc =&Rectangle {Top :_bfec (25),Bottom :_dga .Bottom -_bfec (10),Left :_bfec (10),Right :_dga .Right -_bfec (25)};};_bag =&Rectangle {Top :_bfec (2.5),Bottom :_bfec (22.5),Left :_dga .Right -_bfec (22.5),Right :_dga .Right -_bfec (2.5)};case _g .ST_LegendPosT :_bag =&Rectangle {Top :_bfec (2.5),Bottom :_bfec (7.5),Left :(_dga .Right -_dga .Left )*0.25,Right :(_dga .Right -_dga .Left )*0.75};if !_fcg {_fc =&Rectangle {Top :_bfec (12.5),Bottom :_dga .Bottom -_bfec (15),Left :_bfec (10),Right :_dga .Right -_bfec (5)};};_agbe =true ;case _g .ST_LegendPosB :_bag =&Rectangle {Top :_dga .Bottom -_bfec (7.5),Bottom :_dga .Bottom -_bfec (2.5),Left :(_dga .Right -_dga .Left )*0.25,Right :(_dga .Right -_dga .Left )*0.75};if !_fcg {_fc =&Rectangle {Top :_bfec (5),Bottom :_dga .Bottom -_bfec (15),Left :_bfec (10),Right :_dga .Right -_bfec (5)};};_agbe =true ;case _g .ST_LegendPosR :_bag =&Rectangle {Top :(_dga .Bottom -_dga .Top )/2-_bfec (10),Bottom :(_dga .Bottom -_dga .Top )/2+_bfec (10),Left :_dga .Right -_bfec (22.5),Right :_dga .Right -_bfec (2.5)};if !_fcg {_fc =&Rectangle {Top :_bfec (5),Bottom :_dga .Bottom -_bfec (12.5),Left :_bfec (10),Right :_dga .Right -_bfec (25)};};case _g .ST_LegendPosL :_bag =&Rectangle {Top :(_dga .Bottom -_dga .Top )/2-_bfec (10),Bottom :(_dga .Bottom -_dga .Top )/2+_bfec (10),Left :_bfec (2.5),Right :_bfec (22.5)};if !_fcg {_fc =&Rectangle {Top :_bfec (5),Bottom :_dga .Bottom -_bfec (12.5),Left :_bfec (30),Right :_dga .Right -_bfec (5)};};default:_bag =&Rectangle {Top :(_dga .Bottom -_dga .Top )/2-_bfec (10),Bottom :(_dga .Bottom -_dga .Top )/2+_bfec (10),Left :_dga .Right -_bfec (25),Right :_dga .Right -_bfec (5)};if !_fcg {_fc =&Rectangle {Top :_bfec (5),Bottom :_dga .Bottom -_bfec (12.5),Left :_bfec (100),Right :_dga .Right -_bfec (25)};};};};};_fc .scale (_fadb );_fea .drawBorderWithProps (_gbg .SpPr ,_fc ,_ce );_gbc :=[]*legendItem {};var _ffdc error ;_bcf :=_gbg .CChoice ;for _ ,_cef :=range _gbg .Choice {if _adg :=_cef .BarChart ;_adg !=nil {_gbc ,_ffdc =_fea .drawBarChart (_adg ,_fc ,_bcf );if _ffdc !=nil {return nil ,_ffdc ;};};};if _eagb !=nil {_bag .scale (_fadb );_fea .drawBorderWithProps (_eagb .SpPr ,_bag ,_ce );if len (_gbc )!=0{_fea .drawLegend (_bag ,_gbc ,_agbe );};};};_dga .scale (_fadb );_fea .drawBorderWithProps (_eef .SpPr ,_dga ,_ce );return _ccg ,nil ;};var _afcf =_bfec (1);var StdFontsMap =map[string ][]string {"\u0048e\u006c\u0076\u0065\u0074\u0069\u0063a":[]string {"\u0048e\u006c\u0076\u0065\u0074\u0069\u0063a","\u0048\u0065\u006c\u0076\u0065\u0074\u0069\u0063\u0061-\u0042\u006f\u006c\u0064","\u0048\u0065\u006c\u0076\u0065\u0074\u0069\u0063\u0061\u002d\u004f\u0062l\u0069\u0071\u0075\u0065","H\u0065\u006c\u0076\u0065ti\u0063a\u002d\u0042\u006f\u006c\u0064O\u0062\u006c\u0069\u0071\u0075\u0065"},"\u0043o\u0075\u0072\u0069\u0065\u0072":[]string {"\u0043o\u0075\u0072\u0069\u0065\u0072","\u0043\u006f\u0075r\u0069\u0065\u0072\u002d\u0042\u006f\u006c\u0064","\u0043o\u0075r\u0069\u0065\u0072\u002d\u004f\u0062\u006c\u0069\u0071\u0075\u0065","\u0043\u006f\u0075\u0072ie\u0072\u002d\u0042\u006f\u006c\u0064\u004f\u0062\u006c\u0069\u0071\u0075\u0065"},"\u0054i\u006de\u0073\u0020\u004e\u0065\u0077\u0020\u0052\u006f\u006d\u0061\u006e":[]string {"T\u0069\u006d\u0065\u0073\u002d\u0052\u006f\u006d\u0061\u006e","\u0054\u0069\u006d\u0065\u0073\u002d\u0042\u006f\u006c\u0064","\u0054\u0069\u006de\u0073\u002d\u0049\u0074\u0061\u006c\u0069\u0063","\u0054\u0069m\u0065\u0073\u002dB\u006f\u006c\u0064\u0049\u0074\u0061\u006c\u0069\u0063"},"\u0064e\u0066\u0061\u0075\u006c\u0074":[]string {"\u0048e\u006c\u0076\u0065\u0074\u0069\u0063a","\u0048\u0065\u006c\u0076\u0065\u0074\u0069\u0063\u0061-\u0042\u006f\u006c\u0064","\u0048\u0065\u006c\u0076\u0065\u0074\u0069\u0063\u0061\u002d\u004f\u0062l\u0069\u0071\u0075\u0065","H\u0065\u006c\u0076\u0065ti\u0063a\u002d\u0042\u006f\u006c\u0064O\u0062\u006c\u0069\u0071\u0075\u0065"}};type barSerByOrder []*_g .CT_BarSer ;func MakeBlockFromChartSpace (cs *_g .ChartSpace ,width ,height float64 ,theme *_cc .Theme )(*_ff .Block ,error ){_agbc ,_cgd :=_fad (cs ,width ,height ,theme ,false );if _cgd !=nil {return nil ,_cgd ;};_fed ,_cgd :=GetPageFromCreator (_agbc );if _cgd !=nil {return nil ,_cgd ;};_bg ,_cgd :=_ff .NewBlockFromPage (_fed );if _cgd !=nil {return nil ,_cgd ;};return _bg ,nil ;};func (_bc barSerByOrder )Less (i ,j int )bool {return _bc [i ].Order .ValAttr < _bc [j ].Order .ValAttr };type legendItem struct{_bbc string ;_abc *_cc .CT_ShapeProperties ;};var _adac =_bfec (1.5);type serCategory struct{_gfe string ;_fb []serValue ;};func _fcec (_bada uint8 ,_ddee float64 )string {_gbgg :=float64 (_bada );var _fbf float64 ;if _ddee < 0{_fbf =_gbgg *(1+_ddee );}else {_fbf =_gbgg +(255-_gbgg )*_ddee ;};return _ac .Sprintf ("\u0025\u0030\u0032\u0078",int (_fbf ));};func Lighten (clr float64 )float64 {return 0.6+0.4*clr };func MakeBlockFromCreator (c *_ff .Creator )(*_ff .Block ,error ){_efb ,_edgd :=GetPageFromCreator (c );if _edgd !=nil {return nil ,_edgd ;};_aaa ,_edgd :=_ff .NewBlockFromPage (_efb );if _edgd !=nil {return nil ,_edgd ;};return _aaa ,nil ;};func (_aed *creatorContext )drawLegend (_gac *Rectangle ,_bcg []*legendItem ,_cdc bool ){_dbd :=_aed ._cbc ;_dc :=_bfec (2.5)*_dbd ;_eca :=_adac *_dbd ;_gef :=(_dc -_eca )/2;_gcdb :=float64 (len (_bcg ));if _cdc {_agg :=&Rectangle {Top :_gac .Top +_bfec (1)*_dbd ,Bottom :_gac .Bottom -_bfec (1)*_dbd ,Left :_gac .Left +_bfec (2.5)*_dbd ,Right :_gac .Right -_bfec (2.5)*_dbd };var _dge float64 ;if _gcdb > 1{_dge =(_agg .Right -_agg .Left )/_gcdb ;};_eeg :=_agg .Left ;_fgf :=_agg .Top ;for _ ,_efa :=range _bcg {if _acc :=_efa ._abc ;_acc !=nil {_aed .drawRectangleWithProps (_acc ,_eeg ,_fgf +_gef ,_eca ,_eca ,false );_eaac :=_eeg +_eca *2;_cae :=_aed ._fac .NewStyledParagraph ();_cae .SetPos (_eaac ,_fgf );_fae :=_cae .Append (_efa ._bbc );_bdc ,_fcd :=_da .NewStandard14Font (_da .HelveticaName );if _fcd ==nil {_fae .Style =_ff .TextStyle {FontSize :_dc ,Font :_bdc ,TextRise :0.4};_aed ._fac .Draw (_cae );};};_eeg +=_dge ;};}else {_ege :=&Rectangle {Top :_gac .Top +_bfec (2.5)*_dbd ,Bottom :_gac .Bottom -_bfec (2.5)*_dbd ,Left :_gac .Left +_bfec (2.5)*_dbd ,Right :_gac .Right -_bfec (2.5)*_dbd };var _dcc float64 ;if _gcdb > 1{_dcc =(_ege .Bottom -_ege .Top -_dc )/(_gcdb -1);};_fce :=_ege .Top ;_dgaf :=_ege .Left ;_bbd :=_dgaf +_eca *2;for _ ,_edf :=range _bcg {if _dbe :=_edf ._abc ;_dbe !=nil {_aed .drawRectangleWithProps (_dbe ,_dgaf ,_fce +_gef ,_eca ,_eca ,false );_eea :=_aed ._fac .NewStyledParagraph ();_eea .SetPos (_bbd ,_fce );_fgd :=_eea .Append (_edf ._bbc );_gdd ,_gcda :=_da .NewStandard14Font (_da .HelveticaName );if _gcda ==nil {_fgd .Style =_ff .TextStyle {FontSize :_dc ,Font :_gdd ,TextRise :0.4};_aed ._fac .Draw (_eea );};};_fce +=_dcc ;};};};func (_ccc barSerByOrder )Swap (i ,j int ){_ccc [i ],_ccc [j ]=_ccc [j ],_ccc [i ]};func _cac (_gdb float64 )float64 {if _gdb < 0{_gdb +=float64 (-int (_gdb )+1);}else if _gdb > 1{_gdb -=float64 (int (_gdb ));};return _gdb ;};type Rectangle struct{Top float64 ;Bottom float64 ;Left float64 ;Right float64 ;};func _eac (_gegb _cc .ST_SchemeColorVal ,_efda *_cc .Theme )string {if _ecbf :=_efda .ThemeElements ;_ecbf !=nil {if _gde :=_ecbf .ClrScheme ;_gde !=nil {switch _gegb {case _cc .ST_SchemeColorValLt1 :return GetColorStringFromDmlColor (_gde .Lt1 );case _cc .ST_SchemeColorValDk1 ,_cc .ST_SchemeColorValTx1 :return GetColorStringFromDmlColor (_gde .Dk1 );case _cc .ST_SchemeColorValLt2 :return GetColorStringFromDmlColor (_gde .Lt2 );case _cc .ST_SchemeColorValDk2 :return GetColorStringFromDmlColor (_gde .Dk2 );case _cc .ST_SchemeColorValAccent1 :return GetColorStringFromDmlColor (_gde .Accent1 );case _cc .ST_SchemeColorValAccent2 :return GetColorStringFromDmlColor (_gde .Accent2 );case _cc .ST_SchemeColorValAccent3 :return GetColorStringFromDmlColor (_gde .Accent3 );case _cc .ST_SchemeColorValAccent4 :return GetColorStringFromDmlColor (_gde .Accent4 );case _cc .ST_SchemeColorValAccent5 :return GetColorStringFromDmlColor (_gde .Accent5 );case _cc .ST_SchemeColorValAccent6 :return GetColorStringFromDmlColor (_gde .Accent6 );};};};return "";};func CropImageByRect (sourceImg _b .Image ,rect _b .Rectangle )_b .Image {_gca ,_dggb ,_ggcf ,_bdea :=rect .Min .X ,rect .Min .Y ,rect .Max .X ,rect .Max .Y ;_edgg :=_b .NewNRGBA (_b .Rect (0,0,_ggcf -_gca ,_bdea -_dggb ));for _bgfe :=_gca ;_bgfe < _ggcf ;_bgfe ++{for _daeag :=_dggb ;_daeag < _bdea ;_daeag ++{_edgg .Set (_bgfe -_gca ,_daeag -_dggb ,sourceImg .At (_bgfe ,_daeag ));};};return _edgg ;};func _gcgd (_aeec ,_caf ,_cgf float64 )(uint8 ,uint8 ,uint8 ){var _bdce float64 ;if _cgf < 0.5{_bdce =_cgf *(1+_caf );}else {_bdce =_cgf +_caf -_cgf *_caf ;};_cdd :=_cgf *2-_bdce ;_aeec /=360.0;_gbdg :=_cac (_aeec +1.0/3.0);_bec :=_cac (_aeec );_bbbg :=_cac (_aeec -1.0/3.0);_bcb :=_dgf (_gbdg ,_bdce ,_cdd );_bga :=_dgf (_bec ,_bdce ,_cdd );_dcb :=_dgf (_bbbg ,_bdce ,_cdd );return uint8 (255*_bcb ),uint8 (255*_bga ),uint8 (255*_dcb );};func _dgf (_bddcb ,_gda ,_gebc float64 )float64 {if _bddcb *6< 1{return _gebc +(_gda -_gebc )*6*_bddcb ;}else if _bddcb *2< 1{return _gda ;}else if _bddcb *3< 2{return _gebc +(_gda -_gebc )*(2.0/3.0-_bddcb )*6;}else {return _gebc ;};};type creatorContext struct{_fac *_ff .Creator ;_cda *_cc .Theme ;_cbc float64 ;};func AssignStdFontByName (style _ff .TextStyle ,fontName string )*_da .PdfFont {_dadfd :=_da .StdFontName (fontName );return _da .NewStandard14FontMustCompile (_dadfd );};func GetPageFromCreator (c *_ff .Creator )(*_da .PdfPage ,error ){_cfg :=_c .NewBuffer ([]byte {});_gace :=c .Write (_cfg );if _gace !=nil {return nil ,_gace ;};_cfed :=_c .NewReader (_cfg .Bytes ());_gec ,_gace :=_da .NewPdfReader (_cfed );if _gace !=nil {return nil ,_gace ;};return _gec .GetPage (1);};func AdjustColorByLumMod (colorStr string ,lum float64 )string {var _abb ,_ggab ,_ecga uint8 ;_ggbc ,_ :=_ac .Sscanf (colorStr ,"\u0025\u0030\u0032x\u0025\u0030\u0032\u0078\u0025\u0030\u0032\u0078",&_abb ,&_ggab ,&_ecga );if _ggbc !=3{return "";};_acf ,_bcdc ,_afca :=_bbgg (_abb ,_ggab ,_ecga );_afca =lum *_afca ;_abb ,_ggab ,_ecga =_gcgd (_acf ,_bcdc ,_afca );return _ac .Sprintf ("\u0025\u0030\u0032x\u0025\u0030\u0032\u0078\u0025\u0030\u0032\u0078",_abb ,_ggab ,_ecga );};func AdjustColorByShade (colorStr string ,shade float64 )string {var _daea ,_fga ,_acaf uint8 ;_cgb ,_ :=_ac .Sscanf (colorStr ,"\u0025\u0030\u0032x\u0025\u0030\u0032\u0078\u0025\u0030\u0032\u0078",&_daea ,&_fga ,&_acaf );if _cgb !=3{return "";};return _bgg (_daea ,shade )+_bgg (_fga ,shade )+_bgg (_acaf ,shade );};var _eage =_bfec (2);const (BorderPositionTop BorderPosition =0;BorderPositionLeft BorderPosition =1;BorderPositionBottom BorderPosition =2;BorderPositionRight BorderPosition =3;);func (_gdf FontStyle )String ()string {return []string {"\u0052e\u0067\u0075\u006c\u0061\u0072","\u0042\u006f\u006c\u0064","\u0049\u0074\u0061\u006c\u0069\u0063","\u0042\u006f\u006c\u0064\u0049\u0074\u0061\u006c\u0069\u0063"}[int (_gdf )];};const DefaultFontSize =12.0;type FontStyle byte ;func GetDataFromXfrm (xfrm *_cc .CT_Transform2D )(float64 ,float64 ,float64 ,float64 ){var _efbd ,_efcf ,_accc ,_ebe float64 ;if _cbfg :=xfrm .Off ;_cbfg !=nil {_efbd =_dg .FromEMU (FromSTCoordinate (_cbfg .XAttr ));_efcf =_dg .FromEMU (FromSTCoordinate (_cbfg .YAttr ));};if _dgfg :=xfrm .Ext ;_dgfg !=nil {_accc =_dg .FromEMU (_dgfg .CxAttr );_ebe =_dg .FromEMU (_dgfg .CyAttr );};return _efbd ,_efcf ,_accc ,_ebe ;};var _agbcf =fontsMap {_bbfd :&_ad .Mutex {},_bbca :map[string ]map[FontStyle ]*_da .PdfFont {}};func _fdaf (_baac *_g .CT_DateAx )(uint32 ,_g .ST_AxPos ,_g .ST_TickMark ,_g .ST_TickLblPos ,*_g .CT_ChartLines ,uint32 ,*_cc .CT_ShapeProperties ,error ){var _efcb ,_gff uint32 ;var _bcc _g .ST_AxPos ;var _efgf _g .ST_TickMark ;var _gfea *_g .CT_ChartLines ;var _gga _g .ST_TickLblPos ;if _baac .AxId ==nil {return _efcb ,_bcc ,_efgf ,_gga ,_gfea ,_gff ,_baac .SpPr ,_cb .New ("\u004e\u006f\u0020x\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_efcb =_baac .AxId .ValAttr ;};if _baac .AxPos ==nil {return _efcb ,_bcc ,_efgf ,_gga ,_gfea ,_gff ,_baac .SpPr ,_cb .New ("\u004eo\u0020x\u0020\u0061\u0078\u0069\u0073 \u0070\u006fs\u0069\u0074\u0069\u006f\u006e");}else {_bcc =_baac .AxPos .ValAttr ;};if _baac .MajorTickMark !=nil {_efgf =_baac .MajorTickMark .ValAttr ;};if _baac .TickLblPos !=nil {_gga =_baac .TickLblPos .ValAttr ;};if _baac .CrossAx ==nil {return _efcb ,_bcc ,_efgf ,_gga ,_gfea ,_gff ,_baac .SpPr ,_cb .New ("\u004e\u006f \u0063\u0072\u006fs\u0073\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_gff =_baac .CrossAx .ValAttr ;};_gfea =_baac .MajorGridlines ;return _efcb ,_bcc ,_efgf ,_gga ,_gfea ,_gff ,_baac .SpPr ,nil ;};type BorderPosition byte ;func GetColorStringFromDmlColor (dmlColor *_cc .CT_Color )string {var _fcgc string ;if _gaca :=dmlColor .SrgbClr ;_gaca !=nil {_fcgc =_gaca .ValAttr ;}else if _gdef :=dmlColor .SysClr ;_gdef !=nil {return "\u0030\u0030\u0030\u0030\u0030\u0030";};return _fcgc ;};func FromSTCoordinate32 (st _cc .ST_Coordinate32 )int64 {if _gfd :=st .ST_Coordinate32Unqualified ;_gfd !=nil {return int64 (*_gfd );};return 0;};func (_dbeb *Rectangle )scale (_debe float64 ){_dbeb .Top *=_debe ;_dbeb .Bottom *=_debe ;_dbeb .Left *=_debe ;_dbeb .Right *=_debe ;};func DrawLine (c *_ff .Creator ,x0 ,y0 ,x1 ,y1 ,width float64 ,color _ff .Color ){if color ==nil {return ;};_ffc :=c .NewLine (x0 ,y0 ,x1 ,y1 );_ffc .SetLineWidth (width );_ffc .SetColor (color );c .Draw (_ffc );};var _df =_bfec (7.5);func RegisterFont (name string ,style FontStyle ,font *_da .PdfFont ){_agbcf ._bbfd .Lock ();if _agbcf ._bbca [name ]==nil {_agbcf ._bbca [name ]=map[FontStyle ]*_da .PdfFont {};};_agbcf ._bbca [name ][style ]=font ;_agbcf ._bbfd .Unlock ();};const (ImgPart_whole ImgPart =0;ImgPart_t ImgPart =1;ImgPart_b ImgPart =2;ImgPart_l ImgPart =3;ImgPart_r ImgPart =4;ImgPart_lt ImgPart =5;ImgPart_rt ImgPart =6;ImgPart_lb ImgPart =7;ImgPart_rb ImgPart =8;);type serValue struct{_faae string ;_ace float64 ;_bfcb *_cc .CT_ShapeProperties ;};func (_faaeb *Rectangle )Translate (x ,y float64 ){_faaeb .Left +=x ;_faaeb .Right +=x ;_faaeb .Top +=y ;_faaeb .Bottom +=y ;};var _adfb =_bfec (1.5);func _bfec (_gddc float64 )float64 {return _gddc *_dg .Millimeter };func AdjustColor (colorStr string ,EG_ColorTransform []*_cc .EG_ColorTransform )string {for _ ,_ccff :=range EG_ColorTransform {if _bde :=_ccff .Tint ;_bde !=nil {if _eede :=_bde .ValAttr .ST_PositiveFixedPercentageDecimal ;_eede !=nil {colorStr =AdjustColorByTint (colorStr ,float64 (*_eede )/100000);};};if _ggbb :=_ccff .Shade ;_ggbb !=nil {if _bfd :=_ggbb .ValAttr .ST_PositiveFixedPercentageDecimal ;_bfd !=nil {colorStr =AdjustColorByShade (colorStr ,float64 (*_bfd )/100000);};};if _acbc :=_ccff .LumMod ;_acbc !=nil {if _gae :=_acbc .ValAttr .ST_PercentageDecimal ;_gae !=nil {colorStr =AdjustColorByLumMod (colorStr ,float64 (*_gae )/100000);};};};return colorStr ;};func RegisterFontsFromDirectory (dirName string )error {_aac ,_faab :=_ag .Open (dirName );if _faab !=nil {return _faab ;};defer _aac .Close ();_gfeb ,_faab :=_aac .Readdirnames (0);if _faab !=nil {return _faab ;};for _ ,_fbg :=range _gfeb {if _fg .HasSuffix (_fbg ,"\u002e\u0074\u0074\u0066"){_acfg :=dirName +"\u002f"+_fbg ;_bae ,_ddb :=_e .ParseFile (_acfg );if _ddb !=nil {_fa .Log .Debug ("\u0043a\u006e\u006e\u006f\u0074\u0020\u0070\u0061\u0072\u0073\u0065\u0020T\u0054\u0046\u0020\u0066\u0069\u006c\u0065\u0020\u0025\u0073",_ddb );continue ;};_cgg :=_bae .GetNameByID (1);if _cgg ==""{_fa .Log .Debug ("\u004e\u006f\u0020\u0066\u006fn\u0074\u0020\u0066\u0061\u006d\u0069\u006c\u0079\u0020\u0069\u006e\u0066\u006fr\u006d\u0061\u0074\u0069\u006f\u006e\u0020\u0069\u006e\u0020\u0074\u0068\u0065\u0020\u0066\u0069\u006c\u0065\u0020\u0025\u0073",_acfg );continue ;};_ggg :=make ([]byte ,0);for _aeb :=0;_aeb < len (_cgg );_aeb ++{if _cgg [_aeb ]==39||_cgg [_aeb ]==92{continue ;};_deb :=4;if _aeb +_deb < len (_cgg ){if _cgg [_aeb :_aeb +_deb ]=="\u0000"{_aeb =_aeb +_deb +1;continue ;};};_ggg =append (_ggg ,_cgg [_aeb ]);};_cgg =_fg .Replace (string (_ggg ),"\u0078\u0030\u0030","",-1);_dcd :=_bae .GetNameByID (2);if _dcd ==""{_fa .Log .Debug ("N\u006f\u0020\u0073\u0074\u0079\u006ce\u0020\u0069\u006e\u0066\u006f\u0072m\u0061\u0074\u0069\u006f\u006e\u0020\u0069n\u0020\u0074\u0068\u0065\u0020\u0066\u0069\u006c\u0065\u0020%\u0073",_acfg );continue ;};_ggg =make ([]byte ,0);for _gdaf :=0;_gdaf < len (_dcd );_gdaf ++{if _dcd [_gdaf ]==39||_dcd [_gdaf ]==92{continue ;};_bcgb :=4;if _gdaf +_bcgb < len (_dcd ){if _dcd [_gdaf :_gdaf +_bcgb ]=="\u0000"{_gdaf =_gdaf +_bcgb +1;continue ;};};_ggg =append (_ggg ,_dcd [_gdaf ]);};_dcd =_fg .Replace (string (_ggg ),"\u0078\u0030\u0030","",-1);_dff ,_ddb :=_da .NewCompositePdfFontFromTTFFile (_acfg );if _ddb !=nil {_fa .Log .Debug ("C\u0061\u006e\u006e\u006f\u0074\u0020m\u0061\u006b\u0065\u0020\u0061\u0020f\u006f\u006e\u0074\u0020\u0066\u0072\u006fm\u0020\u0054\u0054\u0046\u0020\u0066\u0069\u006c\u0065\u0020%\u0073",_ddb );continue ;};RegisterFont (_cgg ,_abg [_dcd ],_dff );};};return nil ;};func _acb (_ecb *_g .CT_ValAx )(uint32 ,_g .ST_AxPos ,_g .ST_TickMark ,_g .ST_TickLblPos ,*_g .CT_ChartLines ,uint32 ,*_cc .CT_ShapeProperties ,error ){var _faf ,_bcdd uint32 ;var _eff _g .ST_AxPos ;var _ggc _g .ST_TickMark ;var _agd *_g .CT_ChartLines ;var _aeag _g .ST_TickLblPos ;if _ecb .AxId ==nil {return _faf ,_eff ,_ggc ,_aeag ,_agd ,_bcdd ,_ecb .SpPr ,_cb .New ("\u004e\u006f\u0020x\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_faf =_ecb .AxId .ValAttr ;};if _ecb .AxPos ==nil {return _faf ,_eff ,_ggc ,_aeag ,_agd ,_bcdd ,_ecb .SpPr ,_cb .New ("\u004eo\u0020x\u0020\u0061\u0078\u0069\u0073 \u0070\u006fs\u0069\u0074\u0069\u006f\u006e");}else {_eff =_ecb .AxPos .ValAttr ;};if _ecb .MajorTickMark !=nil {_ggc =_ecb .MajorTickMark .ValAttr ;};if _ecb .TickLblPos !=nil {_aeag =_ecb .TickLblPos .ValAttr ;};if _ecb .CrossAx ==nil {return _faf ,_eff ,_ggc ,_aeag ,_agd ,_bcdd ,_ecb .SpPr ,_cb .New ("\u004e\u006f \u0063\u0072\u006fs\u0073\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_bcdd =_ecb .CrossAx .ValAttr ;};_agd =_ecb .MajorGridlines ;return _faf ,_eff ,_ggc ,_aeag ,_agd ,_bcdd ,_ecb .SpPr ,nil ;};func (_decd *creatorContext )drawBorderWithProps (_add *_cc .CT_ShapeProperties ,_eab *Rectangle ,_gdefe float64 ){if _eab !=nil &&_add !=nil &&_add .Ln !=nil &&_add .Ln .SolidFill !=nil {_cbbf :=_decd .getPdfColorFromSolidFill (_add .Ln .SolidFill );DrawRectangle (_decd ._fac ,_eab ,_gdefe ,_cbbf );};};const (FontStyle_Regular FontStyle =0;FontStyle_Bold FontStyle =1;FontStyle_Italic FontStyle =2;FontStyle_BoldItalic FontStyle =3;);func (_fe *creatorContext )drawBarChart (_agf *_g .CT_BarChart ,_ga *Rectangle ,_adf *_g .CT_PlotAreaChoice1 )([]*legendItem ,error ){var _edg bool ;if _gaa :=_agf .BarDir ;_gaa !=nil {_edg =_gaa .ValAttr ==_g .ST_BarDirBar ;};_fee :=_agf .Ser ;_bd .Sort (barSerByOrder (_fee ));_cd :=map[string ]serCategory {};_abe :=[]string {};_ae :=[]*legendItem {};_ge :=_f .Inf (1);_feg :=_f .Inf (-1);for _ ,_de :=range _fee {var _ca string ;if _cf :=_de .Tx ;_cf !=nil {if _db :=_cf .Choice ;_db !=nil {if _db .V !=nil {_ca =*_db .V ;}else if _adb :=_db .StrRef ;_adb !=nil {if _cdf :=_adb .StrCache ;_cdf !=nil {for _ ,_fd :=range _cdf .Pt {_ca =_fd .V ;};};};};};if _aca :=_de .Cat ;_aca !=nil {if _eg :=_aca .Choice ;_eg !=nil {if _beg :=_eg .StrRef ;_beg !=nil {if _cff :=_beg .StrCache ;_cff !=nil {for _ ,_dae :=range _cff .Pt {_gf :=_dae .V ;if _ ,_ffd :=_cd [_gf ];!_ffd {_cd [_gf ]=serCategory {_gfe :_gf ,_fb :[]serValue {}};_abe =append (_abe ,_gf );};};};}else if _aeg :=_eg .NumRef ;_aeg !=nil {if _cbb :=_aeg .NumCache ;_cbb !=nil {var _eb string ;if _cbb .FormatCode !=nil {_eb =*_cbb .FormatCode ;};for _ ,_gc :=range _cbb .Pt {var _ec string ;if _gc .FormatCodeAttr ==nil {_ec =_eb ;}else {_ec =*_gc .FormatCodeAttr ;};var _daa string ;_ea ,_agb :=_d .ParseFloat (_gc .V ,64);if _agb !=nil {_daa =_gc .V ;}else {_daa =_ed .Number (_ea ,_ec );};if _ ,_bbf :=_cd [_daa ];!_bbf {_cd [_daa ]=serCategory {_gfe :_daa ,_fb :[]serValue {}};_abe =append (_abe ,_daa );};};};};};};if _ccf :=_de .Val ;_ccf !=nil {if _cdg :=_ccf .Choice ;_cdg !=nil {if _fdg :=_cdg .NumRef ;_fdg !=nil {if _ega :=_fdg .NumCache ;_ega !=nil {for _gea ,_bdd :=range _ega .Pt {_eaf ,_dbg :=_d .ParseFloat (_bdd .V ,64);if _dbg !=nil {_eaf =0;_fa .Log .Debug ("\u0070a\u0072s\u0065\u0020\u0065\u0072\u0072\u006f\u0072\u003a\u0020\u0025\u0073",_dbg );};if _eaf > _feg {_feg =_eaf ;};if _eaf < _ge {_ge =_eaf ;};_ef :=_cd [_abe [_gea ]];_ef ._fb =append (_ef ._fb ,serValue {_faae :_ca ,_ace :_eaf ,_bfcb :_de .SpPr });_cd [_abe [_gea ]]=_ef ;};};};};};_ae =append (_ae ,&legendItem {_bbc :_ca ,_abc :_de .SpPr });};var _aa float64 ;var _ada ,_ffe float64 ;if _feg ==0&&_ge ==0{_aa =0.2;_ffe =0;_ada =1;}else {var _dad float64 ;if _cbf :=_f .Abs (_ge );_feg < _cbf {_dad =_cbf ;}else {_dad =_feg ;};_cg :=_f .Pow (10,_f .Floor (_f .Log10 (_dad )));_cab :=_dad /_cg ;if _cab >=1.715&&_cab < 4.29{_aa =0.5;}else if _cab >=4.29&&_cab < 8.58{_aa =1;}else {_aa =2;};_aa *=_cg ;if _feg <=0{_ada =0;}else {_ada =(_f .Ceil (_feg /_aa )+1)*_aa ;};if _ge >=0{_ffe =0;}else {_ffe =(_f .Floor (_ge /_aa )-1)*_aa ;};};_fdge :=_fe .drawAxes (_adf ,_ffe ,_ada ,_aa ,_abe ,_ga ,_edg );if _fdge !=nil {return nil ,_fdge ;};_fgg :=0.0;if _agf .GapWidth !=nil {if _fegf :=_agf .GapWidth .ValAttr ;_fegf !=nil {if _bf :=_fegf .ST_GapAmountUShort ;_bf !=nil {_fgg =float64 (*_bf )/100.0;};};};_dac :=_ga .Right -_ga .Left ;_efd :=_ga .Bottom -_ga .Top ;_egb :=float64 (len (_abe ));if _edg {_bfe :=_ada /(_ada -_ffe )*_dac ;_af :=-_ffe /(_ada -_ffe )*_dac ;_adab :=_ga .Left +_af ;_cbe :=_efd /_egb ;for _gfa ,_fdf :=range _abe {_ddd :=_cd [_fdf ];_ba :=float64 (len (_ddd ._fb ))+_fgg ;_ebb :=_cbe /_ba ;_cbd :=_ebb *_fgg ;_eag :=_ga .Bottom -float64 (_gfa )*_cbe -_cbd /2-_ebb ;for _ ,_afc :=range _ddd ._fb {if _afc ._ace ==0{continue ;};var _abf ,_gg float64 ;if _afc ._ace > 0{_gg =_afc ._ace /_ada *_bfe ;_fe .drawRectangleWithProps (_afc ._bfcb ,_adab ,_eag ,_gg ,_ebb ,false );}else {_gg =_afc ._ace /_ffe *_af ;_abf =_adab -_gg ;_fe .drawRectangleWithProps (_afc ._bfcb ,_abf ,_eag ,_gg ,_ebb ,false );};_eag -=_ebb ;};};}else {_def :=_ada /(_ada -_ffe )*_efd ;_ggb :=-_ffe /(_ada -_ffe )*_efd ;_aab :=_ga .Top +_def ;_ccfa :=_dac /_egb ;for _eaa ,_bbg :=range _abe {_aef :=_cd [_bbg ];_aee :=float64 (len (_aef ._fb ))+_fgg ;_faa :=_ccfa /_aee ;_ebba :=_faa *_fgg ;_bfc :=_ga .Left +float64 (_eaa )*_ccfa +_ebba /2;for _ ,_ee :=range _aef ._fb {var _edd ,_efe float64 ;if _ee ._ace > 0{_efe =_ee ._ace /_ada *_def ;_edd =_aab -_efe ;_fe .drawRectangleWithProps (_ee ._bfcb ,_bfc ,_edd ,_faa ,_efe ,false );}else {_efe =_ee ._ace /_ffe *_ggb ;_fe .drawRectangleWithProps (_ee ._bfcb ,_bfc ,_aab ,_faa ,_efe ,false );};_bfc +=_faa ;};};};return _ae ,nil ;};func _bbec (_ceab *_g .CT_CatAx )(uint32 ,_g .ST_AxPos ,_g .ST_TickMark ,_g .ST_TickLblPos ,*_g .CT_ChartLines ,uint32 ,*_cc .CT_ShapeProperties ,error ){var _bfcf ,_ffa uint32 ;var _eed _g .ST_AxPos ;var _ccfb _g .ST_TickMark ;var _fdc *_g .CT_ChartLines ;var _eefe _g .ST_TickLblPos ;if _ceab .AxId ==nil {return _bfcf ,_eed ,_ccfb ,_eefe ,_fdc ,_ffa ,_ceab .SpPr ,_cb .New ("\u004e\u006f\u0020x\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_bfcf =_ceab .AxId .ValAttr ;};if _ceab .AxPos ==nil {return _bfcf ,_eed ,_ccfb ,_eefe ,_fdc ,_ffa ,_ceab .SpPr ,_cb .New ("\u004eo\u0020x\u0020\u0061\u0078\u0069\u0073 \u0070\u006fs\u0069\u0074\u0069\u006f\u006e");}else {_eed =_ceab .AxPos .ValAttr ;};if _ceab .MajorTickMark !=nil {_ccfb =_ceab .MajorTickMark .ValAttr ;};if _ceab .TickLblPos !=nil {_eefe =_ceab .TickLblPos .ValAttr ;};if _ceab .CrossAx ==nil {return _bfcf ,_eed ,_ccfb ,_eefe ,_fdc ,_ffa ,_ceab .SpPr ,_cb .New ("\u004e\u006f \u0063\u0072\u006fs\u0073\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_ffa =_ceab .CrossAx .ValAttr ;};_fdc =_ceab .MajorGridlines ;return _bfcf ,_eed ,_ccfb ,_eefe ,_fdc ,_ffa ,_ceab .SpPr ,nil ;};func DrawRectangle (c *_ff .Creator ,r *Rectangle ,w float64 ,color _ff .Color ){if color ==nil {return ;};DrawLine (c ,r .Left ,r .Top ,r .Right ,r .Top ,w ,color );DrawLine (c ,r .Left ,r .Top ,r .Left ,r .Bottom ,w ,color );DrawLine (c ,r .Left ,r .Bottom ,r .Right ,r .Bottom ,w ,color );DrawLine (c ,r .Right ,r .Top ,r .Right ,r .Bottom ,w ,color );};func IsNoSpaceLanguage (symbol string )bool {for _ ,_gfc :=range symbol {if _ab .Is (_ab .Han ,_gfc ){return true ;};};return false ;};var _ce =_bfec (0.125);func _bcad (_bbcc *_g .CT_SerAx )(uint32 ,_g .ST_AxPos ,_g .ST_TickMark ,_g .ST_TickLblPos ,*_g .CT_ChartLines ,uint32 ,*_cc .CT_ShapeProperties ,error ){var _eaef ,_adad uint32 ;var _caee _g .ST_AxPos ;var _fadf _g .ST_TickMark ;var _gfg *_g .CT_ChartLines ;var _eefd _g .ST_TickLblPos ;if _bbcc .AxId ==nil {return _eaef ,_caee ,_fadf ,_eefd ,_gfg ,_adad ,_bbcc .SpPr ,_cb .New ("\u004e\u006f\u0020x\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_eaef =_bbcc .AxId .ValAttr ;};if _bbcc .AxPos ==nil {return _eaef ,_caee ,_fadf ,_eefd ,_gfg ,_adad ,_bbcc .SpPr ,_cb .New ("\u004eo\u0020x\u0020\u0061\u0078\u0069\u0073 \u0070\u006fs\u0069\u0074\u0069\u006f\u006e");}else {_caee =_bbcc .AxPos .ValAttr ;};if _bbcc .MajorTickMark !=nil {_fadf =_bbcc .MajorTickMark .ValAttr ;};if _bbcc .TickLblPos !=nil {_eefd =_bbcc .TickLblPos .ValAttr ;};if _bbcc .CrossAx ==nil {return _eaef ,_caee ,_fadf ,_eefd ,_gfg ,_adad ,_bbcc .SpPr ,_cb .New ("\u004e\u006f \u0063\u0072\u006fs\u0073\u0020\u0061\u0078\u0069\u0073\u0020\u0049\u0044");}else {_adad =_bbcc .CrossAx .ValAttr ;};_gfg =_bbcc .MajorGridlines ;return _eaef ,_caee ,_fadf ,_eefd ,_gfg ,_adad ,_bbcc .SpPr ,nil ;};func GetImage (c *_ff .Creator ,goImg _b .Image ,imgHeight ,imgWidth ,left ,top ,dividerX ,dividerY float64 ,part ImgPart )(*_ff .Image ,error ){if goImg ==nil {return nil ,nil ;};_fbdd :=goImg .Bounds ().Size ();_ccfd :=_fbdd .X ;_bcac :=_fbdd .Y ;if dividerX !=0{dividerX =dividerX /imgWidth *float64 (_ccfd );};if dividerY !=0{dividerY =dividerY /imgHeight *float64 (_bcac );};var _bace _b .Rectangle ;switch part {case ImgPart_t :_bace =_b .Rect (0,0,_ccfd ,int (dividerY ));case ImgPart_b :_bace =_b .Rect (0,int (dividerY ),_ccfd ,_bcac );case ImgPart_l :_bace =_b .Rect (0,0,int (dividerX ),_bcac );case ImgPart_r :_bace =_b .Rect (int (dividerX ),0,_ccfd ,_bcac );case ImgPart_lt :_bace =_b .Rect (0,0,int (dividerX ),int (dividerY ));case ImgPart_rt :_bace =_b .Rect (int (dividerX ),0,_ccfd ,int (dividerY ));case ImgPart_lb :_bace =_b .Rect (0,int (dividerY ),int (dividerX ),_bcac );case ImgPart_rb :_bace =_b .Rect (int (dividerX ),int (dividerY ),_ccfd ,_bcac );default:_bace =_b .Rect (0,0,_ccfd ,_bcac );};_bge :=CropImageByRect (goImg ,_bace );_gcgdf ,_efcg :=c .NewImageFromGoImage (_bge );if _efcg !=nil {return nil ,_efcg ;};_gcgdf .Scale (imgWidth /float64 (_ccfd ),imgHeight /float64 (_bcac ));_gcgdf .SetPos (left ,top );return _gcgdf ,nil ;};func (_badb *creatorContext )drawRectangleWithProps (_bac *_cc .CT_ShapeProperties ,_gcf ,_fdbf ,_fbd ,_dfbe float64 ,_cgfa bool ){_cbeg :=_badb ._fac .NewRectangle (_gcf ,_fdbf ,_fbd ,_dfbe );if _bac ==nil {if _cgfa {_cbeg .SetBorderWidth (_ce );}else {return ;};}else {_gcbe :=_badb .getPdfColorFromSolidFill (_bac .SolidFill );if _gcbe !=nil {_cbeg .SetFillColor (_gcbe );};if _eebc :=_bac .Ln ;_eebc !=nil {if _bdeg :=_eebc .WAttr ;_bdeg !=nil {_gafe :=_dg .FromEMU (int64 (*_bdeg ));_cbeg .SetBorderWidth (_gafe );if _eggg :=_eebc .SolidFill ;_eggg !=nil {_afb :=_badb .getPdfColorFromSolidFill (_eggg );if _afb !=nil {_cbeg .SetBorderColor (_afb );};};}else {_cbeg .SetBorderWidth (0);};};};_badb ._fac .Draw (_cbeg );};func (_cefa *creatorContext )drawLineWithProps (_aceg *_cc .CT_ShapeProperties ,_bfdb ,_cde ,_badg ,_cdcd float64 ,_gefd bool ){if _aceg !=nil {if _ecd :=_aceg .Ln ;_ecd !=nil {_fdbc :=_cefa .getPdfColorFromSolidFill (_ecd .SolidFill );if _fdbc ==nil &&_gefd {_fdbc =_ff .ColorBlack ;};if _fdbc !=nil {var _aggf float64 ;if _egf :=_ecd .WAttr ;_egf !=nil {_aggf =_dg .FromEMU (int64 (*_egf ));}else {_aggf =_ce ;};DrawLine (_cefa ._fac ,_bfdb ,_cde ,_badg ,_cdcd ,_aggf ,_fdbc );};};};};func MakeTempCreator (width ,height float64 )*_ff .Creator {_fge :=_ff .New ();_fge .SetPageSize (_ff .PageSize {width ,height });_fge .SetPageMargins (0,0,0,0);return _fge ;};var _gaf =_bfec (5);func (_edfe *creatorContext )getPdfColorFromSolidFill (_egcb *_cc .CT_SolidColorFillProperties )_ff .Color {if _egcb ==nil {return nil ;};_becd :="";if _eadd :=_egcb .SrgbClr ;_eadd !=nil {_becd =_eadd .ValAttr ;}else if _bcbg :=_egcb .SchemeClr ;_bcbg !=nil {_becd =_ecba (_bcbg .ValAttr ,_edfe ._cda );};if _becd ==""{return nil ;};return _ff .ColorRGBFromHex ("\u0023"+_becd );};func FromSTPercentage (st *_cc .ST_Percentage )float64 {if _bfaf :=st .ST_PercentageDecimal ;_bfaf !=nil {return float64 (*_bfaf )/100000;};return 0;};func AdjustColorByTint (colorStr string ,tint float64 )string {var _fag ,_bab ,_dcccb uint8 ;_aaf ,_ :=_ac .Sscanf (colorStr ,"\u0025\u0030\u0032x\u0025\u0030\u0032\u0078\u0025\u0030\u0032\u0078",&_fag ,&_bab ,&_dcccb );if _aaf !=3{return "";};return _fcec (_fag ,tint )+_fcec (_bab ,tint )+_fcec (_dcccb ,tint );};func FromSTCoordinate (st _cc .ST_Coordinate )int64 {if _aggd :=st .ST_CoordinateUnqualified ;_aggd !=nil {return *_aggd ;};return 0;};func _bgg (_geb uint8 ,_egg float64 )string {_ccfgd :=float64 (_geb );return _ac .Sprintf ("\u0025\u0030\u0032\u0078",int (_ccfgd *_egg ));};func PointsFromTwips (twips int64 )float64 {return float64 (int64 (float64 (twips )*_dg .Twips *10+0.5))/10;};var _abg =map[string ]FontStyle {"\u0052e\u0067\u0075\u006c\u0061\u0072":FontStyle_Regular ,"\u0042\u006f\u006c\u0064":FontStyle_Bold ,"\u0049\u0074\u0061\u006c\u0069\u0063":FontStyle_Italic ,"B\u006f\u006c\u0064\u0020\u0049\u0074\u0061\u006c\u0069\u0063":FontStyle_BoldItalic };func TwipsFromPoints (points float64 )float64 {return points /_dg .Twips };func (_afe barSerByOrder )Len ()int {return len (_afe )};