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/
|
|
|
|
|
2021-06-16 07:10:52 +00:00
|
|
|
package convert ;import (_dg "bytes";_gd "errors";_dc "github.com/unidoc/unioffice/common/tempstorage";_ee "github.com/unidoc/unioffice/document";_ec "github.com/unidoc/unioffice/measurement";_bd "github.com/unidoc/unioffice/schema/soo/dml";_a "github.com/unidoc/unioffice/schema/soo/dml/chart";_be "github.com/unidoc/unioffice/schema/soo/dml/picture";_gg "github.com/unidoc/unioffice/schema/soo/ofc/sharedTypes";_bb "github.com/unidoc/unioffice/schema/soo/wml";_gf "github.com/unidoc/unipdf/v3/creator";_f "github.com/unidoc/unipdf/v3/model";_d "io/ioutil";_e "log";_ce "math";_cg "sort";_b "strconv";_g "strings";);func (_dbg *convertContext )addAnchorExtra (_ebag []*_bb .EG_PContent ){for _ ,_cedd :=range _ebag {for _ ,_baf :=range _cedd .EG_ContentRunContent {if _dfed :=_baf .R ;_dfed !=nil {for _ ,_fbcc :=range _dfed .Extra {if _agb ,_gcda :=_fbcc .(*_bb .AlternateContentRun );_gcda {if _aga :=_agb .Choice ;_aga !=nil {if _abb :=_aga .Drawing ;_abb !=nil {for _ ,_bggb :=range _abb .Anchor {var _cad ,_bcc ,_gagc ,_cec float64 ;_ddce ,_bfegb :=_bggb .PositionH ,_bggb .PositionV ;if _cecf :=_ddce .Choice ;_cecf !=nil {if _cecf .PosOffset !=nil {_cad =_ec .FromEMU (int64 (*_cecf .PosOffset ))/_ec .Millimeter ;};};if _ffg :=_bfegb .Choice ;_ffg !=nil {if _ffg .PosOffset !=nil {_bcc =_ec .FromEMU (int64 (*_ffg .PosOffset ))/_ec .Millimeter ;};};if _eae :=_bggb .Extent ;_eae !=nil {_cec =_ec .FromEMU (_eae .CxAttr )/_ec .Millimeter ;_gagc =_ec .FromEMU (_eae .CyAttr )/_ec .Millimeter ;};_abgef :=_dbg ._bcaf ._ebf +_bcc ;_afbc :=_abgef +_gagc ;_befedf :=_dbg ._bcaf ._dac +_cad ;_cbcf :=_befedf +_cec ;_gfdb :=_bcc +_gagc ;if _gfdb > _dbg ._bcaf ._ae {_dbg ._bcaf ._ae =_gfdb ;};if _bggb .Choice !=nil &&_bggb .Choice .WrapNone ==nil {_dbg ._bcaf ._gcg =append (_dbg ._bcaf ._gcg ,&zoneToSkip {_cb :&rectangle {_eac :_abgef ,_caf :_afbc ,_deb :_befedf ,_aebb :_cbcf },_ea :_bggb .Choice });};if _gdd :=_bggb .Graphic ;_gdd !=nil {if _ddad :=_gdd .GraphicData ;_ddad !=nil {for _ ,_bfed :=range _ddad .Any {if _gbcc ,_eege :=_bfed .(*_bb .WdWsp );_eege {_ccf ,_abdd :=_dbg .makeBlockFromWdWsp (_gbcc );if _abdd !=nil {_e .Println ("\u0043a\u006en\u006f\u0074\u0020\u0072\u0065a\u0064\u0020b\u006c\u006f\u0063\u006b\u003a",_abdd );};if _ccf !=nil {_ccf ._gff .Scale (_cec /_ccf ._gff .Width (),_gagc /_ccf ._gff .Height ());_ccf ._gbf =_befedf ;_ccf ._gaca =_abgef ;if _bggb .BehindDocAttr {_dbg ._bcaf ._gdf =append (_dbg ._bcaf ._gdf ,_ccf );}else {_dbg ._bcaf ._cd =append (_dbg ._bcaf ._cd ,_ccf );};};};};};};};};};};};};};};};func _agea (_fdede *_gf .Creator ,_afac ,_ggea ,_dgbf ,_dcef float64 ,_bgfe *_bd .CT_ShapeProperties ){_bfaa :=_fdede .NewRectangle (_afac ,_ggea ,_dgbf ,_dcef );if _bgfe ==nil {_bfaa .SetBorderWidth (_bbeg );}else {if _gbfdd :=_bgfe .SolidFill ;_gbfdd !=nil {if _ddgc :=_gbfdd .SrgbClr ;_ddgc !=nil {_egff :=_gf .ColorRGBFromHex ("\u0023"+_ddgc .ValAttr );_bfaa .SetFillColor (_egff );};};if _efcf :=_bgfe .Ln ;_efcf !=nil {if _fcfe :=_efcf .WAttr ;_fcfe !=nil {_eacc :=_ec .FromEMU (int64 (*_fcfe ))/_ec .Millimeter ;_bfaa .SetBorderWidth (_eacc );if _cdfc :=_bgfe .SolidFill ;_cdfc !=nil {if _fbgg :=_cdfc .SrgbClr ;_fbgg !=nil {_afaa :=_gf .ColorRGBFromHex ("\u0023"+_fbgg .ValAttr );_bfaa .SetBorderColor (_afaa );};};}else {_bfaa .SetBorderWidth (0);};};};_fdede .Draw (_bfaa );};func (_ged *convertContext )drawPage (_ade *page ){if _ade ._eg {_abgg :=_ade ._ag ._eac +_ad *_da ;_dde :=_ade ._ag ._deb ;_fbf :=_ade ._ag ._aebb ;_dggf (_ged ._ggd ,_dde ,_abgg ,_fbf ,_abgg ,0.25,_gf .ColorBlack );};for _ ,_cbc :=range _ade ._ga {_ged ._ggd .Draw (_cbc );};for _ ,_ceb :=range _ade ._eb {_abg (_ged ._ggd ,_ceb );};for _ ,_ddc :=range _ade ._bbb {if _ddc ._fd {_gcd :=_ddc ._ebf +_ad *_da ;_gda :=_ade ._ag ._deb ;_ccee :=_gda +50;_dggf (_ged ._ggd ,_gda ,_gcd ,_ccee ,_gcd ,0.25,_gf .ColorBlack );}else {for _ ,_bdfc :=range _ddc ._dd {for _ ,_caa :=range _bdfc ._fbd {for _ ,_afc :=range _caa ._daa {for _ ,_dce :=range _afc ._bf {if _dce ._cefg !=nil {_dce ._cefg .SetPos (_afc ._eca +_dce ._dfc ,_ddc ._ebf +_bdfc ._ab +_dce ._aa );_ged ._g
|
2021-04-23 20:00:00 +00:00
|
|
|
|
|
|
|
// ConvertToPdf converts document to PDF file. This package is beta, breaking changes can take place.
|
2021-06-16 07:10:52 +00:00
|
|
|
func ConvertToPdf (d *_ee .Document )*_gf .Creator {_bgdfb :=d .BodySection ().X ();var _gecb ,_bge ,_gfgeb ,_fddgb ,_eebb ,_aeca float64 ;_gbed :=_bgdfb .PgMar ;if _gbed .LeftAttr .ST_UnsignedDecimalNumber !=nil {_gecb =_faag (int64 (*_gbed .LeftAttr .ST_UnsignedDecimalNumber ));};if _gbed .LeftAttr .ST_UnsignedDecimalNumber !=nil {_bge =_faag (int64 (*_gbed .RightAttr .ST_UnsignedDecimalNumber ));};if _gbed .TopAttr .Int64 !=nil {_gfgeb =_faag (*_gbed .TopAttr .Int64 );};if _gbed .BottomAttr .Int64 !=nil {_fddgb =_faag (*_gbed .BottomAttr .Int64 );};_affb :=_bgdfb .PgSz ;_ecdd ,_ebcd :=210.0,297.0;if _affb .WAttr !=nil {_ecdd =_faag (int64 (*_affb .WAttr .ST_UnsignedDecimalNumber ));};if _affb .HAttr !=nil {_ebcd =_faag (int64 (*_affb .HAttr .ST_UnsignedDecimalNumber ));};if _gbed .HeaderAttr .ST_UnsignedDecimalNumber !=nil {_eebb =_faag (int64 (*_gbed .HeaderAttr .ST_UnsignedDecimalNumber ));};if _gbed .FooterAttr .ST_UnsignedDecimalNumber !=nil {_aeca =_fddgb -_faag (int64 (*_gbed .FooterAttr .ST_UnsignedDecimalNumber ));};_edcg =_faag (int64 (*d .Settings .X ().DefaultTabStop .ValAttr .ST_UnsignedDecimalNumber ));_ffd :=_gf .New ();_ffd .SetPageSize (_gf .PageSize {_ecdd ,_ebcd });_ffd .SetPageMargins (_gecb ,_bge ,_gfgeb ,_fddgb );for _ ,_dgeg :=range d .Headers (){_dcgd :=&convertContext {_ggd :_ffd ,_ceda :d ,_fcbe :true ,_dcdb :_gecb ,_edfdd :_eebb };_dcgd .addRelativeCBCs (_dgeg .X ().EG_ContentBlockContent );};for _ ,_cba :=range d .Footers (){_bcge :=&convertContext {_ggd :_ffd ,_ceda :d ,_ccce :true ,_dcdb :_gecb ,_bfeb :_aeca };_bcge .addRelativeCBCs (_cba .X ().EG_ContentBlockContent );};_gacb :=&convertContext {_ggd :_ffd ,_ceda :d ,_bcecg :&rectangle {_eac :_gfgeb ,_caf :_ebcd -_fddgb ,_deb :_gecb ,_aebb :_ecdd -_bge },_gaffe :[]note {}};for _ ,_dccf :=range d .X ().Body .EG_BlockLevelElts {_gacb .addAbsoluteCBCs (_dccf .EG_ContentBlockContent );};_gacb .addEndnotes ();_gacb .alignSymbolsVertically ();_gacb .drawPages ();return _ffd ;};func (_fdba *convertContext )makeRunStyle (_caeb *_bb .CT_RPr ,_caebg ,_agce ,_gfadb ,_dbgc ,_gecbd bool )(_gf .TextStyle ,bool ,bool ){_befac :=_fdba ._ggd .NewTextStyle ();if _caeb !=nil {_cacg :=0;_cbga :=_ddfg (_caeb .B );_dadc :=_ddfg (_caeb .I );if _cbga &&_dadc {_cacg =3;}else if _cbga {_cacg =1;}else if _dadc {_cacg =2;};if _gecbd {_befac .Underline =true ;_befac .UnderlineStyle =_gf .TextDecorationLineStyle {Offset :0.5,Thickness :1/32};};if _caeb .U !=nil &&_caeb .U .ValAttr !=_bb .ST_UnderlineNone &&!_dbgc {_befac .Underline =true ;_befac .UnderlineStyle =_gf .TextDecorationLineStyle {Offset :0.5,Thickness :1/32};if _gcge :=_caeb .U .ColorAttr ;_gcge !=nil {if _bcda :=_gcge .ST_HexColorRGB ;_bcda !=nil {_befac .UnderlineStyle .Color =_gf .ColorRGBFromHex ("\u0023"+*_bcda );};};};var _cdfe string ;if _dbgc {_cdfe ="\u0053\u0079\u006d\u0062\u006f\u006c";}else {_afcc :="\u0064e\u0066\u0061\u0075\u006c\u0074";if _gcegd :=_caeb .RFonts ;_gcegd !=nil {if _adecc :=_gcegd .AsciiAttr ;_adecc !=nil {_afcc =*_adecc ;}else if _egedd :=_gcegd .HAnsiAttr ;_egedd !=nil {_afcc =*_egedd ;};};_fbcb ,_dbaf :=_aabe [_afcc ];if !_dbaf {_fbcb =_aabe ["\u0064e\u0066\u0061\u0075\u006c\u0074"];};_cdfe =_fbcb [_cacg ];};_bgeg :=_f .StdFontName (_cdfe );_befac .Font =_f .NewStandard14FontMustCompile (_bgeg );var _fcfa float64 ;_ebcc :=_gceg ;if _ffbd :=_caeb .Sz ;_ffbd !=nil {_fcfa =float64 (*_ffbd .ValAttr .ST_UnsignedDecimalNumber );}else if _agf :=_caeb .SzCs ;_agf !=nil {_fcfa =float64 (*_agf .ValAttr .ST_UnsignedDecimalNumber );};if _fcfa !=0{_ebcc =_fcfa /24*_gceg ;};if _fdaedc :=_caeb .VertAlign ;_fdaedc !=nil {_egeg :=_fdaedc .ValAttr ;_caebg =_egeg ==_gg .ST_VerticalAlignRunSuperscript ;_agce =_egeg ==_gg .ST_VerticalAlignRunSubscript ;};if _ebcc > _fdba ._gagbg {_fdba ._gagbg =_ebcc ;};if _caebg ||_agce {_ebcc *=0.64;};if _gfadb {if _caebg {_befac .TextRise =1.5;};if _agce {_befac .TextRise =-1.5;};};_befac .FontSize =_ebcc ;_cfgb :=0.0;if _fced :=_caeb .Spacing ;_fced !=nil {_cfgb =_faag (*_fced .ValAttr .Int64 );};_befac .CharSpacing =_cfgb ;_aded :=_gf .ColorBlack ;if _caeb
|