47 lines
93 KiB
Go
Raw Normal View History

2021-04-23 20:00:00 +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/
2022-02-25 19:20:45 +00:00
package convert ;import (_ed "bytes";_a "errors";_c "github.com/unidoc/unioffice/common/logger";_fb "github.com/unidoc/unioffice/common/tempstorage";_gg "github.com/unidoc/unioffice/document";_ecb "github.com/unidoc/unioffice/internal/convertutils";_fcd "github.com/unidoc/unioffice/internal/formatutils";_ga "github.com/unidoc/unioffice/measurement";_ba "github.com/unidoc/unioffice/schema/soo/dml";_d "github.com/unidoc/unioffice/schema/soo/dml/chart";_fc "github.com/unidoc/unioffice/schema/soo/dml/picture";_ecd "github.com/unidoc/unioffice/schema/soo/ofc/sharedTypes";_edg "github.com/unidoc/unioffice/schema/soo/wml";_ggd "github.com/unidoc/unioffice/schema/urn/schemas_microsoft_com/vml";_ggb "github.com/unidoc/unioffice/vmldrawing";_ec "github.com/unidoc/unipdf/v3/creator";_cg "github.com/unidoc/unipdf/v3/model";_e "io/ioutil";_f "regexp";_g "strconv";_ag "strings";);func _afccb (_gcff *_gg .Document ,_fffa string ,_cgab *_edg .CT_TblPr ,_adeb *_edg .CT_PPrGeneral ,_gaad *_edg .CT_RPr )(*_edg .CT_TblPr ,*_edg .CT_PPrGeneral ,*_edg .CT_RPr ){if _cgab .TblStyle !=nil {_gdecf :=_gcff .GetStyleByID (_fffa );if _dggb :=_gdecf .X ();_dggb !=nil {if _dffe :=_dggb .TblPr ;_dffe !=nil {_fgae :=_cgab .TblBorders ;var _dce *_edg .CT_TblBorders ;if _dffe .TblBorders !=nil {_dce =_dffe .TblBorders ;};if _fgae ==nil {_fgae =_dce ;}else {if _dce !=nil {if _fgae .Top ==nil {_fgae .Top =_dce .Top ;};if _fgae .Bottom ==nil {_fgae .Bottom =_dce .Bottom ;};if _fgae .Left ==nil {_fgae .Left =_dce .Left ;};if _fgae .Right ==nil {_fgae .Right =_dce .Right ;};if _fgae .InsideH ==nil {_fgae .InsideH =_dce .InsideH ;};if _fgae .InsideV ==nil {_fgae .InsideV =_dce .InsideV ;};};};_cgab .TblBorders =_fgae ;_adbc :=_cgab .Shd ;_cgce :=_dffe .Shd ;if _adbc ==nil {_adbc =_cgce ;}else {if _cgce !=nil &&_adbc .FillAttr ==nil {_adbc .FillAttr =_cgce .FillAttr ;};};_cgab .Shd =_adbc ;_gegab :=_cgab .TblCellMar ;_fffg :=_dffe .TblCellMar ;if _gegab ==nil {_gegab =_fffg ;}else {if _fffg !=nil &&_gegab .Left ==nil {_gegab .Left =_fffg .Left ;};};_cgab .TblCellMar =_gegab ;if _cgab .TblInd ==nil {_cgab .TblInd =_dffe .TblInd ;};if _cgab .Jc ==nil {_cgab .Jc =_dffe .Jc ;};};if _dggb .PPr !=nil {_adeb =_bcaa (_dggb .PPr ,_adeb );};if _dggb .RPr !=nil {_gaad =_egfe (_dggb .RPr ,_gaad );};if _ececd :=_dggb .BasedOn ;_ececd !=nil {return _afccb (_gcff ,_ececd .ValAttr ,_cgab ,_adeb ,_gaad );};};};return _cgab ,_adeb ,_gaad ;};type word struct{_ace []*symbol ;_edd float64 ;_gfe float64 ;_eg bool ;};var _cead =[]romanMatch {romanMatch {1000,"\u006d"},romanMatch {900,"\u0063\u006d"},romanMatch {500,"\u0064"},romanMatch {400,"\u0063\u0064"},romanMatch {100,"\u0063"},romanMatch {90,"\u0078\u0063"},romanMatch {50,"\u006c"},romanMatch {40,"\u0078\u006c"},romanMatch {10,"\u0078"},romanMatch {9,"\u0069\u0078"},romanMatch {5,"\u0076"},romanMatch {4,"\u0069\u0076"},romanMatch {1,"\u0069"}};func (_faag *convertContext )addCurrentWordToParagraph (){for {_ecde :=_faag ._eebc ._cc ;_abbc :=_ecde +_faag ._abbf ._gfe ;if _abbc > _faag ._eebc ._ca {_faag .newLine ();};_gefc :=_faag ._eeeg ._bb +_faag ._eebc ._dg ;_bdde :=_gefc +_faag ._eebc ._cef ;_egcfg :=false ;_ggc :=append (_faag ._gcda ._ef ,_faag ._eeeg ._ged ...);for _ ,_badf :=range _ggc {_agga :=_badf ._acc ;if ((_gefc > _agga .Top &&_gefc < _agga .Bottom )||(_bdde > _agga .Top &&_bdde < _agga .Bottom ))&&((_ecde > _agga .Left &&_ecde < _agga .Right )||(_abbc > _agga .Left &&_abbc < _agga .Right )){_egcfg =true ;if _faag ._eebc ._cc < _agga .Right {_faag ._eaac ._dc =_agga .Left ;_faag ._eebc ._cc =_agga .Right ;_faag .newSpan ();};};};if !_egcfg {break ;};};if !_faag ._abbf ._eg ||len (_faag ._eaac ._aaaa )> 0{_faag ._abbf ._edd =_faag ._eebc ._cc ;_faag ._eaac ._aaaa =append (_faag ._eaac ._aaaa ,_faag ._abbf );_faag ._eebc ._cc +=_faag ._abbf ._gfe ;for _ ,_ccf :=range _faag ._abbf ._ace {_faag .adjustHeights (_ccf ._eff );};};};func (_cgf *convertContext )drawPages (){for _ ,_adf :=range _cgf ._afdbf {_cgf ._baba .NewPage ();_cgf .drawPage (_adf );};};func _agf (_cfg *_ec .Creator ,_eb *block ){_eb ._ee .SetPos (_eb ._
2022-01-15 21:17:38 +00:00
2022-02-25 19:20:45 +00:00
// ConvertToPdfWithOptions convert the document to PDF with file given options.
func ConvertToPdfWithOptions (d *_gg .Document ,opts *Options )*_ec .Creator {var _cfab map[string ]string ;if opts !=nil {if opts .ProcessFields {_cfab =_abaf (d );};if len (opts .FontFiles )> 0{_gfgeea :=_ecb .RegisterFontsFromFiles (opts .FontFiles );if _gfgeea !=nil {_c .Log .Debug ("\u0046\u0061\u0069\u006c t\u006f\u0020\u006c\u006f\u0061\u0064\u0020\u0066\u006f\u006e\u0074\u0073\u003a\u0020%\u0076",opts .FontDirectory );};};if opts .FontDirectory !=""{_cgfc :=_ecb .RegisterFontsFromDirectory (opts .FontDirectory );if _cgfc !=nil {_c .Log .Debug ("\u0046\u0061\u0069l\u0020\u0074\u006f\u0020l\u006f\u0061\u0064\u0020\u0066\u006f\u006et\u0020\u0064\u0069\u0072\u0065\u0063\u0074\u006f\u0072\u0079\u003a\u0020\u0025\u0076",_cgfc .Error ());};};};var _dbbe *_edg .CT_PPrGeneral ;var _gebg *_edg .CT_RPr ;if _acee :=d .Styles .X ().DocDefaults ;_acee !=nil {if _caa :=_acee .PPrDefault ;_caa !=nil {_dbbe =_caa .PPr ;};if _feef :=_acee .RPrDefault ;_feef !=nil {_gebg =_feef .RPr ;};};_ecee ,_bfge :=_agadgg (210),_agadgg (297);_eacf :=float64 (_ga .Inch *1);_agaa ,_bbeb ,_faca ,_cfbd :=_eacf ,_eacf ,_eacf ,_eacf ;var _eaca ,_deca float64 ;if _aagd :=d .BodySection ().X ();_aagd !=nil {if _cagfe :=_aagd .PgMar ;_cagfe !=nil {if _cagfe .LeftAttr .ST_UnsignedDecimalNumber !=nil {_agaa =_ecb .PointsFromTwips (int64 (*_cagfe .LeftAttr .ST_UnsignedDecimalNumber ));};if _cagfe .LeftAttr .ST_UnsignedDecimalNumber !=nil {_bbeb =_ecb .PointsFromTwips (int64 (*_cagfe .RightAttr .ST_UnsignedDecimalNumber ));};if _cagfe .TopAttr .Int64 !=nil {_faca =_ecb .PointsFromTwips (*_cagfe .TopAttr .Int64 );};if _cagfe .BottomAttr .Int64 !=nil {_cfbd =_ecb .PointsFromTwips (*_cagfe .BottomAttr .Int64 );};if _cagfe .HeaderAttr .ST_UnsignedDecimalNumber !=nil {_eaca =_ecb .PointsFromTwips (int64 (*_cagfe .HeaderAttr .ST_UnsignedDecimalNumber ));};if _cagfe .FooterAttr .ST_UnsignedDecimalNumber !=nil {_deca =_cfbd -_ecb .PointsFromTwips (int64 (*_cagfe .FooterAttr .ST_UnsignedDecimalNumber ));};};if _gegb :=_aagd .PgSz ;_gegb !=nil {if _gegb .WAttr !=nil {_ecee =_ecb .PointsFromTwips (int64 (*_gegb .WAttr .ST_UnsignedDecimalNumber ));};if _gegb .HAttr !=nil {_bfge =_ecb .PointsFromTwips (int64 (*_gegb .HAttr .ST_UnsignedDecimalNumber ));};};};if d .Settings .X ().DefaultTabStop ==nil {_gegf =_agadgg (12.7);}else {_gegf =_ecb .PointsFromTwips (int64 (*d .Settings .X ().DefaultTabStop .ValAttr .ST_UnsignedDecimalNumber ));};_fcba :=_ec .New ();_fcba .SetPageSize (_ec .PageSize {_ecee ,_bfge });_fcba .SetPageMargins (_agaa ,_bbeb ,_faca ,_cfbd );for _ ,_gcac :=range d .Headers (){_bcbe :=&convertContext {_baba :_fcba ,_fbfe :d ,_fdba :_dbbe ,_bebc :_gebg ,_abeb :true ,_aabg :_agaa ,_dfdf :_eaca ,_dace :opts };_bcbe .addRelativeCBCs (_gcac .X ().EG_ContentBlockContent );};for _ ,_agbd :=range d .Footers (){_ddb :=&convertContext {_baba :_fcba ,_fbfe :d ,_fdba :_dbbe ,_bebc :_gebg ,_aaad :true ,_aabg :_agaa ,_ffceg :_deca ,_dace :opts };_ddb .addRelativeCBCs (_agbd .X ().EG_ContentBlockContent );};_eegc :=&convertContext {_baba :_fcba ,_fbfe :d ,_fdba :_dbbe ,_bebc :_gebg ,_ccad :&_ecb .Rectangle {Top :_faca ,Bottom :_bfge -_cfbd ,Left :_agaa ,Right :_ecee -_bbeb },_gab :[]note {},_eece :map[int64 ]map[int64 ]int64 {},_agaf :_cfab ,_dace :opts };for _gba ,_bdgb :=range d .X ().Body .EG_BlockLevelElts {var _fecdg []*_edg .EG_ContentBlockContent ;if _gba < len (d .X ().Body .EG_BlockLevelElts )-1{_ecfd :=d .X ().Body .EG_BlockLevelElts [_gba +1];_fecdg =_ecfd .EG_ContentBlockContent ;};_eegc .addAbsoluteCBCs (_bdgb .EG_ContentBlockContent ,_fecdg );};_eegc .addEndnotes ();_eegc .alignSymbolsVertically ();_eegc .drawPages ();return _fcba ;};func (_ffg *convertContext )addParagraphWithTable (_dccb _ec .Table ,_ebef ,_afac float64 ){_ffg .newParagraph ();_ffg ._eeeg ._fga =&_ecb .Rectangle {Top :_agadgg (2),Bottom :_agadgg (2),Left :0,Right :0};_ffg ._eeeg ._db =&tableWrapper {_fd :&_dccb ,_de :_ebef };_ffg ._eeeg ._aaa =_afac ;_ffg ._eeeg ._ggf =_dccb .Height ();_ffg .determineParagraphBounds ();_ffg .addCurrentParagraphToCurrentPage ();};var _dd =_agadgg (6);fu
2022-01-15 21:17:38 +00:00
// FontStyle represents a kind of font styling. It can be FontStyle_Regular, FontStyle_Bold, FontStyle_Italic and FontStyle_BoldItalic.
2022-02-25 19:20:45 +00:00
type FontStyle =_ecb .FontStyle ;func (_faaf *convertContext )addInlineSymbol (_eba *symbol ){if len (_faaf ._abbf ._ace )> 0{_ecbc :=_faaf ._abbf ._ace [len (_faaf ._abbf ._ace )-1]._feg ;if _ecbc =="\u0020"{_faaf .addCurrentWordToParagraph ();_faaf .newWord ();};};_faaf ._abbf ._ace =append (_faaf ._abbf ._ace ,_eba );_eba ._cf =_faaf ._abbf ._gfe ;_faaf ._abbf ._gfe +=_eba ._cgg ;_faaf ._abbf ._eg =false ;_faaf .adjustHeights (_eba ._eff );};func (_gcbe *convertContext )addSeparator (){_gcbe .newParagraph ();_gcbe ._eeeg ._ff =true ;_gcbe ._eeeg ._ggf =_dd ;if _gcbe .currentParagraphOverflowsCurrentPage (){_gcbe .moveCurrentParagraphToNewPage ();};_gcbe .addCurrentParagraphToCurrentPage ();};func _cebd (_fefe ,_aceeg *_edg .CT_HpsMeasure )float64 {var _fege float64 ;_eacc :=_ecb .DefaultFontSize ;if _fefe !=nil {_fege =float64 (*_fefe .ValAttr .ST_UnsignedDecimalNumber );}else if _aceeg !=nil {_fege =float64 (*_aceeg .ValAttr .ST_UnsignedDecimalNumber );};if _fege !=0{_eacc =_fege /24*_ecb .DefaultFontSize ;};return _eacc ;};func (_aec *convertContext )alignParagraph (){_eeb :=_aec ._eeeg ;if _eeb ._faa ==_ec .TextAlignmentLeft {return ;};_becf :=len (_eeb ._cea )-1;for _ebba ,_ebd :=range _eeb ._cea {_eee :=len (_ebd ._efe )-1;for _eca ,_abg :=range _ebd ._efe {_ada :=true ;_gdfa :=len (_abg ._aaaa );_bcg :=0.0;for _daa :=len (_abg ._aaaa )-1;_daa >=0;_daa --{_gfa :=_abg ._aaaa [_daa ];if _ada &&_gfa ._eg {_gdfa =_daa ;}else {_ada =false ;for _ ,_gdd :=range _gfa ._ace {_bcg +=_gdd ._cgg ;};};};_abg ._aaaa =_abg ._aaaa [:_gdfa ];_adb :=_abg ._dc -_abg ._ffd -_bcg ;switch _eeb ._faa {case _ec .TextAlignmentRight :_abg .moveRight (_adb );case _ec .TextAlignmentCenter :_abg .moveRight (_adb /2);case _ec .TextAlignmentJustify :if _ebba !=_becf ||_eca !=_eee {_cbb :=[]*word {};for _ ,_cfb :=range _abg ._aaaa {if _cfb ._eg {_cbb =append (_cbb ,_cfb );};};_acb :=_adb /float64 (len (_cbb ));for _ ,_gbe :=range _cbb {_gbe ._gfe +=_acb ;};var _gad *word ;for _ ,_eac :=range _abg ._aaaa {if _gad !=nil {_eac ._edd =_gad ._edd +_gad ._gfe ;};_gad =_eac ;};};};};};};type image struct{_dec *_ec .Image ;_ae float64 ;_gcb float64 ;};func (_fdff *convertContext )combinePPrWithStyles (_eeeb *_edg .CT_PPr )(*_edg .CT_PPr ,*prefix ){if _eeeb ==nil {return nil ,nil ;};var _ddgdb *prefix ;if _eeeb !=nil &&_eeeb .NumPr !=nil {if _fccf ,_gdbbd :=_eeeb .NumPr .Ilvl ,_eeeb .NumPr .NumId ;_fccf !=nil &&_gdbbd !=nil {if _ggde :=_fdff ._fbfe .GetNumberingLevelByIds (_gdbbd .ValAttr ,_fccf .ValAttr ).X ();_ggde !=nil {_eeeb =_dgad (_eeeb ,_ggde .PPr ,_ggde .RPr );if _cfbab :=_ggde .NumFmt ;_cfbab !=nil {if _dabg :=_cfbab .ValAttr ;_dabg ==_edg .ST_NumberFormatBullet ||_dabg ==_edg .ST_NumberFormatDecimal {var _bfga []float64 ;if _bcdb :=_eeeb .Tabs ;_bcdb !=nil &&len (_bcdb .Tab )!=0{for _ ,_ecef :=range _bcdb .Tab {_bfga =append (_bfga ,_ecb .PointsFromTwips (*_ecef .PosAttr .Int64 ));};};_ddgdb =&prefix {_egbcb :_bfga ,_eadc :true };if _dabg ==_edg .ST_NumberFormatBullet {if _gbc :=_ggde .LvlText ;_gbc !=nil {if _ecdf :=_gbc .ValAttr ;_ecdf !=nil &&*_ecdf !=""{_ddgdb ._bfdc =*_ecdf ;_ddgdb ._bbfg =true ;};};}else {_dgf ,_efff :=_gdbbd .ValAttr ,_fccf .ValAttr ;if _ ,_agba :=_fdff ._eece [_dgf ];!_agba {_fdff ._eece [_dgf ]=map[int64 ]int64 {};};if _ ,_acff :=_fdff ._eece [_dgf ][_efff ];!_acff {_fdff ._eece [_dgf ][_efff ]=1;};_gffdf :=_fdff ._eece [_dgf ][_efff ];_badb :=_fcd .FormatNumberingText (int64 (_gffdf ),_ggde .IlvlAttr ,*_ggde .LvlText .ValAttr ,_ggde .NumFmt ,_fdff ._eece [_dgf ]);_fdff ._eece [_dgf ][_efff ]++;_ddgdb ._bfdc =_badb ;};};};};};};if _eeeb !=nil &&_eeeb .PStyle !=nil {_bcee ,_ebge :=_fdff .getStyleProps (_eeeb .PStyle .ValAttr ,_gg .Style {});_eeeb =_dgad (_eeeb ,_bcee ,_ebge );};return _eeeb ,_ddgdb ;};func _bcaa (_abfg ,_eggf *_edg .CT_PPrGeneral )*_edg .CT_PPrGeneral {if _abfg ==nil {return _abfg ;};if _eggf ==nil {return _abfg ;};if _abfg .PStyle ==nil {_abfg .PStyle =_eggf .PStyle ;};if _abfg .KeepNext ==nil {_abfg .KeepNext =_eggf .KeepNext ;};if _abfg .KeepLines ==nil {_abfg .KeepLines =_eggf .KeepLines ;};if _a
2021-08-23 20:44:48 +00:00
2022-02-25 19:20:45 +00:00
// RegisterFont makes a PdfFont accessible for using in converting to PDF.
func RegisterFont (name string ,style FontStyle ,font *_cg .PdfFont ){_ecb .RegisterFont (name ,style ,font );};func _egfe (_facg ,_ecdg *_edg .CT_RPr )*_edg .CT_RPr {if _facg ==nil {return _ecdg ;};if _ecdg ==nil {return _facg ;};if _facg .RStyle ==nil {_facg .RStyle =_ecdg .RStyle ;};if _facg .RFonts ==nil {_facg .RFonts =_ecdg .RFonts ;};if _facg .B ==nil {_facg .B =_ecdg .B ;};if _facg .BCs ==nil {_facg .BCs =_ecdg .BCs ;};if _facg .I ==nil {_facg .I =_ecdg .I ;};if _facg .ICs ==nil {_facg .ICs =_ecdg .ICs ;};if _facg .Caps ==nil {_facg .Caps =_ecdg .Caps ;};if _facg .SmallCaps ==nil {_facg .SmallCaps =_ecdg .SmallCaps ;};if _facg .Strike ==nil {_facg .Strike =_ecdg .Strike ;};if _facg .Dstrike ==nil {_facg .Dstrike =_ecdg .Dstrike ;};if _facg .Outline ==nil {_facg .Outline =_ecdg .Outline ;};if _facg .Shadow ==nil {_facg .Shadow =_ecdg .Shadow ;};if _facg .Emboss ==nil {_facg .Emboss =_ecdg .Emboss ;};if _facg .Imprint ==nil {_facg .Imprint =_ecdg .Imprint ;};if _facg .NoProof ==nil {_facg .NoProof =_ecdg .NoProof ;};if _facg .SnapToGrid ==nil {_facg .SnapToGrid =_ecdg .SnapToGrid ;};if _facg .Vanish ==nil {_facg .Vanish =_ecdg .Vanish ;};if _facg .WebHidden ==nil {_facg .WebHidden =_ecdg .WebHidden ;};if _facg .Color ==nil {_facg .Color =_ecdg .Color ;};if _facg .Spacing ==nil {_facg .Spacing =_ecdg .Spacing ;};if _facg .W ==nil {_facg .W =_ecdg .W ;};if _facg .Kern ==nil {_facg .Kern =_ecdg .Kern ;};if _facg .Position ==nil {_facg .Position =_ecdg .Position ;};if _facg .Sz ==nil {_facg .Sz =_ecdg .Sz ;};if _facg .SzCs ==nil {_facg .SzCs =_ecdg .SzCs ;};if _facg .Highlight ==nil {_facg .Highlight =_ecdg .Highlight ;};if _facg .U ==nil {_facg .U =_ecdg .U ;};if _facg .Effect ==nil {_facg .Effect =_ecdg .Effect ;};if _facg .Bdr ==nil {_facg .Bdr =_ecdg .Bdr ;};if _facg .Shd ==nil {_facg .Shd =_ecdg .Shd ;};if _facg .FitText ==nil {_facg .FitText =_ecdg .FitText ;};if _facg .VertAlign ==nil {_facg .VertAlign =_ecdg .VertAlign ;};if _facg .Rtl ==nil {_facg .Rtl =_ecdg .Rtl ;};if _facg .Cs ==nil {_facg .Cs =_ecdg .Cs ;};if _facg .Em ==nil {_facg .Em =_ecdg .Em ;};if _facg .Lang ==nil {_facg .Lang =_ecdg .Lang ;};if _facg .EastAsianLayout ==nil {_facg .EastAsianLayout =_ecdg .EastAsianLayout ;};if _facg .SpecVanish ==nil {_facg .SpecVanish =_ecdg .SpecVanish ;};if _facg .OMath ==nil {_facg .OMath =_ecdg .OMath ;};if _facg .RPrChange ==nil {_facg .RPrChange =_ecdg .RPrChange ;};return _facg ;};func init (){_gcbd =_f .MustCompile ("\u0053E\u0054 \u0028\u002e\u002b\u0029\u0020\u0022\u0028\u002e\u002b\u0029\u0022");_bga =_f .MustCompile ("\u0052\u0045\u0046\u0020\u0028\u002e\u002b\u003f\u0029\u0020");};type paragraph struct{_aaa float64 ;_fga *_ecb .Rectangle ;_agb float64 ;_ddc float64 ;_df float64 ;_bb float64 ;_ggf float64 ;_faa _ec .TextAlignment ;_ge float64 ;_cea []*line ;_db *tableWrapper ;_aae []*image ;_gfc []*image ;_gea []*block ;_ecf []*block ;_ddd []*note ;_edb float64 ;_ged []*zoneToSkip ;_fab float64 ;_ff bool ;_abe []*borderLine ;};const _fe =0.67;var _ab =_agadgg (1.9);type tableWrapper struct{_fd *_ec .Table ;_de float64 ;};type line struct{_dg float64 ;_cde float64 ;_ca float64 ;_cc float64 ;_cef float64 ;_efe []*span ;};type note struct{_fa string ;_aa []*_edg .EG_BlockLevelElts ;_aad *_ec .Block ;};func (_fbgbd *convertContext )addRelativeEGPC (_bgcf []*_edg .EG_PContent ,_fcdf *_edg .CT_PPr ,_eeac *prefix ){if len (_bgcf )==0{_fbgbd ._aed .Append ("\u000d");return ;};if _eeac !=nil {_fbgbd ._eade =_eeac ;};for _ ,_gdbbe :=range _bgcf {for _ ,_fccc :=range _gdbbe .FldSimple {if _fccc !=nil {_fbgbd .addRelativeEGPC (_fccc .EG_PContent ,_fcdf ,_eeac );};};if _gaac :=_gdbbe .Hyperlink ;_gaac !=nil {_fbgbd ._effd =_gaac ;_fbgbd .addRelativeCRC (_gaac .EG_ContentRunContent ,_fcdf );};_fbgbd ._effd =nil ;_fbgbd .addRelativeCRC (_gdbbe .EG_ContentRunContent ,_fcdf );};};func (_egbg *convertContext )addRelativeRIC (_fcfb *_edg .EG_RunInnerContent ,_gecd *_edg .CT_RPr ){var _bfec *_ec .TextChunk ;var _dgaf ,_ddgd bool ;_aagba :=false ;if _fcfb ==nil {if _egbg ._eade !=nil {_dgaf =true ;_bfec =_egbg ._aed .Append
2021-07-30 17:03:26 +00:00
2022-01-15 21:17:38 +00:00
// Options contains the options for convert process -
// e.g ProcessFields is when document contains fields
// and the value need to be processed also.
type Options struct{
2021-07-30 17:03:26 +00:00
2022-02-25 19:20:45 +00:00
// ProcessFields process the document fields if set to true, default is `false`.
ProcessFields bool ;
// EnableFontSubsetting process document with subsetting font to reduce size result.
// Default value is `true`.
EnableFontSubsetting bool ;
// FontFiles location of fonts for convert process.
FontFiles []string ;
// FontDirectory location of font directory for convert process.
// This will load all font files inside directoy if set
// we recommend to use FontFiles for better performance.
FontDirectory string ;};func _deac (_ddgba *_gg .Document ,_fbcd string )[]*_edg .CT_TblStylePr {_aded :=_ddgba .GetStyleByID (_fbcd );var _ddfd []*_edg .CT_TblStylePr ;if _gcea :=_aded .X ();_gcea !=nil {if _dadf :=_gcea .BasedOn ;_dadf !=nil {_deac (_ddgba ,_dadf .ValAttr );};if len (_gcea .TblStylePr )> 0{_ddfd =_gcea .TblStylePr ;};};return _ddfd ;};type block struct{_ee *_ec .Block ;_ecbg float64 ;_eccg float64 ;_edde bool ;_gdb float64 ;_ad _ec .Color ;};func (_bdeb *convertContext )makeRunStyle (_aedf *_edg .CT_RPr ,_ecbgg ,_agec ,_dafa ,_cbac ,_baff bool )(_ec .TextStyle ,bool ,bool ,*_ec .Color ){var _faed *_ec .Color ;_fbbd :=_bdeb ._baba .NewTextStyle ();if _aedf !=nil {_fabe :=_ecb .FontStyle_Regular ;_fbd :=_aabf (_aedf .B );_dbadg :=_aabf (_aedf .I );if _fbd &&_dbadg {_fabe =_ecb .FontStyle_BoldItalic ;}else if _fbd {_fabe =_ecb .FontStyle_Bold ;}else if _dbadg {_fabe =_ecb .FontStyle_Italic ;};if _cbac {_fbbd .Font =_ecb .AssignStdFontByName (_fbbd ,"\u0053\u0079\u006d\u0062\u006f\u006c");}else {_gbfb :="\u0064e\u0066\u0061\u0075\u006c\u0074";if _cfca :=_aedf .RFonts ;_cfca !=nil {if _efba :=_cfca .AsciiAttr ;_efba !=nil {_gbfb =*_efba ;}else if _begc :=_cfca .HAnsiAttr ;_begc !=nil {_gbfb =*_begc ;}else if _eegf :=_cfca .CsAttr ;_eegf !=nil {_gbfb =*_eegf ;}else {_fecb :=_bdeb ._bebc ;if _fecb !=nil {_dda :="";if _dddcg :=_fecb .RFonts ;_dddcg !=nil {if _geda :=_cfca .HintAttr ;_geda ==_edg .ST_HintEastAsia {if _dddcg .EastAsiaAttr !=nil {_gbfb =*_fecb .RFonts .EastAsiaAttr ;}else {if _dddcg .EastAsiaThemeAttr ==_edg .ST_ThemeMajorEastAsia {_dda =_gefcd ;};if _dddcg .EastAsiaThemeAttr ==_edg .ST_ThemeMinorEastAsia {_dda =_ddgbe ;};};}else {if _edge :=_dddcg .AsciiAttr ;_edge !=nil {_gbfb =*_edge ;}else if _ccfe :=_dddcg .HAnsiAttr ;_ccfe !=nil {_gbfb =*_ccfe ;};};if _gbfb =="\u0064e\u0066\u0061\u0075\u006c\u0074"{if _dda ==""{if _dddcg .EastAsiaThemeAttr ==_edg .ST_ThemeMajorEastAsia {_dda =_gefcd ;}else if _dddcg .EastAsiaThemeAttr ==_edg .ST_ThemeMinorEastAsia {_dda =_ddgbe ;}else if _dbec :=_dddcg .AsciiThemeAttr ;_dbec ==_edg .ST_ThemeMajorAscii ||_dbec ==_edg .ST_ThemeMajorHAnsi {_dda =_ceef ;}else if _cgcc :=_dddcg .AsciiThemeAttr ;_cgcc ==_edg .ST_ThemeMinorAscii ||_cgcc ==_edg .ST_ThemeMinorHAnsi {_dda =_ddga ;}else {if _adbb :=_dddcg .HAnsiThemeAttr ;_adbb ==_edg .ST_ThemeMajorAscii ||_adbb ==_edg .ST_ThemeMajorHAnsi {_dda =_ceef ;}else if _eefg :=_dddcg .HAnsiThemeAttr ;_eefg ==_edg .ST_ThemeMinorAscii ||_eefg ==_edg .ST_ThemeMinorHAnsi {_dda =_ddga ;};};};_cbfc :=_bdeb ._fbfe .Themes ();for _ ,_beag :=range _cbfc {if _beag .ThemeElements !=nil {if _dcaff :=_beag .ThemeElements .FontScheme ;_dcaff !=nil {if _dcaff .MajorFont !=nil &&_dda ==_gefcd {if _dcaff .MajorFont .Ea !=nil {_gbfb =_dcaff .MajorFont .Ea .TypefaceAttr ;break ;};}else if _dcaff .MinorFont !=nil &&_dda ==_ddgbe {if _dcaff .MinorFont .Ea !=nil {_gbfb =_dcaff .MinorFont .Ea .TypefaceAttr ;break ;};}else if _dcaff .MajorFont !=nil &&_dda ==_ceef {if _dcaff .MajorFont .Latin !=nil {_gbfb =_dcaff .MajorFont .Latin .TypefaceAttr ;break ;};}else if _dcaff .MinorFont !=nil &&_dda ==_ddga {if _dcaff .MinorFont .Latin !=nil {_gbfb =_dcaff .MinorFont .Latin .TypefaceAttr ;break ;};};};};};};};};};};if _gbfb !="\u0064e\u0066\u0061\u0075\u006c\u0074"&&!_ecab (_gbfb ){if _dcdfa :=_bdeb ._fbfe .FontTable ();_dcdfa !=nil {for _ ,_dbbb :=range _dcdfa .Font {if _dbbb .NameAttr ==_gbfb &&_dbbb .AltName !=nil &&_ecab (_dbbb .AltName .ValAttr ){_gbfb =_dbbb .AltName .ValAttr ;break ;};if _dbbb .AltName !=nil &&!_ecab (_dbbb .AltName .ValAttr )&&_dbbb .AltName .ValAttr ==_gbfb {_gbfb =_dbbb .NameAttr ;break ;};};};};if _acaf ,_gage :=_ecb .StdFontsMap [_gbfb ];_gage {_fbbd .Font =_ecb .AssignStdFontByName (_fbbd ,_acaf [_fabe ]);}else if _ggdcg :=_ecb .GetRegisteredFont (_gbfb ,_fabe );_ggdcg !=nil {_fbbd .Font =_ggdcg ;}else {_c .Log .Debug ("\u0046\u006f\u006e\u0074\u0020\u0025\u0073\u0020\u0077\u0069\u0074h\u0020\u0073\u0074\u0079\u006c\u0065\u0020\u0025s\u0020i\u0073\u0020\u006e\u006f\u0074\u0020\u0066\u006f\u0075\u006e\u0064\u002c\u0020\u0072\
// RegisterFontsFromDirectory registers all fonts from the given directory automatically detecting font families and styles. For composite fonts use RegisterCompositeFontsFromDirectory.
func RegisterFontsFromDirectory (dirName string )error {return _ecb .RegisterFontsFromDirectory (dirName );};func (_bfgb *convertContext )addTextSymbol (_gbd *symbol ){_gdgc :=_ec .New ();_cceb :=_gdgc .NewStyledParagraph ();_cceb .SetMargins (0,0,0,0);_cdcc :=_cceb .Append (_gbd ._feg );_gfbe :=0.0;if _gbd ._dbf !=nil {_cdcc .Style =*_gbd ._dbf ;if _gbd ._dbf .CharSpacing !=0{_gfbe =_gbd ._dbf .CharSpacing ;};};if _gbd ._ced ==nil &&_gbd ._bbc ==nil {_gbd ._eff =_cceb .Height ()*1.2;_gbd ._af =_cceb .Height ();};if _gbd ._eff < _bfgb ._eeeg ._ge {_gbd ._eff =_bfgb ._eeeg ._ge ;};if _gbd ._cgg ==0{_gbd ._cgg =_cceb .Width ()+_gfbe ;};if len (_bfgb ._abbf ._ace )> 0{_afdc :=_bfgb ._abbf ._ace [len (_bfgb ._abbf ._ace )-1]._feg ;if _ecb .IsNoSpaceLanguage (_afdc )||(_afdc =="\u0020")!=(_gbd ._feg =="\u0020"){_bfgb .addCurrentWordToParagraph ();_bfgb .newWord ();};};_bfgb ._abbf ._ace =append (_bfgb ._abbf ._ace ,_gbd );_gbd ._cf =_bfgb ._abbf ._gfe ;_bfgb ._abbf ._gfe +=_gbd ._cgg ;if _gbd ._feg !="\u0020"{_bfgb ._abbf ._eg =false ;};if _gbd ._feg =="\u000d"{_bfgb .adjustHeights (_gbd ._eff *1.13);_bfgb .adjustHeights (_gbd ._eff );};};type span struct{_ffd float64 ;_dc float64 ;_aaaa []*word ;};func _faba (_cefd ,_fgaf string ,_fca ,_dgb bool )[]*symbol {_aefa :=[]*symbol {};for _ ,_gec :=range _cefd {_efg :=&symbol {_feg :string (_gec ),_abb :_fca ,_ecc :_dgb ,_gb :_fgaf };_aefa =append (_aefa ,_efg );};return _aefa ;};func _ceee (_dcbd *_gg .Document ,_dbbf *_edg .CT_RPr ,_cage *_edg .CT_PPr )*_edg .CT_RPr {var _bdea ,_agcc *_edg .CT_RPr ;if _dbbf ==nil {_dbbf =_edg .NewCT_RPr ();};var _dcbf *_edg .CT_ParaRPr ;if _cage !=nil &&_cage .RPr !=nil {_dcbf =_cage .RPr ;};if _dcbf ==nil {_dcbf =_edg .NewCT_ParaRPr ();};if _dbbf .RStyle !=nil {_cae :=_dcbd .GetStyleByID (_dbbf .RStyle .ValAttr );if _agfec :=_cae .X ();_agfec !=nil {_bdea =_agfec .RPr ;};};if _bdea ==nil {_bdea =_edg .NewCT_RPr ();};if _dcbf .RStyle !=nil {_bddc :=_dcbd .GetStyleByID (_dcbf .RStyle .ValAttr );if _gge :=_bddc .X ();_gge !=nil {_agcc =_gge .RPr ;if _gge .QFormat !=nil &&_aabf (_gge .QFormat ){return _agcc ;};};};if _agcc ==nil {_agcc =_edg .NewCT_RPr ();};if _dbbf .Color ==nil {if _bdea .Color !=nil {_dbbf .Color =_bdea .Color ;}else if _dcbf .Color !=nil {_dbbf .Color =_dcbf .Color ;}else if _agcc .Color !=nil {_dbbf .Color =_agcc .Color ;};};if _dbbf .Spacing ==nil {if _bdea .Spacing !=nil {_dbbf .Spacing =_bdea .Spacing ;}else if _dcbf .Spacing !=nil {_dbbf .Spacing =_dcbf .Spacing ;}else if _agcc .Spacing !=nil {_dbbf .Spacing =_agcc .Spacing ;};};if _dbbf .Sz ==nil {if _bdea .Sz !=nil {_dbbf .Sz =_bdea .Sz ;}else if _dcbf .Sz !=nil {_dbbf .Sz =_dcbf .Sz ;}else if _agcc .Sz !=nil {_dbbf .Sz =_agcc .Sz ;};};if _dbbf .SzCs ==nil {if _bdea .SzCs !=nil {_dbbf .SzCs =_bdea .SzCs ;}else if _dcbf .SzCs !=nil {_dbbf .SzCs =_dcbf .SzCs ;}else if _agcc .SzCs !=nil {_dbbf .SzCs =_agcc .SzCs ;};};if _dbbf .B ==nil {if _bdea .B !=nil {_dbbf .B =_bdea .B ;}else if _dcbf .B !=nil {_dbbf .B =_dcbf .B ;}else if _agcc .B !=nil {_dbbf .B =_agcc .B ;};};if _dbbf .I ==nil {if _bdea .I !=nil {_dbbf .I =_bdea .I ;}else if _dcbf .I !=nil {_dbbf .I =_dcbf .I ;}else if _agcc .I !=nil {_dbbf .I =_agcc .I ;};};if _dbbf .U ==nil {if _bdea .U !=nil {_dbbf .U =_bdea .U ;}else if _dcbf .U !=nil {_dbbf .U =_dcbf .U ;}else if _agcc .U !=nil {_dbbf .U =_agcc .U ;};};if _dbbf .RFonts ==nil {if _bdea .RFonts !=nil {_dbbf .RFonts =_bdea .RFonts ;}else if _dcbf .RFonts !=nil {_dbbf .RFonts =_dcbf .RFonts ;}else if _agcc .RFonts !=nil {_dbbf .RFonts =_agcc .RFonts ;};};if _dbbf .VertAlign ==nil {if _bdea .VertAlign !=nil {_dbbf .VertAlign =_bdea .VertAlign ;}else if _dcbf .VertAlign !=nil {_dbbf .VertAlign =_dcbf .VertAlign ;}else if _agcc .VertAlign !=nil {_dbbf .VertAlign =_agcc .VertAlign ;};};if _dbbf .Caps ==nil {if _bdea .Caps !=nil {_dbbf .Caps =_bdea .Caps ;}else if _dcbf .Caps !=nil {_dbbf .Caps =_dcbf .Caps ;}else if _agcc .Caps !=nil {_dbbf .Caps =_agcc .Caps ;};};if _dbbf .SmallCaps ==nil {if _bdea .SmallCaps !=nil {_dbbf .SmallCaps =_bdea .SmallCaps ;}else if _dcbf .Sm
// ConvertToPdf converts document to PDF file. This package is beta, breaking changes can take place.
func ConvertToPdf (d *_gg .Document )*_ec .Creator {return ConvertToPdfWithOptions (d ,nil )};func _dcbb (_bagf ,_ceeae *_edg .CT_Border ,_bafdba bool )*_edg .CT_Border {if _bafdba {return _bagf ;};return _ceeae ;};func (_dfd *convertContext )addAbsoluteEGPC (_cbc []*_edg .EG_PContent ,_aada *_edg .CT_PPr )bool {_ege :=len (_cbc );for _ ,_bfg :=range _cbc {for _ ,_ddca :=range _bfg .FldSimple {if _ddca !=nil {_dfd .addAbsoluteEGPC (_ddca .EG_PContent ,_aada );};};if _bd :=_bfg .Hyperlink ;_bd !=nil {_dfd ._effd =_bd ;_dfd .addAbsoluteCRC (_bd .EG_ContentRunContent ,_aada );};_dfd ._effd =nil ;if _dfd .addAbsoluteCRC (_bfg .EG_ContentRunContent ,_aada ){if _ege > 1{_dfd .moveCurrentParagraphToNewPage ();continue ;}else {return true ;};};_ege --;};return false ;};func (_cee *convertContext )addCellToTable (_cfaa *_ec .Table ,_ecbda *_edg .CT_Tc ,_ffag *_edg .CT_TblPr ,_fgd *_edg .CT_TblPrEx ,_abfa ,_affd ,_ccg ,_cddg int ,_afcf []*_edg .CT_TblStylePr ,_aacdf *_edg .CT_PPrGeneral ,_cddb *_edg .CT_RPr ){var _eccd *_ec .TableCell ;_ded :=1;_gbff :=_ecbda .TcPr ;_eddd :=_edg .NewCT_RPr ();for _ ,_affde :=range _afcf {if _abfa ==0&&_affde .TypeAttr ==_edg .ST_TblStyleOverrideTypeFirstRow {_gbff =_eafb (_gbff ,_affde .TcPr );_cddb =_egfe (_eddd ,_affde .RPr );break ;};if _affd ==0&&_affde .TypeAttr ==_edg .ST_TblStyleOverrideTypeFirstCol {_gbff =_eafb (_gbff ,_affde .TcPr );_cddb =_egfe (_eddd ,_affde .RPr );};if _abfa ==_ccg -1&&_affde .TypeAttr ==_edg .ST_TblStyleOverrideTypeLastRow {_gbff =_eafb (_gbff ,_affde .TcPr );_cddb =_egfe (_eddd ,_affde .RPr );};if _affd ==_cddg -1&&_affde .TypeAttr ==_edg .ST_TblStyleOverrideTypeLastCol {_gbff =_eafb (_gbff ,_affde .TcPr );_cddb =_egfe (_eddd ,_affde .RPr );};if _abfa %2!=0&&_affde .TypeAttr ==_edg .ST_TblStyleOverrideTypeBand1Horz {_gbff =_eafb (_gbff ,_affde .TcPr );if _affd ==0{_cddb =_egfe (_eddd ,_affde .RPr );}else {_cddb =_edag (_cddb ,_affde .RPr );};};if _affd %2!=0&&_affde .TypeAttr ==_edg .ST_TblStyleOverrideTypeBand1Vert {_gbff =_eafb (_gbff ,_affde .TcPr );if _abfa ==0{_cddb =_egfe (_eddd ,_affde .RPr );}else {_cddb =_edag (_eddd ,_affde .RPr );};};if _abfa %2==0&&_affde .TypeAttr ==_edg .ST_TblStyleOverrideTypeBand2Horz {_gbff =_eafb (_gbff ,_affde .TcPr );if _affd ==_cddg -1{_cddb =_egfe (_eddd ,_affde .RPr );}else {_cddb =_edag (_eddd ,_affde .RPr );};};if _affd %2==0&&_affde .TypeAttr ==_edg .ST_TblStyleOverrideTypeBand2Vert {_gbff =_eafb (_gbff ,_affde .TcPr );if _abfa ==_ccg -1{_cddb =_egfe (_eddd ,_affde .RPr );}else {_cddb =_edag (_eddd ,_affde .RPr );};};};_aee :=_adgg (_ffag ,_fgd ,_gbff ,_abfa ,_affd ,_ccg ,_cddg );_acf :=_ab ;_gaeeg :=_ec .CellVerticalAlignmentTop ;if _aee !=nil {if _aee .GridSpan !=nil {_ded =int (_aee .GridSpan .ValAttr );};_eccd =_cfaa .MultiColCell (_ded );if _ebfg :=_aee .TcBorders ;_ebfg !=nil {if _dbcaa :=_ebfg .Left ;_dbcaa !=nil {_becg ,_gdbe ,_dfdc :=_fdeea (_dbcaa );_eccd .SetBorder (_ec .CellBorderSideLeft ,_becg ,_dfdc );if _gdbe !=nil &&*_gdbe !=nil {_eccd .SetSideBorderColor (_ec .CellBorderSideLeft ,*_gdbe );};};if _bbee :=_ebfg .Top ;_bbee !=nil {_dfeg ,_aaaab ,_afcfe :=_fdeea (_bbee );_eccd .SetBorder (_ec .CellBorderSideTop ,_dfeg ,_afcfe );if _aaaab !=nil &&*_aaaab !=nil {_eccd .SetSideBorderColor (_ec .CellBorderSideTop ,*_aaaab );};};if _gcbg :=_ebfg .Right ;_gcbg !=nil {_acgf ,_bde ,_bfca :=_fdeea (_gcbg );_eccd .SetBorder (_ec .CellBorderSideRight ,_acgf ,_bfca );if _bde !=nil &&*_bde !=nil {_eccd .SetSideBorderColor (_ec .CellBorderSideRight ,*_bde );};};if _dgd :=_ebfg .Bottom ;_dgd !=nil {_gdca ,_cgbe ,_eegd :=_fdeea (_dgd );_eccd .SetBorder (_ec .CellBorderSideBottom ,_gdca ,_eegd );if _cgbe !=nil &&*_cgbe !=nil {_eccd .SetSideBorderColor (_ec .CellBorderSideBottom ,*_cgbe );};};}else {_eccd .SetBorder (_ec .CellBorderSideAll ,_ec .CellBorderStyleSingle ,_agadgg (0.125));_eccd .SetBorderColor (_ec .ColorBlack );};if _dae :=_aee .Shd ;_dae !=nil {if _baa :=_dae .FillAttr ;_baa !=nil {if _ggdc :=_baa .ST_HexColorRGB ;_ggdc !=nil {_bged :=_ec .ColorRGBFromHex ("\u0023"+*_ggdc );_eccd .SetBackgroundColor (_bged );};}