mirror of
https://github.com/unidoc/unioffice.git
synced 2025-04-29 13:49:10 +08:00
364 lines
79 KiB
Go
364 lines
79 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 presentation ;import (_fe "archive/zip";_cd "bytes";_dd "encoding/xml";_db "errors";_fdc "fmt";_ddg "github.com/unidoc/unioffice";_gcb "github.com/unidoc/unioffice/common";_bb "github.com/unidoc/unioffice/common/logger";_eb "github.com/unidoc/unioffice/common/tempstorage";_dc "github.com/unidoc/unioffice/drawing";_a "github.com/unidoc/unioffice/internal/formatutils";_fd "github.com/unidoc/unioffice/internal/license";_bf "github.com/unidoc/unioffice/measurement";_eg "github.com/unidoc/unioffice/schema/soo/dml";_g "github.com/unidoc/unioffice/schema/soo/dml/chart";_ge "github.com/unidoc/unioffice/schema/soo/ofc/sharedTypes";_f "github.com/unidoc/unioffice/schema/soo/pkg/relationships";_cc "github.com/unidoc/unioffice/schema/soo/pml";_d "github.com/unidoc/unioffice/zippkg";_cf "image";_dg "image/jpeg";_gc "io";_ef "math";_ec "os";_ga "path";_fg "sort";_e "strconv";_c "strings";);
|
|
|
|
// LastViewAttr returns the LastViewAttr property.
|
|
func (_bad ViewProperties )LastViewAttr ()_cc .ST_ViewType {return _bad ._fcca .LastViewAttr };
|
|
|
|
// SlideMaster is the slide master for a presentation.
|
|
type SlideMaster struct{_daea *Presentation ;_gabbb _gcb .Relationships ;_dfbe *_cc .SldMaster ;};func _gdg (_dfa *Presentation ,_cfa *_cc .CT_Shape ,_dbe *_cc .CT_GraphicalObjectFrame ,_gda *TableInfo ,_ceg *_eg .CT_Transform2D ,_fcd int ,_cdd []rectangle ,_fea []*_eg .CT_TextParagraph )[]*TextItem {_ebg :=[]*TextItem {};var _eef ,_gf ,_de ,_fce ,_dcfe ,_efda int64 ;_dca :=_ceg ==nil ;_egc :=0;for _ ,_afd :=range _fea {for _ ,_ff :=range _afd .EG_TextRun {if _bca :=_ff .R ;_bca !=nil {if !_dca {if _ceg .Off !=nil {if _cega :=_ceg .Ext ;_cega !=nil {_dcfe ,_efda =_cega .CxAttr ,_cega .CyAttr ;};if _efg :=_ceg .Off .XAttr .ST_CoordinateUnqualified ;_efg !=nil {_eef =*_efg ;_gf =_eef +_dcfe ;_dca =true ;};if _ac :=_ceg .Off .YAttr .ST_CoordinateUnqualified ;_ac !=nil {_de =*_ac ;_fce =_de +_efda ;_dca =true ;};};};_ae :=append ([]rectangle {},_cdd ...);_ae =append (_ae ,rectangle {_dbg :_eef ,_fdg :_gf ,_fed :_de ,_bd :_fce });_ebg =append (_ebg ,&TextItem {Presentation :_dfa ,Shape :_cfa ,GraphicFrame :_dbe ,TableInfo :_gda ,Paragraph :_afd ,Run :_bca ,Text :_bca .T ,_cg :_ae ,_bc :_fcd ,_fef :_egc });_egc ++;};};};return _ebg ;};func (_ca *chart )X ()*_g .ChartSpace {return _ca ._fa };
|
|
|
|
// ClearAll completely clears a placeholder. To be useable, at least one
|
|
// paragraph must be added after ClearAll via AddParagraph.
|
|
func (_eed PlaceHolder )ClearAll (){_eed ._edg .SpPr =_eg .NewCT_ShapeProperties ();_eed ._edg .TxBody =_eg .NewCT_TextBody ();_eed ._edg .TxBody .LstStyle =_eg .NewCT_TextListStyle ();};
|
|
|
|
// X returns the inner wrapped XML type.
|
|
func (_cgc PlaceHolder )X ()*_cc .CT_Shape {return _cgc ._edg };
|
|
|
|
// SetWidth sets width of slide screen size with given value in EMU units.
|
|
func (_gbbb *SlideScreenSize )SetWidth (val int32 ){_gbbb [0]=val };
|
|
|
|
// Image is an image within a slide.
|
|
type Image struct{_egd *_cc .CT_Picture };
|
|
|
|
// NotesTextViewPr returns the NotesTextViewPr property.
|
|
func (_cgff ViewProperties )NotesTextViewPr ()*_cc .CT_NotesTextViewProperties {return _cgff ._fcca .NotesTextViewPr ;};func (_bdbb *Slide )ensureClrMap (){if len (_bdbb ._ffef ._bde )==0||len (_bdbb ._ffef ._cfd )==0{return ;};_gfed :=_bdbb ._ffef ._bde [0];_eaca :=_gfed .ClrMap ;if _fadd :=_bdbb ._fcbb .ClrMapOvr ;_fadd !=nil {if _cdbd :=_fadd .Choice ;_cdbd !=nil {if _cdbd .MasterClrMapping ==nil {if _cae :=_cdbd .OverrideClrMapping ;_cae !=nil {if _cae .Bg1Attr !=_eg .ST_ColorSchemeIndexUnset {_eaca .Bg1Attr =_cae .Bg1Attr ;};if _cae .Tx1Attr !=_eg .ST_ColorSchemeIndexUnset {_eaca .Tx1Attr =_cae .Tx1Attr ;};if _cae .Bg2Attr !=_eg .ST_ColorSchemeIndexUnset {_eaca .Bg2Attr =_cae .Bg2Attr ;};if _cae .Tx2Attr !=_eg .ST_ColorSchemeIndexUnset {_eaca .Tx2Attr =_cae .Tx2Attr ;};if _cae .Accent1Attr !=_eg .ST_ColorSchemeIndexUnset {_eaca .Accent1Attr =_cae .Accent1Attr ;};if _cae .Accent2Attr !=_eg .ST_ColorSchemeIndexUnset {_eaca .Accent2Attr =_cae .Accent2Attr ;};if _cae .Accent3Attr !=_eg .ST_ColorSchemeIndexUnset {_eaca .Accent3Attr =_cae .Accent3Attr ;};if _cae .Accent4Attr !=_eg .ST_ColorSchemeIndexUnset {_eaca .Accent4Attr =_cae .Accent4Attr ;};if _cae .Accent5Attr !=_eg .ST_ColorSchemeIndexUnset {_eaca .Accent5Attr =_cae .Accent5Attr ;};if _cae .Accent6Attr !=_eg .ST_ColorSchemeIndexUnset {_eaca .Accent6Attr =_cae .Accent6Attr ;};if _cae .HlinkAttr !=_eg .ST_ColorSchemeIndexUnset {_eaca .HlinkAttr =_cae .HlinkAttr ;};if _cae .FolHlinkAttr !=_eg .ST_ColorSchemeIndexUnset {_eaca .FolHlinkAttr =_cae .FolHlinkAttr ;};};};};};_bdbb ._abde =_eaca ;};
|
|
|
|
// OpenTemplate opens a template file.
|
|
func OpenTemplate (fn string )(*Presentation ,error ){_ecac ,_ecf :=Open (fn );if _ecf !=nil {return nil ,_ecf ;};return _ecac ,nil ;};
|
|
|
|
// Type returns the type of the slide layout.
|
|
func (_effa SlideLayout )Type ()_cc .ST_SlideLayoutType {return _effa ._bcg .TypeAttr };
|
|
|
|
// AddTable adds an empty table to a slide.
|
|
func (_ecec Slide )AddTable ()*_gcb .Table {_ecee :=_cc .NewCT_GroupShapeChoice ();_ecec ._fcbb .CSld .SpTree .Choice =append (_ecec ._fcbb .CSld .SpTree .Choice ,_ecee );_cagf :=_cc .NewCT_GraphicalObjectFrame ();_ecee .GraphicFrame =append (_ecee .GraphicFrame ,_cagf );_cagf .Xfrm .Off =_eg .NewCT_Point2D ();_gffaf :=int64 (1);_cagf .Xfrm .Off .XAttr =_eg .ST_Coordinate {ST_CoordinateUnqualified :&_gffaf };_cagf .Xfrm .Off .YAttr =_eg .ST_Coordinate {ST_CoordinateUnqualified :&_gffaf };_fbbf :=_cagf .Graphic .CT_GraphicalObject .GraphicData ;_fbbf .UriAttr ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u0064\u0072\u0061\u0077\u0069\u006e\u0067\u006dl/\u0032\u0030\u0030\u0036\u002f\u0074\u0061\u0062\u006c\u0065";_gabd :=_gcb .NewTableWithXfrm (_cagf .Xfrm );_fbbf .Any =append (_fbbf .Any ,_gabd .X ());return _gabd ;};type chart struct{_fa *_g .ChartSpace ;_ba string ;_gag string ;};
|
|
|
|
// Remove removes a placeholder from a presentation.
|
|
func (_bdb PlaceHolder )Remove ()error {for _gcc ,_gde :=range _bdb ._eac .CSld .SpTree .Choice {for _ ,_ffa :=range _gde .Sp {if _ffa ==_bdb ._edg {copy (_bdb ._eac .CSld .SpTree .Choice [_gcc :],_bdb ._eac .CSld .SpTree .Choice [_gcc +1:]);_bdb ._eac .CSld .SpTree .Choice =_bdb ._eac .CSld .SpTree .Choice [0:len (_bdb ._eac .CSld .SpTree .Choice )-1];return nil ;};};};return _db .New ("\u0070\u006c\u0061\u0063\u0065\u0068\u006f\u006c\u0064\u0065r\u0020\u006e\u006f\u0074\u0020\u0066\u006fu\u006e\u0064\u0020\u0069\u006e\u0020\u0073\u006c\u0069\u0064\u0065");};
|
|
|
|
// PresentationProperties contains document specific properties.
|
|
type PresentationProperties struct{_dfbf *_cc .PresentationPr };
|
|
|
|
// Size returns slide size value as SlideScreenSize.
|
|
func (_cbba *SlideSize )Size ()SlideScreenSize {return SlideScreenSize {_cbba ._fadg .CxAttr ,_cbba ._fadg .CyAttr };};
|
|
|
|
// New initializes and reurns a new presentation
|
|
func New ()*Presentation {_bee :=_dda ();_bee .ContentTypes .AddOverride ("/\u0070\u0070\u0074\u002fpr\u0065s\u0065\u006e\u0074\u0061\u0074i\u006f\u006e\u002e\u0078\u006d\u006c","\u0061\u0070\u0070\u006c\u0069\u0063\u0061t\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002d\u006ff\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006de\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u006d\u006c\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u002e\u006d\u0061\u0069\u006e\u002b\u0078\u006d\u006c");_bee .Rels .AddRelationship ("\u0064\u006f\u0063\u0050\u0072\u006f\u0070\u0073\u002f\u0063\u006f\u0072e\u002e\u0078\u006d\u006c","\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0070\u0061\u0063\u006ba\u0067\u0065\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006d\u0065\u0074\u0061\u0064\u0061\u0074\u0061/\u0063\u006f\u0072\u0065\u002d\u0070\u0072\u006f\u0070e\u0072\u0074i\u0065\u0073");_bee .Rels .AddRelationship ("\u0064\u006fc\u0050\u0072\u006fp\u0073\u002f\u0061\u0070\u0070\u002e\u0078\u006d\u006c","\u0068t\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073.\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074i\u006f\u006e\u0073\u0068\u0069p\u0073\u002f\u0065x\u0074\u0065\u006e\u0064\u0065d\u002d\u0070\u0072\u006f\u0070\u0065\u0072\u0074\u0069\u0065\u0073");_bee .Rels .AddRelationship ("p\u0070t\u002f\u0070\u0072\u0065\u0073\u0065\u006e\u0074a\u0074\u0069\u006f\u006e.x\u006d\u006c","\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072g\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006fc\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068\u0069\u0070\u0073\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074");_bee .Rels .AddRelationship ("\u0070\u0070\u0074\u002f\u0070\u0072\u0065\u0073\u0050\u0072\u006f\u0070s\u002e\u0078\u006d\u006c","ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0070\u0072\u0065\u0073\u0050\u0072\u006f\u0070\u0073");_bee .Rels .AddRelationship ("\u0070\u0070\u0074\u002f\u0076\u0069\u0065\u0077\u0050\u0072\u006f\u0070s\u002e\u0078\u006d\u006c","ht\u0074\u0070\u003a\u002f\u002f\u0073\u0063he\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006da\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006et\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073\u0068i\u0070s\u002f\u0076\u0069\u0065\u0077\u0050\u0072\u006f\u0070\u0073");_bee .Rels .AddRelationship ("\u0070\u0070\u0074\u002fta\u0062\u006c\u0065\u0053\u0074\u0079\u006c\u0065\u0073\u002e\u0078\u006d\u006c","\u0068\u0074\u0074\u0070\u003a\u002f\u002fs\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006cf\u006fr\u006d\u0061\u0074\u0073\u002e\u006fr\u0067\u002f\u006f\u0066\u0066\u0069\u0063e\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0072\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073\u002f\u0074\u0061\u0062\u006c\u0065\u0053\u0074\u0079\u006ce\u0073");_bee ._acc .SldMasterIdLst =_cc .NewCT_SlideMasterIdList ();_gaa :=_cc .NewSldMaster ();_gaa .ClrMap .Bg1Attr =_eg .ST_ColorSchemeIndexLt1 ;_gaa .ClrMap .Bg2Attr =_eg .ST_ColorSchemeIndexLt2 ;_gaa .ClrMap .Tx1Attr =_eg .ST_ColorSchemeIndexDk1 ;_gaa .ClrMap .Tx2Attr =_eg .ST_ColorSchemeIndexDk2 ;_gaa .ClrMap .Accent1Attr =_eg .ST_ColorSchemeIndexAccent1 ;_gaa .ClrMap .Accent2Attr =_eg .ST_ColorSchemeIndexAccent2 ;_gaa .ClrMap .Accent3Attr =_eg .ST_ColorSchemeIndexAccent3 ;_gaa .ClrMap .Accent4Attr =_eg .ST_ColorSchemeIndexAccent4 ;_gaa .ClrMap .Accent5Attr =_eg .ST_ColorSchemeIndexAccent5 ;_gaa .ClrMap .Accent6Attr =_eg .ST_ColorSchemeIndexAccent6 ;_gaa .ClrMap .HlinkAttr =_eg .ST_ColorSchemeIndexHlink ;_gaa .ClrMap .FolHlinkAttr =_eg .ST_ColorSchemeIndexFolHlink ;_bee ._bde =append (_bee ._bde ,_gaa );_fedbg :=_ddg .AbsoluteFilename (_ddg .DocTypePresentation ,_ddg .SlideMasterType ,1);_bee .ContentTypes .AddOverride (_fedbg ,_ddg .SlideMasterContentType );_debc :=_bee ._bba .AddAutoRelationship (_ddg .DocTypePresentation ,_ddg .OfficeDocumentType ,1,_ddg .SlideMasterType );_daa :=_cc .NewCT_SlideMasterIdListEntry ();_daa .IdAttr =_ddg .Uint32 (2147483648);_daa .RIdAttr =_debc .ID ();_bee ._acc .SldMasterIdLst .SldMasterId =append (_bee ._acc .SldMasterIdLst .SldMasterId ,_daa );_acgc :=_gcb .NewRelationships ();_bee ._ccff =append (_bee ._ccff ,_acgc );_fbb :=_cc .NewSldLayout ();_bgf :=_acgc .AddAutoRelationship (_ddg .DocTypePresentation ,_ddg .SlideMasterType ,1,_ddg .SlideLayoutType );_adeb :=_ddg .AbsoluteFilename (_ddg .DocTypePresentation ,_ddg .SlideLayoutType ,1);_bee .ContentTypes .AddOverride (_adeb ,_ddg .SlideLayoutContentType );_acgc .AddAutoRelationship (_ddg .DocTypePresentation ,_ddg .SlideMasterType ,1,_ddg .ThemeType );_bee ._aagc =append (_bee ._aagc ,_fbb );_gaa .SldLayoutIdLst =_cc .NewCT_SlideLayoutIdList ();_cgd :=_cc .NewCT_SlideLayoutIdListEntry ();_cgd .IdAttr =_ddg .Uint32 (2147483649);_cgd .RIdAttr =_bgf .ID ();_gaa .SldLayoutIdLst .SldLayoutId =append (_gaa .SldLayoutIdLst .SldLayoutId ,_cgd );_fgc :=_gcb .NewRelationships ();_bee ._aea =append (_bee ._aea ,_fgc );_fgc .AddAutoRelationship (_ddg .DocTypePresentation ,_ddg .SlideType ,1,_ddg .SlideMasterType );_bee ._acc .NotesSz .CxAttr =6858000;_bee ._acc .NotesSz .CyAttr =9144000;_bfd :=_eg .NewTheme ();_bfd .NameAttr =_ddg .String ("\u0075n\u0069o\u0066\u0066\u0069\u0063\u0065\u0020\u0054\u0068\u0065\u006d\u0065");_bfd .ThemeElements .ClrScheme .NameAttr ="\u004f\u0066\u0066\u0069\u0063\u0065";_bfd .ThemeElements .ClrScheme .Dk1 .SysClr =_eg .NewCT_SystemColor ();_bfd .ThemeElements .ClrScheme .Dk1 .SysClr .LastClrAttr =_ddg .String ("\u0030\u0030\u0030\u0030\u0030\u0030");_bfd .ThemeElements .ClrScheme .Dk1 .SysClr .ValAttr =_eg .ST_SystemColorValWindowText ;_bfd .ThemeElements .ClrScheme .Lt1 .SysClr =_eg .NewCT_SystemColor ();_bfd .ThemeElements .ClrScheme .Lt1 .SysClr .LastClrAttr =_ddg .String ("\u0066\u0066\u0066\u0066\u0066\u0066");_bfd .ThemeElements .ClrScheme .Lt1 .SysClr .ValAttr =_eg .ST_SystemColorValWindow ;_bfd .ThemeElements .ClrScheme .Dk2 .SrgbClr =_eg .NewCT_SRgbColor ();_bfd .ThemeElements .ClrScheme .Dk2 .SrgbClr .ValAttr ="\u0034\u0034\u0035\u0034\u0036\u0061";_bfd .ThemeElements .ClrScheme .Lt2 .SrgbClr =_eg .NewCT_SRgbColor ();_bfd .ThemeElements .ClrScheme .Lt2 .SrgbClr .ValAttr ="\u0065\u0037\u0065\u0037\u0065\u0036";_bfd .ThemeElements .ClrScheme .Accent1 .SrgbClr =_eg .NewCT_SRgbColor ();_bfd .ThemeElements .ClrScheme .Accent1 .SrgbClr .ValAttr ="\u0034\u0034\u0037\u0032\u0063\u0034";_bfd .ThemeElements .ClrScheme .Accent2 .SrgbClr =_eg .NewCT_SRgbColor ();_bfd .ThemeElements .ClrScheme .Accent2 .SrgbClr .ValAttr ="\u0065\u0064\u0037\u0064\u0033\u0031";_bfd .ThemeElements .ClrScheme .Accent3 .SrgbClr =_eg .NewCT_SRgbColor ();_bfd .ThemeElements .ClrScheme .Accent3 .SrgbClr .ValAttr ="\u0061\u0035\u0061\u0035\u0061\u0035";_bfd .ThemeElements .ClrScheme .Accent4 .SrgbClr =_eg .NewCT_SRgbColor ();_bfd .ThemeElements .ClrScheme .Accent4 .SrgbClr .ValAttr ="\u0066\u0066\u0063\u0030\u0030\u0030";_bfd .ThemeElements .ClrScheme .Accent5 .SrgbClr =_eg .NewCT_SRgbColor ();_bfd .ThemeElements .ClrScheme .Accent5 .SrgbClr .ValAttr ="\u0035\u0062\u0039\u0062\u0064\u0035";_bfd .ThemeElements .ClrScheme .Accent6 .SrgbClr =_eg .NewCT_SRgbColor ();_bfd .ThemeElements .ClrScheme .Accent6 .SrgbClr .ValAttr ="\u0037\u0030\u0061\u0064\u0034\u0037";_bfd .ThemeElements .ClrScheme .Hlink .SrgbClr =_eg .NewCT_SRgbColor ();_bfd .ThemeElements .ClrScheme .Hlink .SrgbClr .ValAttr ="\u0030\u0035\u0036\u0033\u0063\u0031";_bfd .ThemeElements .ClrScheme .FolHlink .SrgbClr =_eg .NewCT_SRgbColor ();_bfd .ThemeElements .ClrScheme .FolHlink .SrgbClr .ValAttr ="\u0039\u0035\u0034\u0066\u0037\u0032";_bfd .ThemeElements .FontScheme .NameAttr ="\u004f\u0066\u0066\u0069\u0063\u0065";_bfd .ThemeElements .FontScheme .MajorFont .Latin .TypefaceAttr ="\u0043\u0061\u006c\u0069\u0062\u0072\u0069\u0020\u004c\u0069\u0067\u0068\u0074";_bfd .ThemeElements .FontScheme .MinorFont .Latin .TypefaceAttr ="\u0043a\u006c\u0069\u0062\u0072\u0069";_bfd .ThemeElements .FmtScheme .NameAttr =_ddg .String ("\u004f\u0066\u0066\u0069\u0063\u0065");_ebgg :=_eg .NewEG_FillProperties ();_bfd .ThemeElements .FmtScheme .FillStyleLst .EG_FillProperties =append (_bfd .ThemeElements .FmtScheme .FillStyleLst .EG_FillProperties ,_ebgg );_ebgg .SolidFill =&_eg .CT_SolidColorFillProperties {SchemeClr :&_eg .CT_SchemeColor {ValAttr :_eg .ST_SchemeColorValPhClr }};_ebgg =_eg .NewEG_FillProperties ();_bfd .ThemeElements .FmtScheme .FillStyleLst .EG_FillProperties =append (_bfd .ThemeElements .FmtScheme .FillStyleLst .EG_FillProperties ,_ebgg );_bfd .ThemeElements .FmtScheme .FillStyleLst .EG_FillProperties =append (_bfd .ThemeElements .FmtScheme .FillStyleLst .EG_FillProperties ,_ebgg );_ebgg .GradFill =&_eg .CT_GradientFillProperties {RotWithShapeAttr :_ddg .Bool (true ),GsLst :&_eg .CT_GradientStopList {},Lin :&_eg .CT_LinearShadeProperties {}};_ebgg .GradFill .Lin .AngAttr =_ddg .Int32 (5400000);_ebgg .GradFill .Lin .ScaledAttr =_ddg .Bool (false );_afe :=_eg .NewCT_GradientStop ();_afe .PosAttr .ST_PositiveFixedPercentageDecimal =_ddg .Int32 (0);_afe .SchemeClr =&_eg .CT_SchemeColor {ValAttr :_eg .ST_SchemeColorValPhClr };_ebgg .GradFill .GsLst .Gs =append (_ebgg .GradFill .GsLst .Gs ,_afe );_afe =_eg .NewCT_GradientStop ();_afe .PosAttr .ST_PositiveFixedPercentageDecimal =_ddg .Int32 (50000);_afe .SchemeClr =&_eg .CT_SchemeColor {ValAttr :_eg .ST_SchemeColorValPhClr };_ebgg .GradFill .GsLst .Gs =append (_ebgg .GradFill .GsLst .Gs ,_afe );_bfd .ThemeElements .FmtScheme .LnStyleLst =_eg .NewCT_LineStyleList ();for _cccb :=0;_cccb < 3;_cccb ++{_fgca :=_eg .NewCT_LineProperties ();_fgca .WAttr =_ddg .Int32 (int32 (6350*(_cccb +1)));_fgca .CapAttr =_eg .ST_LineCapFlat ;_fgca .CmpdAttr =_eg .ST_CompoundLineSng ;_fgca .AlgnAttr =_eg .ST_PenAlignmentCtr ;_bfd .ThemeElements .FmtScheme .LnStyleLst .Ln =append (_bfd .ThemeElements .FmtScheme .LnStyleLst .Ln ,_fgca );};_bfd .ThemeElements .FmtScheme .EffectStyleLst =_eg .NewCT_EffectStyleList ();for _cab :=0;_cab < 3;_cab ++{_gbafb :=_eg .NewCT_EffectStyleItem ();_gbafb .EffectLst =_eg .NewCT_EffectList ();_bfd .ThemeElements .FmtScheme .EffectStyleLst .EffectStyle =append (_bfd .ThemeElements .FmtScheme .EffectStyleLst .EffectStyle ,_gbafb );};_cgg :=_eg .NewEG_FillProperties ();_cgg .SolidFill =&_eg .CT_SolidColorFillProperties {SchemeClr :&_eg .CT_SchemeColor {ValAttr :_eg .ST_SchemeColorValPhClr }};_bfd .ThemeElements .FmtScheme .BgFillStyleLst .EG_FillProperties =append (_bfd .ThemeElements .FmtScheme .BgFillStyleLst .EG_FillProperties ,_cgg );_bfd .ThemeElements .FmtScheme .BgFillStyleLst .EG_FillProperties =append (_bfd .ThemeElements .FmtScheme .BgFillStyleLst .EG_FillProperties ,_cgg );_bfd .ThemeElements .FmtScheme .BgFillStyleLst .EG_FillProperties =append (_bfd .ThemeElements .FmtScheme .BgFillStyleLst .EG_FillProperties ,_ebgg );_bee ._cfd =append (_bee ._cfd ,_bfd );_eeab :=_ddg .AbsoluteFilename (_ddg .DocTypePresentation ,_ddg .ThemeType ,1);_bee .ContentTypes .AddOverride (_eeab ,_ddg .ThemeContentType );_bee ._bba .AddAutoRelationship (_ddg .DocTypePresentation ,_ddg .OfficeDocumentType ,1,_ddg .ThemeType );_eba :=_gcb .NewRelationships ();_bee ._eede =append (_bee ._eede ,_eba );return _bee ;};
|
|
|
|
// SlideSize returns presentation slide size.
|
|
func (_egdd *Presentation )SlideSize ()SlideSize {if _egdd ._acc .SldSz ==nil {_egdd ._acc .SldSz =_cc .NewCT_SlideSize ();};return SlideSize {_egdd ._acc .SldSz ,_egdd };};
|
|
|
|
// X returns the inner wrapped XML type.
|
|
func (_dbf SlideLayout )X ()*_cc .SldLayout {return _dbf ._bcg };
|
|
|
|
// TextBox is a text box within a slide.
|
|
type TextBox struct{_bagb *_cc .CT_Shape };func (_bfef *Presentation )onNewRelationship (_adceg *_d .DecodeMap ,_gcg ,_fgcb string ,_gedf []*_fe .File ,_ebe *_f .Relationship ,_bgg _d .Target )error {_bbg :=_ddg .DocTypePresentation ;switch _fgcb {case _ddg .OfficeDocumentType :_bfef ._acc =_cc .NewPresentation ();_adceg .AddTarget (_gcg ,_bfef ._acc ,_fgcb ,0);_adceg .AddTarget (_d .RelationsPathFor (_gcg ),_bfef ._bba .X (),_fgcb ,0);_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,0);case _ddg .CorePropertiesType :_adceg .AddTarget (_gcg ,_bfef .CoreProperties .X (),_fgcb ,0);_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,0);case _ddg .CustomPropertiesType :_adceg .AddTarget (_gcg ,_bfef .CustomProperties .X (),_fgcb ,0);_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,0);case _ddg .PresentationPropertiesType :_adceg .AddTarget (_gcg ,_bfef ._ffg .X (),_fgcb ,0);_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,0);case _ddg .ViewPropertiesType :_adceg .AddTarget (_gcg ,_bfef ._adc .X (),_fgcb ,0);_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,0);case _ddg .TableStylesType :_adceg .AddTarget (_gcg ,_bfef ._ffaf .X (),_fgcb ,0);_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,0);case _ddg .HyperLinkType :_ccd :=_eg .NewCT_Hyperlink ();_eebf :=uint32 (len (_bfef ._fdb ));_adceg .AddTarget (_gcg ,_ccd ,_fgcb ,_eebf );_bfef ._fdb =append (_bfef ._fdb ,_ccd );case _ddg .CustomXMLType :_gdd :=&_ddg .XSDAny {};_cac :=uint32 (len (_bfef ._da ));_adceg .AddTarget (_gcg ,_gdd ,_fgcb ,_cac );_bfef ._da =append (_bfef ._da ,_gdd );_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,len (_bfef ._da ));case _ddg .ChartType :_edf :=chart {_fa :_g .NewChartSpace ()};_abbf :=uint32 (len (_bfef ._dbc ));_adceg .AddTarget (_gcg ,_edf ._fa ,_fgcb ,_abbf );_bfef ._dbc =append (_bfef ._dbc ,&_edf );_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,len (_bfef ._dbc ));_edf ._gag =_ebe .TargetAttr ;case _ddg .HandoutMasterType :_aee :=_cc .NewHandoutMaster ();_bga :=uint32 (len (_bfef ._fdce ));_adceg .AddTarget (_gcg ,_aee ,_fgcb ,_bga );_bfef ._fdce =append (_bfef ._fdce ,_aee );_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,len (_bfef ._fdce ));case _ddg .NotesMasterType :_add :=_cc .NewNotesMaster ();_efdc :=uint32 (len (_bfef ._dcc ));_adceg .AddTarget (_gcg ,_add ,_fgcb ,_efdc );_bfef ._dcc =append (_bfef ._dcc ,_add );_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,len (_bfef ._dcc ));case _ddg .ExtendedPropertiesType :_adceg .AddTarget (_gcg ,_bfef .AppProperties .X (),_fgcb ,0);_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,0);case _ddg .SlideType :if _ddf ,_cdca :=_a .StringToNumbers (_gcg );_cdca {if len (_bfef ._gca )< _ddf {_ggd :=_cc .NewSld ();_bfef ._gca =append (_bfef ._gca ,_ggd );_adceg .AddTarget (_gcg ,_ggd ,_fgcb ,uint32 (_ddf ));_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,_ddf );_cdad :=_gcb .NewRelationships ();_adceg .AddTarget (_d .RelationsPathFor (_gcg ),_cdad .X (),_fgcb ,0);if len (_bfef ._dbef )>=_ddf {_bfef ._dbef [_ddf -1]=_cdad ;}else {_bfef ._dbef =append (_bfef ._dbef ,_cdad );};};};case _ddg .SlideMasterType :_gad :=_cc .NewSldMaster ();if !_adceg .AddTarget (_gcg ,_gad ,_fgcb ,uint32 (len (_bfef ._bde )+1)){return nil ;};_bfef ._bde =append (_bfef ._bde ,_gad );_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,len (_bfef ._bde ));_bbd :=_gcb .NewRelationships ();_adceg .AddTarget (_d .RelationsPathFor (_gcg ),_bbd .X (),_fgcb ,0);_bfef ._ccff =append (_bfef ._ccff ,_bbd );case _ddg .SlideLayoutType :_dfeb :=_cc .NewSldLayout ();if !_adceg .AddTarget (_gcg ,_dfeb ,_fgcb ,uint32 (len (_bfef ._aagc )+1)){return nil ;};_bfef ._aagc =append (_bfef ._aagc ,_dfeb );_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,len (_bfef ._aagc ));_gbdg :=_gcb .NewRelationships ();_adceg .AddTarget (_d .RelationsPathFor (_gcg ),_gbdg .X (),_fgcb ,0);_bfef ._aea =append (_bfef ._aea ,_gbdg );case _ddg .ThumbnailType :for _cbg ,_cacf :=range _gedf {if _cacf ==nil {continue ;};if _cacf .Name ==_gcg {_efbf ,_gbae :=_cacf .Open ();if _gbae !=nil {return _fdc .Errorf ("e\u0072\u0072\u006f\u0072\u0020\u0072e\u0061\u0064\u0069\u006e\u0067\u0020\u0074\u0068\u0075m\u0062\u006e\u0061i\u006c:\u0020\u0025\u0073",_gbae );};_bfef .Thumbnail ,_ ,_gbae =_cf .Decode (_efbf );_efbf .Close ();if _gbae !=nil {return _fdc .Errorf ("\u0065\u0072\u0072\u006fr\u0020\u0064\u0065\u0063\u006f\u0064\u0069\u006e\u0067\u0020t\u0068u\u006d\u0062\u006e\u0061\u0069\u006c\u003a \u0025\u0073",_gbae );};_gedf [_cbg ]=nil ;};};case _ddg .ThemeType :_efgg :=_eg .NewTheme ();if !_adceg .AddTarget (_gcg ,_efgg ,_fgcb ,uint32 (len (_bfef ._cfd )+1)){return nil ;};_bfef ._cfd =append (_bfef ._cfd ,_efgg );_ebe .TargetAttr =_ddg .RelativeFilename (_bbg ,_bgg .Typ ,_fgcb ,len (_bfef ._cfd ));_gadb :=_gcb .NewRelationships ();_adceg .AddTarget (_d .RelationsPathFor (_gcg ),_gadb .X (),_fgcb ,0);_bfef ._eede =append (_bfef ._eede ,_gadb );case _ddg .ImageType :_gcg =_ga .Clean (_gcg );if _cdb ,_baef :=_bfef ._feg [_gcg ];_baef {_ebe .TargetAttr =_cdb ;return nil ;};_dee :="";for _ebc ,_gffa :=range _gedf {if _gffa ==nil {continue ;};if _gffa .Name ==_gcg {_egdf ,_bgaa :=_d .ExtractToDiskTmp (_gffa ,_bfef .TmpPath );if _bgaa !=nil {return _bgaa ;};_geb ,_bgaa :=_gcb .ImageFromStorage (_egdf );if _bgaa !=nil {return _bgaa ;};_dee =_geb .Format ;_bcc :=_gcb .MakeImageRef (_geb ,&_bfef .DocBase ,_bfef ._bba );_bcc .SetTarget ("\u002e\u002e\u002f"+_gcg [4:]);_bfef .Images =append (_bfef .Images ,_bcc );_gedf [_ebc ]=nil ;_feb :=len (_bfef .Images );if _bedd ,_abg :=_a .StringToNumbers (_gcg );_abg {_feb =_bedd ;};_adceg .RecordIndex (_gcg ,_feb );break ;};};_fbbb :=_adceg .IndexFor (_gcg );_ebe .TargetAttr =_ddg .RelativeImageFilename (_bbg ,_bgg .Typ ,_fgcb ,_fbbb ,_dee );_bfef ._feg [_gcg ]=_ebe .TargetAttr ;default:_bb .Log .Debug ("\u0075\u006e\u0073\u0075\u0070p\u006f\u0072\u0074\u0065\u0064\u0020\u0072\u0065\u006c\u0061\u0074\u0069\u006fn\u0073\u0068\u0069\u0070\u0020\u0074\u0079\u0070\u0065\u003a\u0020\u0025\u0073\u0020\u0074\u0067\u0074\u003a\u0020\u0025\u0073",_fgcb ,_gcg );};return nil ;};func (_bag sort2d )Len ()int {return len (_bag )};
|
|
|
|
// ViewProperties contains presentation specific properties.
|
|
type ViewProperties struct{_fcca *_cc .ViewPr };
|
|
|
|
// GetImageByRelID returns an ImageRef with the associated relation ID in the
|
|
// document.
|
|
func (_fbe *Presentation )GetImageByRelID (relID string )(_gcb .ImageRef ,bool ){for _ ,_ecacg :=range _fbe .Images {if _ecacg .RelID ()==relID {return _ecacg ,true ;};};return _gcb .ImageRef {},false ;};
|
|
|
|
// AddParagraph adds a new paragraph to a placeholder.
|
|
func (_adf PlaceHolder )AddParagraph ()_dc .Paragraph {_ddde :=_dc .MakeParagraph (_eg .NewCT_TextParagraph ());_adf ._edg .TxBody .P =append (_adf ._edg .TxBody .P ,_ddde .X ());return _ddde ;};
|
|
|
|
// SorterViewPr returns the SorterViewPr property.
|
|
func (_bbbf ViewProperties )SorterViewPr ()*_cc .CT_SlideSorterViewProperties {return _bbbf ._fcca .SorterViewPr ;};
|
|
|
|
// SetOffsetY sets vertical offset of text box in distance units (see measurement package).
|
|
func (_abc TextBox )SetOffsetY (offY float64 ){_caa :=_abc .getOff ();_dgef :=_bf .ToEMU (offY );_caa .YAttr =_eg .ST_Coordinate {ST_CoordinateUnqualified :&_dgef };};
|
|
|
|
// Paragraphs returns the paragraphs defined in the placeholder.
|
|
func (_gg PlaceHolder )Paragraphs ()[]_dc .Paragraph {_deb :=[]_dc .Paragraph {};for _ ,_efe :=range _gg ._edg .TxBody .P {_deb =append (_deb ,_dc .MakeParagraph (_efe ));};return _deb ;};func _efd (_ad *Presentation ,_dde []*_cc .CT_GroupShapeChoice ,_efb []rectangle ,_bdd []*TextItem )[]*TextItem {for _ ,_bbf :=range _dde {_dgb :=append ([]rectangle {},_efb ...);for _ ,_ce :=range _bbf .Sp {_bdd =append (_bdd ,_gdg (_ad ,_ce ,nil ,nil ,_ce .SpPr .Xfrm ,0,_efb ,_ce .TxBody .P )...);};for _ ,_dgg :=range _bbf .GraphicFrame {if _dgg !=nil &&_dgg .Graphic !=nil &&_dgg .Graphic .GraphicData !=nil {_gee :=_dgg .Xfrm ;for _ ,_faf :=range _dgg .Graphic .GraphicData .Any {if _gdc ,_fca :=_faf .(*_eg .Tbl );_fca {_ddd :=&_gdc .CT_Table ;_dga :=0;for _dcf ,_gec :=range _gdc .Tr {for _ecc ,_ceb :=range _gec .Tc {_cbf :=&TableInfo {Table :_ddd ,Row :_gec ,Cell :_ceb ,RowIndex :_dcf ,ColIndex :_ecc };_bdd =append (_bdd ,_gdg (_ad ,nil ,_dgg ,_cbf ,_gee ,_dga ,_efb ,_ceb .TxBody .P )...);_dga ++;};};};};};};for _ ,_fcad :=range _bbf .GrpSp {if _fcad .GrpSpPr !=nil {_ee :=_fcad .GrpSpPr .Xfrm ;var _df ,_bce int64 ;if _ee .Off !=nil {_af ,_be :=_ee .Off .XAttr .ST_CoordinateUnqualified ,_ee .Off .YAttr .ST_CoordinateUnqualified ;if _af !=nil &&_be !=nil {if _cad :=_ee .Ext ;_cad !=nil {_df ,_bce =_cad .CxAttr ,_cad .CyAttr ;};_dgb =append (_dgb ,rectangle {_dbg :*_af ,_fed :*_be ,_fdg :*_af +_df ,_bd :*_be +_bce });};};};_bdd =_efd (_ad ,_fcad .Choice ,_dgb ,_bdd );};};return _bdd ;};func (_agab *Slide )getSlideRels ()_gcb .Relationships {_cfade :=_agab ._ffef ;for _acae ,_abaf :=range _cfade .Slides (){if *_agab ._fcbb ==*_abaf ._fcbb {return _cfade ._dbef [_acae ];};};return _gcb .Relationships {};};
|
|
|
|
// AddSlide adds a new slide to the presentation.
|
|
func (_bae *Presentation )AddSlide ()Slide {_aeg :=_cc .NewCT_SlideIdListEntry ();_aeg .IdAttr =_bae .nextSlideID ();_bae ._acc .SldIdLst .SldId =append (_bae ._acc .SldIdLst .SldId ,_aeg );_ccg :=_cc .NewSld ();_ccg .CSld .SpTree .NvGrpSpPr .CNvPr .IdAttr =1;_ccg .CSld .SpTree .GrpSpPr .Xfrm =_eg .NewCT_GroupTransform2D ();_ccg .CSld .SpTree .GrpSpPr .Xfrm .Off =_eg .NewCT_Point2D ();_ccg .CSld .SpTree .GrpSpPr .Xfrm .Off .XAttr .ST_CoordinateUnqualified =_ddg .Int64 (0);_ccg .CSld .SpTree .GrpSpPr .Xfrm .Off .YAttr .ST_CoordinateUnqualified =_ddg .Int64 (0);_ccg .CSld .SpTree .GrpSpPr .Xfrm .Ext =_eg .NewCT_PositiveSize2D ();_ccg .CSld .SpTree .GrpSpPr .Xfrm .Ext .CxAttr =int64 (0*_bf .Point );_ccg .CSld .SpTree .GrpSpPr .Xfrm .Ext .CyAttr =int64 (0*_bf .Point );_ccg .CSld .SpTree .GrpSpPr .Xfrm .ChOff =_ccg .CSld .SpTree .GrpSpPr .Xfrm .Off ;_ccg .CSld .SpTree .GrpSpPr .Xfrm .ChExt =_ccg .CSld .SpTree .GrpSpPr .Xfrm .Ext ;_bae ._gca =append (_bae ._gca ,_ccg );_ebaa :=_bae ._bba .AddAutoRelationship (_ddg .DocTypePresentation ,_ddg .OfficeDocumentType ,len (_bae ._gca ),_ddg .SlideType );_aeg .RIdAttr =_ebaa .ID ();_bbe :=_ddg .AbsoluteFilename (_ddg .DocTypePresentation ,_ddg .SlideType ,len (_bae ._gca ));_bae .ContentTypes .AddOverride (_bbe ,_ddg .SlideContentType );_gce :=_gcb .NewRelationships ();_bae ._dbef =append (_bae ._dbef ,_gce );_gce .AddAutoRelationship (_ddg .DocTypePresentation ,_ddg .SlideType ,len (_bae ._aagc ),_ddg .SlideLayoutType );return Slide {_aeg ,_ccg ,_bae ,nil };};
|
|
|
|
// HtmlPubPr returns the HtmlPubPr property.
|
|
func (_fad PresentationProperties )HtmlPubPr ()*_cc .CT_HtmlPublishProperties {return _fad ._dfbf .HtmlPubPr ;};
|
|
|
|
// SaveToFileAsTemplate writes the Presentation out to a file as a template.
|
|
func (_fdba *Presentation )SaveToFileAsTemplate (path string )error {return _fdba .saveToFile (path ,true );};
|
|
|
|
// GetColorBySchemeColor returns *dml.CT_Color mapped to scheme colors like dk1, lt1 etc. depending on what theme is used in the presentation.
|
|
func (_dad *Presentation )GetColorBySchemeColor (schClr _eg .ST_SchemeColorVal )*_eg .CT_Color {if len (_dad ._bde )==0||len (_dad ._cfd )==0{return nil ;};var _dgae _eg .ST_ColorSchemeIndex ;_bge :=_dad ._bde [0];_gaea :=_bge .ClrMap ;switch schClr .String (){case "\u0062\u0067\u0031":_dgae =_gaea .Bg1Attr ;case "\u0062\u0067\u0032":_dgae =_gaea .Bg2Attr ;case "\u0074\u0078\u0031":_dgae =_gaea .Tx1Attr ;case "\u0074\u0078\u0032":_dgae =_gaea .Tx2Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0031":_dgae =_gaea .Accent1Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0032":_dgae =_gaea .Accent2Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0033":_dgae =_gaea .Accent3Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0034":_dgae =_gaea .Accent4Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0035":_dgae =_gaea .Accent5Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0036":_dgae =_gaea .Accent6Attr ;case "\u0068\u006c\u0069n\u006b":_dgae =_gaea .HlinkAttr ;case "\u0066\u006f\u006c\u0048\u006c\u0069\u006e\u006b":_dgae =_gaea .FolHlinkAttr ;case "\u0064\u006b\u0031":_dgae =_eg .ST_ColorSchemeIndexDk1 ;case "\u0064\u006b\u0032":_dgae =_eg .ST_ColorSchemeIndexDk2 ;case "\u006c\u0074\u0031":_dgae =_eg .ST_ColorSchemeIndexLt1 ;case "\u006c\u0074\u0032":_dgae =_eg .ST_ColorSchemeIndexLt2 ;default:_dgae =_eg .ST_ColorSchemeIndexUnset ;};_egfb :=_dad ._cfd [0];_gef :=_egfb .ThemeElements ;if _gef ==nil {return nil ;};var _gfc *_eg .CT_Color ;_ddbb :=_gef .ClrScheme ;switch _dgae .String (){case "\u0064\u006b\u0031":_gfc =_ddbb .Dk1 ;case "\u0064\u006b\u0032":_gfc =_ddbb .Dk2 ;case "\u006c\u0074\u0031":_gfc =_ddbb .Lt1 ;case "\u006c\u0074\u0032":_gfc =_ddbb .Lt2 ;case "\u0061c\u0063\u0065\u006e\u0074\u0031":_gfc =_ddbb .Accent1 ;case "\u0061c\u0063\u0065\u006e\u0074\u0032":_gfc =_ddbb .Accent2 ;case "\u0061c\u0063\u0065\u006e\u0074\u0033":_gfc =_ddbb .Accent3 ;case "\u0061c\u0063\u0065\u006e\u0074\u0034":_gfc =_ddbb .Accent4 ;case "\u0061c\u0063\u0065\u006e\u0074\u0035":_gfc =_ddbb .Accent5 ;case "\u0061c\u0063\u0065\u006e\u0074\u0036":_gfc =_ddbb .Accent6 ;case "\u0068\u006c\u0069n\u006b":_gfc =_ddbb .Hlink ;case "\u0066\u006f\u006c\u0048\u006c\u0069\u006e\u006b":_gfc =_ddbb .FolHlink ;default:return nil ;};return _gfc ;};
|
|
|
|
// SaveAsTemplate writes the presentation out to a writer in the Zip package format as a template
|
|
func (_abb *Presentation )SaveAsTemplate (w _gc .Writer )error {return _abb .save (w ,true )};
|
|
|
|
// GetTableStyleById returns *dml.CT_TableStyle by its style id.
|
|
func (_fcf *Presentation )GetTableStyleById (id string )*_eg .CT_TableStyle {_dcade :=_fcf ._ffaf .TblStyle ();for _ ,_egcd :=range _dcade {if _egcd .StyleIdAttr ==id {return _egcd ;};};return nil ;};
|
|
|
|
// WebPr returns the WebPr property.
|
|
func (_dcad PresentationProperties )WebPr ()*_cc .CT_WebProperties {return _dcad ._dfbf .WebPr };
|
|
|
|
// TextItem is used for keeping text with references to a paragraph and run, a shape or a table, a row and a cell where it is located.
|
|
type TextItem struct{Text string ;Presentation *Presentation ;Shape *_cc .CT_Shape ;GraphicFrame *_cc .CT_GraphicalObjectFrame ;Paragraph *_eg .CT_TextParagraph ;Run *_eg .CT_RegularTextRun ;TableInfo *TableInfo ;_cg []rectangle ;_bc int ;_fef int ;};
|
|
|
|
// SlideSize represents a slide size of a presentation.
|
|
type SlideSize struct{_fadg *_cc .CT_SlideSize ;_ddff *Presentation ;};type sort2d []*TextItem ;
|
|
|
|
// PlaceHolders returns all of the content place holders within a given slide.
|
|
func (_bef Slide )PlaceHolders ()[]PlaceHolder {_afdb :=[]PlaceHolder {};for _ ,_gbec :=range _bef ._fcbb .CSld .SpTree .Choice {for _ ,_ecb :=range _gbec .Sp {if _ecb .NvSpPr !=nil &&_ecb .NvSpPr .NvPr !=nil &&_ecb .NvSpPr .NvPr .Ph !=nil {_afdb =append (_afdb ,PlaceHolder {_ecb ,_bef ._fcbb });};};};return _afdb ;};
|
|
|
|
// ValidateWithPath validates the slide passing path informaton for a better
|
|
// error message.
|
|
func (_ddcc Slide )ValidateWithPath (path string )error {if _beg :=_ddcc ._fcbb .ValidateWithPath (path );_beg !=nil {return _beg ;};for _ ,_fbeb :=range _ddcc ._fcbb .CSld .SpTree .Choice {for _ ,_edec :=range _fbeb .Sp {if _edec .TxBody !=nil {if len (_edec .TxBody .P )==0{return _db .New (path +"\u0020\u003a \u0073\u006c\u0069\u0064\u0065 \u0073\u0068\u0061\u0070\u0065 \u0077\u0069\u0074\u0068\u0020\u0061\u0020\u0074\u0078\u0062\u006f\u0064\u0079\u0020\u006d\u0075\u0073\u0074\u0020\u0063\u006f\u006e\u0074\u0061\u0069\u006e\u0020\u0070\u0061\u0072\u0061\u0067\u0072\u0061\u0070\u0068\u0073");};};};};return nil ;};type rectangle struct{_dbg int64 ;_fed int64 ;_fdg int64 ;_bd int64 ;};
|
|
|
|
// Height returns slide screen size height in EMU units.
|
|
func (_dcag *SlideScreenSize )Height ()int32 {return _dcag [1]};
|
|
|
|
// Index returns the placeholder index
|
|
func (_bfe PlaceHolder )Index ()uint32 {if _bfe ._edg .NvSpPr .NvPr .Ph .IdxAttr ==nil {return 0;};return *_bfe ._edg .NvSpPr .NvPr .Ph .IdxAttr ;};
|
|
|
|
// AddTable adds a new table to a placeholder.
|
|
func (_dbgf PlaceHolder )AddTable ()*_gcb .Table {_dbgf .Clear ();_fgf :=_cc .NewCT_GroupShapeChoice ();_dbgf ._eac .CSld .SpTree .Choice =append (_dbgf ._eac .CSld .SpTree .Choice ,_fgf );_edgg :=_cc .NewCT_GraphicalObjectFrame ();_fgf .GraphicFrame =append (_fgf .GraphicFrame ,_edgg );_edgg .Xfrm .Off =_eg .NewCT_Point2D ();_bcf :=int64 (1);_edgg .Xfrm .Off .XAttr =_eg .ST_Coordinate {ST_CoordinateUnqualified :&_bcf };_edgg .Xfrm .Off .YAttr =_eg .ST_Coordinate {ST_CoordinateUnqualified :&_bcf };_eec :=_edgg .Graphic .CT_GraphicalObject .GraphicData ;_eec .UriAttr ="\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002eo\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073.\u006f\u0072\u0067\u002f\u0064\u0072\u0061\u0077\u0069\u006e\u0067\u006dl/\u0032\u0030\u0030\u0036\u002f\u0074\u0061\u0062\u006c\u0065";_ada :=_gcb .NewTableWithXfrm (_edgg .Xfrm );_eec .Any =append (_eec .Any ,_ada .X ());return _ada ;};func (_fcc sort2d )Swap (i ,j int ){_fcc [i ],_fcc [j ]=_fcc [j ],_fcc [i ]};
|
|
|
|
// Properties returns the properties of the TextBox.
|
|
func (_fag Image )Properties ()_dc .ShapeProperties {if _fag ._egd .SpPr ==nil {_fag ._egd .SpPr =_eg .NewCT_ShapeProperties ();};return _dc .MakeShapeProperties (_fag ._egd .SpPr );};
|
|
|
|
// Text returns text from a slide as one string separated with line breaks.
|
|
func (_eca *SlideText )Text ()string {_egf :=_cd .NewBuffer ([]byte {});for _ ,_gbaf :=range _eca .Items {if _gbaf .Text !=""{_egf .WriteString (_gbaf .Text );_egf .WriteString ("\u000a");};};return _egf .String ();};
|
|
|
|
// PlaceHolder is a place holder from a slide.
|
|
type PlaceHolder struct{_edg *_cc .CT_Shape ;_eac *_cc .Sld ;};
|
|
|
|
// GetPlaceholder returns a placeholder given its type. If there are multiplace
|
|
// placeholders of the same type, this method returns the first one. You must use the
|
|
// PlaceHolders() method to access the others.
|
|
func (_ebcc Slide )GetPlaceholder (t _cc .ST_PlaceholderType )(PlaceHolder ,error ){for _ ,_gcab :=range _ebcc ._fcbb .CSld .SpTree .Choice {for _ ,_fadc :=range _gcab .Sp {if _fadc .NvSpPr !=nil &&_fadc .NvSpPr .NvPr !=nil &&_fadc .NvSpPr .NvPr .Ph !=nil {if _fadc .NvSpPr .NvPr .Ph .TypeAttr ==t {return PlaceHolder {_fadc ,_ebcc ._fcbb },nil ;};};};};return PlaceHolder {},_db .New ("\u0075\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0066i\u006e\u0064\u0020\u0070\u006c\u0061\u0063\u0065\u0068\u006fl\u0064\u0065\u0072");};
|
|
|
|
// SlideScreenSize represents the slide screen size as a 2 element array
|
|
// representing the width and height in EMU units.
|
|
type SlideScreenSize [2]int32 ;func (_acgd *Presentation )save (_aac _gc .Writer ,_dae bool )error {const _bbbe ="\u0050\u0072\u0065\u0073en\u0074\u0061\u0074\u0069\u006f\u006e\u003a\u0070\u002e\u0053\u0061\u0076\u0065";if _edge :=_acgd ._acc .Validate ();_edge !=nil {_bb .Log .Debug ("\u0076\u0061\u006c\u0069\u0064\u0061\u0074\u0069\u006f\u006e\u0020\u0065\u0072\u0072\u006fr\u0020i\u006e\u0020\u0064\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u003a\u0020\u0025\u0073",_edge );};if !_fd .GetLicenseKey ().IsLicensed ()&&!_bfc {_fdc .Println ("\u0055\u006e\u006ci\u0063\u0065\u006e\u0073e\u0064\u0020\u0076\u0065\u0072\u0073\u0069o\u006e\u0020\u006f\u0066\u0020\u0055\u006e\u0069\u004f\u0066\u0066\u0069\u0063\u0065");_fdc .Println ("\u002d\u0020\u0047e\u0074\u0020\u0061\u0020\u0074\u0072\u0069\u0061\u006c\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");return _db .New ("\u0075\u006e\u0069\u006f\u0066\u0066\u0069\u0063\u0065\u0020\u006ci\u0063\u0065\u006e\u0073\u0065\u0020\u0072\u0065\u0071\u0075i\u0072\u0065\u0064");};if len (_acgd ._adfc )==0{_ag ,_gab :=_fd .GenRefId ("\u0070\u0077");if _gab !=nil {_bb .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_gab );return _gab ;};_acgd ._adfc =_ag ;};if _dea :=_fd .Track (_acgd ._adfc ,_bbbe );_dea !=nil {_bb .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_dea );return _dea ;};if _dae {_acgd .ContentTypes .RemoveOverride ("\u0061\u0070\u0070\u006c\u0069\u0063\u0061t\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002d\u006ff\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006de\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u006d\u006c\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u002e\u006d\u0061\u0069\u006e\u002b\u0078\u006d\u006c");_acgd .ContentTypes .EnsureOverride ("/\u0070\u0070\u0074\u002fpr\u0065s\u0065\u006e\u0074\u0061\u0074i\u006f\u006e\u002e\u0078\u006d\u006c","\u0061\u0070pl\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074s\u002d\u006f\u0066\u0066ic\u0065\u0064o\u0063u\u006d\u0065\u006e\u0074\u002e\u0070r\u0065\u0073\u0065n\u0074\u0061t\u0069\u006f\u006e\u006d\u006c\u002e\u0074\u0065\u006d\u0070\u006c\u0061\u0074\u0065.\u006d\u0061\u0069\u006e\u002b\u0078\u006d\u006c");}else {_acgd .ContentTypes .RemoveOverride ("\u0061\u0070pl\u0069\u0063\u0061\u0074\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066o\u0072\u006d\u0061\u0074s\u002d\u006f\u0066\u0066ic\u0065\u0064o\u0063u\u006d\u0065\u006e\u0074\u002e\u0070r\u0065\u0073\u0065n\u0074\u0061t\u0069\u006f\u006e\u006d\u006c\u002e\u0074\u0065\u006d\u0070\u006c\u0061\u0074\u0065.\u006d\u0061\u0069\u006e\u002b\u0078\u006d\u006c");_acgd .ContentTypes .EnsureOverride ("/\u0070\u0070\u0074\u002fpr\u0065s\u0065\u006e\u0074\u0061\u0074i\u006f\u006e\u002e\u0078\u006d\u006c","\u0061\u0070\u0070\u006c\u0069\u0063\u0061t\u0069\u006f\u006e\u002f\u0076\u006e\u0064\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002d\u006ff\u0066\u0069\u0063\u0065\u0064\u006f\u0063\u0075\u006de\u006e\u0074\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u006d\u006c\u002e\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e\u002e\u006d\u0061\u0069\u006e\u002b\u0078\u006d\u006c");};_ddaf :=_ddg .DocTypePresentation ;_dgbg :=_fe .NewWriter (_aac );defer _dgbg .Close ();if _ccb :=_d .MarshalXML (_dgbg ,_ddg .BaseRelsFilename ,_acgd .Rels .X ());_ccb !=nil {return _ccb ;};if _afdg :=_d .MarshalXMLByType (_dgbg ,_ddaf ,_ddg .ExtendedPropertiesType ,_acgd .AppProperties .X ());_afdg !=nil {return _afdg ;};if _gcaf :=_d .MarshalXMLByType (_dgbg ,_ddaf ,_ddg .CorePropertiesType ,_acgd .CoreProperties .X ());_gcaf !=nil {return _gcaf ;};if _geec :=_d .MarshalXMLByType (_dgbg ,_ddaf ,_ddg .PresentationPropertiesType ,_acgd ._ffg .X ());_geec !=nil {return _geec ;};if _bgfc :=_d .MarshalXMLByType (_dgbg ,_ddaf ,_ddg .ViewPropertiesType ,_acgd ._adc .X ());_bgfc !=nil {return _bgfc ;};if _gcbb :=_d .MarshalXMLByType (_dgbg ,_ddaf ,_ddg .TableStylesType ,_acgd ._ffaf .X ());_gcbb !=nil {return _gcbb ;};if _acgd .CustomProperties .X ()!=nil {if _gdge :=_d .MarshalXMLByType (_dgbg ,_ddaf ,_ddg .CustomPropertiesType ,_acgd .CustomProperties .X ());_gdge !=nil {return _gdge ;};};if _acgd .Thumbnail !=nil {_eff ,_acd :=_dgbg .Create ("\u0064\u006f\u0063Pr\u006f\u0070\u0073\u002f\u0074\u0068\u0075\u006d\u0062\u006e\u0061\u0069\u006c\u002e\u006a\u0070\u0065\u0067");if _acd !=nil {return _acd ;};if _bfb :=_dg .Encode (_eff ,_acgd .Thumbnail ,nil );_bfb !=nil {return _bfb ;};};_cef :=_ddg .AbsoluteFilename (_ddaf ,_ddg .OfficeDocumentType ,0);if _gff :=_d .MarshalXML (_dgbg ,_cef ,_acgd ._acc );_gff !=nil {return _gff ;};if _ccgc :=_d .MarshalXML (_dgbg ,_d .RelationsPathFor (_cef ),_acgd ._bba .X ());_ccgc !=nil {return _ccgc ;};for _dac ,_abf :=range _acgd ._gca {_dba :=_ddg .AbsoluteFilename (_ddg .DocTypePresentation ,_ddg .SlideType ,_dac +1);_d .MarshalXML (_dgbg ,_dba ,_abf );if !_acgd ._dbef [_dac ].IsEmpty (){_aeb :=_d .RelationsPathFor (_dba );_d .MarshalXML (_dgbg ,_aeb ,_acgd ._dbef [_dac ].X ());};};for _fdbc ,_ccfe :=range _acgd ._bde {_affb :=_ddg .AbsoluteFilename (_ddg .DocTypePresentation ,_ddg .SlideMasterType ,_fdbc +1);_d .MarshalXML (_dgbg ,_affb ,_ccfe );if !_acgd ._ccff [_fdbc ].IsEmpty (){_gcag :=_d .RelationsPathFor (_affb );_d .MarshalXML (_dgbg ,_gcag ,_acgd ._ccff [_fdbc ].X ());};};for _cfad ,_gae :=range _acgd ._aagc {_cgf :=_ddg .AbsoluteFilename (_ddg .DocTypePresentation ,_ddg .SlideLayoutType ,_cfad +1);_d .MarshalXML (_dgbg ,_cgf ,_gae );if !_acgd ._aea [_cfad ].IsEmpty (){_egeg :=_d .RelationsPathFor (_cgf );_d .MarshalXML (_dgbg ,_egeg ,_acgd ._aea [_cfad ].X ());};};for _bdddg ,_dcfab :=range _acgd ._cfd {_cee :=_ddg .AbsoluteFilename (_ddg .DocTypePresentation ,_ddg .ThemeType ,_bdddg +1);_d .MarshalXML (_dgbg ,_cee ,_dcfab );if !_acgd ._eede [_bdddg ].IsEmpty (){_egg :=_d .RelationsPathFor (_cee );_d .MarshalXML (_dgbg ,_egg ,_acgd ._eede [_bdddg ].X ());};};for _eab ,_geeg :=range _acgd ._dbc {_gdcg :=_ddg .AbsoluteFilename (_ddaf ,_ddg .ChartType ,_eab +1);_d .MarshalXML (_dgbg ,_gdcg ,_geeg );};for _aga ,_fagd :=range _acgd ._fdce {_efc :=_ddg .AbsoluteFilename (_ddaf ,_ddg .HandoutMasterType ,_aga +1);_d .MarshalXML (_dgbg ,_efc ,_fagd );};for _egda ,_cgfa :=range _acgd ._dcc {_cbe :=_ddg .AbsoluteFilename (_ddaf ,_ddg .NotesMasterType ,_egda +1);_d .MarshalXML (_dgbg ,_cbe ,_cgfa );};for _bddda ,_agg :=range _acgd ._da {_cgb :=_ddg .AbsoluteFilename (_ddaf ,_ddg .CustomXMLType ,_bddda +1);_d .MarshalXML (_dgbg ,_cgb ,_agg );};for _cda ,_acce :=range _acgd .Images {if _eecf :=_gcb .AddImageToZip (_dgbg ,_acce ,_cda +1,_ddg .DocTypePresentation );_eecf !=nil {return _eecf ;};};_acgd .ContentTypes .EnsureDefault ("\u0070\u006e\u0067","\u0069m\u0061\u0067\u0065\u002f\u0070\u006eg");_acgd .ContentTypes .EnsureDefault ("\u006a\u0070\u0065\u0067","\u0069\u006d\u0061\u0067\u0065\u002f\u006a\u0070\u0065\u0067");_acgd .ContentTypes .EnsureDefault ("\u006a\u0070\u0067","\u0069\u006d\u0061\u0067\u0065\u002f\u006a\u0070\u0065\u0067");_acgd .ContentTypes .EnsureDefault ("\u0077\u006d\u0066","i\u006d\u0061\u0067\u0065\u002f\u0078\u002d\u0077\u006d\u0066");if _faed :=_d .MarshalXML (_dgbg ,_ddg .ContentTypesFilename ,_acgd .ContentTypes .X ());_faed !=nil {return _faed ;};if _agc :=_acgd .WriteExtraFiles (_dgbg );_agc !=nil {return _agc ;};return nil ;};
|
|
|
|
// SaveToFile writes the Presentation out to a file.
|
|
func (_cdc *Presentation )SaveToFile (path string )error {return _cdc .saveToFile (path ,false )};
|
|
|
|
// AddImage adds an image to the document package, returning a reference that
|
|
// can be used to add the image to a run and place it in the document contents.
|
|
func (_eeaf *Presentation )AddImage (i _gcb .Image )(_gcb .ImageRef ,error ){_adbc :=_gcb .MakeImageRef (i ,&_eeaf .DocBase ,_eeaf ._bba );if i .Data ==nil &&i .Path ==""{return _adbc ,_db .New ("\u0069\u006d\u0061\u0067\u0065\u0020\u006d\u0075\u0073\u0074 \u0068\u0061\u0076\u0065\u0020\u0064\u0061t\u0061\u0020\u006f\u0072\u0020\u0061\u0020\u0070\u0061\u0074\u0068");};if i .Format ==""{return _adbc ,_db .New ("\u0069\u006d\u0061\u0067\u0065\u0020\u006d\u0075\u0073\u0074 \u0068\u0061\u0076\u0065\u0020\u0061\u0020v\u0061\u006c\u0069\u0064\u0020\u0066\u006f\u0072\u006d\u0061\u0074");};if i .Size .X ==0||i .Size .Y ==0{return _adbc ,_db .New ("\u0069\u006d\u0061\u0067e\u0020\u006d\u0075\u0073\u0074\u0020\u0068\u0061\u0076\u0065 \u0061 \u0076\u0061\u006c\u0069\u0064\u0020\u0073i\u007a\u0065");};if i .Path !=""{_dge :=_eb .Add (i .Path );if _dge !=nil {return _adbc ,_dge ;};};_eeaf .Images =append (_eeaf .Images ,_adbc );_eeaf .ContentTypes .EnsureDefault ("\u0070\u006e\u0067","\u0069m\u0061\u0067\u0065\u002f\u0070\u006eg");_eeaf .ContentTypes .EnsureDefault ("\u006a\u0070\u0065\u0067","\u0069\u006d\u0061\u0067\u0065\u002f\u006a\u0070\u0065\u0067");_eeaf .ContentTypes .EnsureDefault ("\u006a\u0070\u0067","\u0069\u006d\u0061\u0067\u0065\u002f\u006a\u0070\u0065\u0067");_eeaf .ContentTypes .EnsureDefault ("\u0077\u006d\u0066","i\u006d\u0061\u0067\u0065\u002f\u0078\u002d\u0077\u006d\u0066");_eeaf .ContentTypes .EnsureDefault (i .Format ,"\u0069\u006d\u0061\u0067\u0065\u002f"+i .Format );return _adbc ,nil ;};
|
|
|
|
// X returns the inner wrapped XML type.
|
|
func (_ebd *Presentation )X ()*_cc .Presentation {return _ebd ._acc };func (_acca *Presentation )saveToFile (_adb string ,_acga bool )error {_eebg ,_def :=_ec .Create (_adb );if _def !=nil {return _def ;};defer _eebg .Close ();return _acca .save (_eebg ,_acga );};const _cfac float64 =500000;
|
|
|
|
// SlideLayouts returns a slice of all layouts in SlideMaster.
|
|
func (_ggb SlideMaster )SlideLayouts ()[]SlideLayout {_dbac :=map[string ]int {};_bff :=[]SlideLayout {};for _ ,_gada :=range _ggb ._gabbb .Relationships (){_dece :=_c .Replace (_gada .Target (),".\u002e\u002f\u0073\u006c\u0069\u0064e\u004c\u0061\u0079\u006f\u0075\u0074\u0073\u002f\u0073l\u0069\u0064\u0065L\u0061y\u006f\u0075\u0074","",-1);_dece =_c .Replace (_dece ,"\u002e\u0078\u006d\u006c","",-1);if _fcg ,_dfg :=_e .ParseInt (_dece ,10,32);_dfg ==nil {_dbac [_gada .ID ()]=int (_fcg );};};for _ ,_adee :=range _ggb ._dfbe .SldLayoutIdLst .SldLayoutId {if _ded ,_cfafa :=_dbac [_adee .RIdAttr ];_cfafa {_cgad :=_ggb ._daea ._aagc [_ded -1];_bff =append (_bff ,SlideLayout {_cgad });};};return _bff ;};
|
|
|
|
// AddDefaultSlideWithLayout tries to replicate what PowerPoint does when
|
|
// inserting a slide with a new style by clearing placeholder content and removing
|
|
// some placeholders. Use AddSlideWithLayout if you need more control.
|
|
func (_ffgc *Presentation )AddDefaultSlideWithLayout (l SlideLayout )(Slide ,error ){_gbe ,_dbeg :=_ffgc .AddSlideWithLayout (l );for _ ,_gbd :=range _gbe .PlaceHolders (){_gbd .Clear ();switch _gbd .Type (){case _cc .ST_PlaceholderTypeFtr ,_cc .ST_PlaceholderTypeDt ,_cc .ST_PlaceholderTypeSldNum :_gbd .Remove ();};};return _gbe ,_dbeg ;};
|
|
|
|
// Presentation returns a slide's presentation.
|
|
func (_cegd Slide )Presentation ()*Presentation {return _cegd ._ffef };
|
|
|
|
// GetSlideLayout returns a slide layout related to the slide.
|
|
func (_edgb *Slide )GetSlideLayout ()*_cc .SldLayout {for _gfag :=range _edgb ._ffef .Slides (){_fbc :=_edgb ._ffef ._dbef [_gfag ];for _ ,_dbb :=range _fbc .Relationships (){if _dbb .Type ()==_ddg .SlideLayoutType {if _ffdf ,_gcee :=_a .StringToNumbers (_dbb .Target ());_gcee {return _edgb ._ffef ._aagc [_ffdf -1];};return nil ;};};};return nil ;};
|
|
|
|
// Width returns slide screen size width in EMU units.
|
|
func (_cdf *SlideScreenSize )Width ()int32 {return _cdf [0]};
|
|
|
|
// Clear clears the placeholder contents and adds a single empty paragraph. The
|
|
// empty paragrah is required by PowerPoint or it will report the file as being
|
|
// invalid.
|
|
func (_cea PlaceHolder )Clear (){_cea .ClearAll ();_fcb :=_eg .NewCT_TextParagraph ();_cea ._edg .TxBody .P =[]*_eg .CT_TextParagraph {_fcb };_fcb .EndParaRPr =_eg .NewCT_TextCharacterProperties ();_fcb .EndParaRPr .LangAttr =_ddg .String ("\u0065\u006e\u002dU\u0053");};var (SlideScreenSize16x9 =SlideScreenSize {12192000,6858000};SlideScreenSize4x3 =SlideScreenSize {9144000,6858000};SlideScreenSizeA4 =SlideScreenSize {9906000,6858000};);
|
|
|
|
// NotesViewPr returns the NotesViewPr property.
|
|
func (_abe ViewProperties )NotesViewPr ()*_cc .CT_NotesViewProperties {return _abe ._fcca .NotesViewPr };
|
|
|
|
// NewPresentationProperties constructs a new PresentationProperties.
|
|
func NewPresentationProperties ()PresentationProperties {return PresentationProperties {_dfbf :_cc .NewPresentationPr ()};};
|
|
|
|
// TableInfo is used for keep information about a table, a row and a cell where the text is located.
|
|
type TableInfo struct{Table *_eg .CT_Table ;Row *_eg .CT_TableRow ;Cell *_eg .CT_TableCell ;RowIndex int ;ColIndex int ;};
|
|
|
|
// SlideViewPr returns the SlideViewPr property.
|
|
func (_cbdc ViewProperties )SlideViewPr ()*_cc .CT_SlideViewProperties {return _cbdc ._fcca .SlideViewPr };func (_gb *chart )RelId ()string {return _gb ._ba };
|
|
|
|
// SlideLayouts returns the slide layouts defined in the presentation.
|
|
func (_gac *Presentation )SlideLayouts ()[]SlideLayout {_bedg :=[]SlideLayout {};for _ ,_fge :=range _gac ._aagc {_bedg =append (_bedg ,SlideLayout {_fge });};return _bedg ;};
|
|
|
|
// Presentation is the a presentation base document.
|
|
type Presentation struct{_gcb .DocBase ;_acc *_cc .Presentation ;_bba _gcb .Relationships ;_gca []*_cc .Sld ;_dbef []_gcb .Relationships ;_bde []*_cc .SldMaster ;_ccff []_gcb .Relationships ;_aagc []*_cc .SldLayout ;_aea []_gcb .Relationships ;_cfd []*_eg .Theme ;_eede []_gcb .Relationships ;_ffaf _gcb .TableStyles ;_ffg PresentationProperties ;_adc ViewProperties ;_fdb []*_eg .CT_Hyperlink ;_dbc []*chart ;_fdce []*_cc .HandoutMaster ;_dcc []*_cc .NotesMaster ;_da []*_ddg .XSDAny ;_feg map[string ]string ;_adfc string ;};
|
|
|
|
// AddTextBox adds an empty textbox to a slide.
|
|
func (_fggb Slide )AddTextBox ()TextBox {_gcagf :=_cc .NewCT_GroupShapeChoice ();_fggb ._fcbb .CSld .SpTree .Choice =append (_fggb ._fcbb .CSld .SpTree .Choice ,_gcagf );_bdcf :=_cc .NewCT_Shape ();_gcagf .Sp =append (_gcagf .Sp ,_bdcf );_bdcf .SpPr =_eg .NewCT_ShapeProperties ();_bdcf .SpPr .Xfrm =_eg .NewCT_Transform2D ();_bdcf .SpPr .PrstGeom =_eg .NewCT_PresetGeometry2D ();_bdcf .SpPr .PrstGeom .PrstAttr =_eg .ST_ShapeTypeRect ;_bdcf .NvSpPr =_cc .NewCT_ShapeNonVisual ();_bdcf .NvSpPr .CNvSpPr =_eg .NewCT_NonVisualDrawingShapeProps ();_fcfd :=true ;_bdcf .NvSpPr .CNvSpPr .TxBoxAttr =&_fcfd ;_bdcf .TxBody =_eg .NewCT_TextBody ();_bdcf .TxBody .BodyPr =_eg .NewCT_TextBodyProperties ();_bdcf .TxBody .BodyPr .WrapAttr =_eg .ST_TextWrappingTypeSquare ;_bdcf .TxBody .BodyPr .SpAutoFit =_eg .NewCT_TextShapeAutofit ();_ffged :=TextBox {_bdcf };_ffged .Properties ().SetWidth (3*_bf .Inch );_ffged .Properties ().SetHeight (1*_bf .Inch );_ffged .Properties ().SetPosition (0,0);return _ffged ;};
|
|
|
|
// Text returns text from a presentation as one string separated with line breaks.
|
|
func (_acg *PresentationText )Text ()string {_feag :=_cd .NewBuffer ([]byte {});for _ ,_cadf :=range _acg .Slides {_feag .WriteString (_cadf .Text ());};return _feag .String ();};
|
|
|
|
// AddImage adds an image textbox to a slide.
|
|
func (_ace Slide )AddImage (img _gcb .ImageRef )Image {_aca :=_cc .NewCT_GroupShapeChoice ();_ace ._fcbb .CSld .SpTree .Choice =append (_ace ._fcbb .CSld .SpTree .Choice ,_aca );_adab :=_cc .NewCT_Picture ();_aca .Pic =append (_aca .Pic ,_adab );_adab .NvPicPr .CNvPicPr =_eg .NewCT_NonVisualPictureProperties ();_adab .NvPicPr .CNvPicPr .PicLocks =_eg .NewCT_PictureLocking ();_adab .NvPicPr .CNvPicPr .PicLocks .NoChangeAspectAttr =_ddg .Bool (true );_adab .BlipFill =_eg .NewCT_BlipFillProperties ();_adab .BlipFill .Blip =_eg .NewCT_Blip ();_aecf :=_ace .AddImageToRels (img );_adab .BlipFill .Blip .EmbedAttr =_ddg .String (_aecf );_adab .BlipFill .Stretch =_eg .NewCT_StretchInfoProperties ();_adab .BlipFill .Stretch .FillRect =_eg .NewCT_RelativeRect ();_adab .SpPr =_eg .NewCT_ShapeProperties ();_adab .SpPr .PrstGeom =_eg .NewCT_PresetGeometry2D ();_adab .SpPr .PrstGeom .PrstAttr =_eg .ST_ShapeTypeRect ;_aba :=Image {_adab };_ece :=img .Size ();_aba .Properties ().SetWidth (_bf .Distance (_ece .X )*_bf .Pixel72 );_aba .Properties ().SetHeight (_bf .Distance (_ece .Y )*_bf .Pixel72 );_aba .Properties ().SetPosition (0,0);return _aba ;};
|
|
|
|
// GetColorBySchemeColor returns *dml.CT_Color mapped to scheme colors like dk1, lt1 etc. depending on what theme is used in the presentation.
|
|
func (_eceb *Slide )GetColorBySchemeColor (schClr _eg .ST_SchemeColorVal )*_eg .CT_Color {_eceb .ensureClrMap ();_ddfd :=_eceb ._abde ;if _ddfd ==nil {return nil ;};var _afa _eg .ST_ColorSchemeIndex ;switch schClr .String (){case "\u0062\u0067\u0031":_afa =_ddfd .Bg1Attr ;case "\u0062\u0067\u0032":_afa =_ddfd .Bg2Attr ;case "\u0074\u0078\u0031":_afa =_ddfd .Tx1Attr ;case "\u0074\u0078\u0032":_afa =_ddfd .Tx2Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0031":_afa =_ddfd .Accent1Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0032":_afa =_ddfd .Accent2Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0033":_afa =_ddfd .Accent3Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0034":_afa =_ddfd .Accent4Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0035":_afa =_ddfd .Accent5Attr ;case "\u0061c\u0063\u0065\u006e\u0074\u0036":_afa =_ddfd .Accent6Attr ;case "\u0068\u006c\u0069n\u006b":_afa =_ddfd .HlinkAttr ;case "\u0066\u006f\u006c\u0048\u006c\u0069\u006e\u006b":_afa =_ddfd .FolHlinkAttr ;case "\u0064\u006b\u0031":_afa =_eg .ST_ColorSchemeIndexDk1 ;case "\u0064\u006b\u0032":_afa =_eg .ST_ColorSchemeIndexDk2 ;case "\u006c\u0074\u0031":_afa =_eg .ST_ColorSchemeIndexLt1 ;case "\u006c\u0074\u0032":_afa =_eg .ST_ColorSchemeIndexLt2 ;default:_afa =_eg .ST_ColorSchemeIndexUnset ;};_gbb :=_eceb ._ffef ._cfd [0];_bbeb :=_gbb .ThemeElements ;if _bbeb ==nil {return nil ;};var _addf *_eg .CT_Color ;_dade :=_bbeb .ClrScheme ;switch _afa .String (){case "\u0064\u006b\u0031":_addf =_dade .Dk1 ;case "\u0064\u006b\u0032":_addf =_dade .Dk2 ;case "\u006c\u0074\u0031":_addf =_dade .Lt1 ;case "\u006c\u0074\u0032":_addf =_dade .Lt2 ;case "\u0061c\u0063\u0065\u006e\u0074\u0031":_addf =_dade .Accent1 ;case "\u0061c\u0063\u0065\u006e\u0074\u0032":_addf =_dade .Accent2 ;case "\u0061c\u0063\u0065\u006e\u0074\u0033":_addf =_dade .Accent3 ;case "\u0061c\u0063\u0065\u006e\u0074\u0034":_addf =_dade .Accent4 ;case "\u0061c\u0063\u0065\u006e\u0074\u0035":_addf =_dade .Accent5 ;case "\u0061c\u0063\u0065\u006e\u0074\u0036":_addf =_dade .Accent6 ;case "\u0068\u006c\u0069n\u006b":_addf =_dade .Hlink ;case "\u0066\u006f\u006c\u0048\u006c\u0069\u006e\u006b":_addf =_dade .FolHlink ;default:return nil ;};return _addf ;};
|
|
|
|
// Read reads a document from an io.Reader.
|
|
func Read (r _gc .ReaderAt ,size int64 )(*Presentation ,error ){const _fcab ="\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069\u006f\u006e:\u0052\u0065\u0061\u0064";if !_fd .GetLicenseKey ().IsLicensed ()&&!_bfc {_fdc .Println ("\u0055\u006e\u006ci\u0063\u0065\u006e\u0073e\u0064\u0020\u0076\u0065\u0072\u0073\u0069o\u006e\u0020\u006f\u0066\u0020\u0055\u006e\u0069\u004f\u0066\u0066\u0069\u0063\u0065");_fdc .Println ("\u002d\u0020\u0047e\u0074\u0020\u0061\u0020\u0074\u0072\u0069\u0061\u006c\u0020\u006c\u0069\u0063\u0065\u006e\u0073\u0065\u0020\u006f\u006e\u0020\u0068\u0074\u0074\u0070\u0073\u003a\u002f\u002fu\u006e\u0069\u0064\u006f\u0063\u002e\u0069\u006f");return nil ,_db .New ("\u0075\u006e\u0069\u006f\u0066\u0066\u0069\u0063\u0065\u0020\u006ci\u0063\u0065\u006e\u0073\u0065\u0020\u0072\u0065\u0071\u0075i\u0072\u0065\u0064");};_eggd :=_dda ();_ebec ,_fdgd :=_fd .GenRefId ("\u0070\u0072");if _fdgd !=nil {_bb .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_fdgd );return nil ,_fdgd ;};_eggd ._adfc =_ebec ;if _acf :=_fd .Track (_eggd ._adfc ,_fcab );_acf !=nil {_bb .Log .Error ("\u0045R\u0052\u004f\u0052\u003a\u0020\u0025v",_acf );return nil ,_acf ;};_cgcc ,_fdgd :=_eb .TempDir ("\u0075\u006e\u0069\u006f\u0066\u0066\u0069\u0063\u0065-\u0070\u0070\u0074\u0078");if _fdgd !=nil {return nil ,_fdgd ;};_eggd .TmpPath =_cgcc ;_efgf ,_fdgd :=_fe .NewReader (r ,size );if _fdgd !=nil {return nil ,_fdc .Errorf ("\u0070a\u0072s\u0069\u006e\u0067\u0020\u007a\u0069\u0070\u003a\u0020\u0025\u0073",_fdgd );};_aegb :=[]*_fe .File {};_aegb =append (_aegb ,_efgf .File ...);_ffge :=false ;for _ ,_fab :=range _aegb {if _fab .FileHeader .Name =="\u0064\u006f\u0063\u0050ro\u0070\u0073\u002f\u0063\u0075\u0073\u0074\u006f\u006d\u002e\u0078\u006d\u006c"{_ffge =true ;break ;};};if _ffge {_eggd .CreateCustomProperties ();};_eabe :=_d .DecodeMap {};_eabe .SetOnNewRelationshipFunc (_eggd .onNewRelationship );_eabe .AddTarget (_ddg .ContentTypesFilename ,_eggd .ContentTypes .X (),"",0);_eabe .AddTarget (_ddg .BaseRelsFilename ,_eggd .Rels .X (),"",0);if _cbd :=_eabe .Decode (_aegb );_cbd !=nil {return nil ,_cbd ;};for _ ,_ggc :=range _aegb {if _ggc ==nil {continue ;};if _ead :=_eggd .AddExtraFileFromZip (_ggc );_ead !=nil {return nil ,_ead ;};};if _ffge {_cbdb :=false ;for _ ,_gdcc :=range _eggd .Rels .X ().Relationship {if _gdcc .TargetAttr =="\u0064\u006f\u0063\u0050ro\u0070\u0073\u002f\u0063\u0075\u0073\u0074\u006f\u006d\u002e\u0078\u006d\u006c"{_cbdb =true ;break ;};};if !_cbdb {_eggd .AddCustomRelationships ();};};return _eggd ,nil ;};
|
|
|
|
// SetHeight sets height of slide screen size with given value in EMU units.
|
|
func (_befa *SlideScreenSize )SetHeight (val int32 ){_befa [1]=val };
|
|
|
|
// NewViewProperties constructs a new ViewProperties.
|
|
func NewViewProperties ()ViewProperties {return ViewProperties {_fcca :_cc .NewViewPr ()}};
|
|
|
|
// PrnPr returns the PrnPr property.
|
|
func (_bddd PresentationProperties )PrnPr ()*_cc .CT_PrintProperties {return _bddd ._dfbf .PrnPr };
|
|
|
|
// GetTextBoxes returns a list of all text boxes from a slide.
|
|
func (_dccad Slide )GetTextBoxes ()[]*TextBox {_fcfb :=[]*TextBox {};_agcc :=_dccad ._fcbb .CSld .SpTree .Choice ;for _ ,_fcfc :=range _agcc {for _ ,_dab :=range _fcfc .Sp {if _dab .NvSpPr .CNvSpPr .TxBoxAttr !=nil &&*_dab .NvSpPr .CNvSpPr .TxBoxAttr {_fcfb =append (_fcfb ,&TextBox {_dab });};};};return _fcfb ;};
|
|
|
|
// Slide represents a slide of a presentation.
|
|
type Slide struct{_faec *_cc .CT_SlideIdListEntry ;_fcbb *_cc .Sld ;_ffef *Presentation ;_abde *_eg .CT_ColorMapping ;};
|
|
|
|
// ExtractText returns text from a presentation as a PresentationText object.
|
|
func (_cb *Presentation )ExtractText ()*PresentationText {_bg :=[]*SlideText {};for _ ,_fc :=range _cb .Slides (){_gdb :=_fc .ExtractText ();if _gdb !=nil {_bg =append (_bg ,_gdb );};};return &PresentationText {Slides :_bg };};
|
|
|
|
// GetChartSpaceByRelId returns a *crt.ChartSpace with the associated relation ID in the
|
|
// slide.
|
|
func (_eaf *Slide )GetChartSpaceByRelId (relId string )*_g .ChartSpace {_daf :=_eaf .getSlideRels ();if (_daf ==_gcb .Relationships {}){return nil ;};_bdee :=_daf .GetTargetByRelId (relId );for _ ,_bfca :=range _eaf ._ffef ._dbc {if _bdee ==_bfca .Target (){return _bfca ._fa ;};};return nil ;};
|
|
|
|
// X returns the inner wrapped XML type.
|
|
func (_dgbf ViewProperties )X ()*_cc .ViewPr {return _dgbf ._fcca };
|
|
|
|
// X returns the inner wrapped XML type.
|
|
func (_ffb Slide )X ()*_cc .Sld {return _ffb ._fcbb };
|
|
|
|
// Slides returns the slides in the presentation.
|
|
func (_cegc *Presentation )Slides ()[]Slide {_gcagb :=[]Slide {};for _babg ,_cdga :=range _cegc ._gca {_gcagb =append (_gcagb ,Slide {_cegc ._acc .SldIdLst .SldId [_babg ],_cdga ,_cegc ,nil });};return _gcagb ;};
|
|
|
|
// AddParagraph adds a paragraph to the text box
|
|
func (_aafb TextBox )AddParagraph ()_dc .Paragraph {_fggf :=_eg .NewCT_TextParagraph ();_aafb ._bagb .TxBody .P =append (_aafb ._bagb .TxBody .P ,_fggf );return _dc .MakeParagraph (_fggf );};
|
|
|
|
// SetSize sets the slide size, take argument of SlideScreenSize.
|
|
func (_gabb *SlideSize )SetSize (sz SlideScreenSize ){_gabb ._fadg .CxAttr =sz [0];_gabb ._fadg .CyAttr =sz [1];};
|
|
|
|
// SlideMasters returns the slide masters defined in the presentation.
|
|
func (_dbd *Presentation )SlideMasters ()[]SlideMaster {_bab :=[]SlideMaster {};for _cdde ,_fee :=range _dbd ._bde {_bab =append (_bab ,SlideMaster {_dbd ,_dbd ._ccff [_cdde ],_fee });};return _bab ;};
|
|
|
|
// SetTextAnchor controls the text anchoring
|
|
func (_dgbd TextBox )SetTextAnchor (a _eg .ST_TextAnchoringType ){_dgbd ._bagb .TxBody .BodyPr =_eg .NewCT_TextBodyProperties ();_dgbd ._bagb .TxBody .BodyPr .AnchorAttr =a ;};
|
|
|
|
// AddSlideWithLayout adds a new slide with content copied from a layout. Normally you should
|
|
// use AddDefaultSlideWithLayout as it will do some post processing similar to PowerPoint to
|
|
// clear place holder text, etc.
|
|
func (_cfag *Presentation )AddSlideWithLayout (l SlideLayout )(Slide ,error ){_fgce :=_cc .NewCT_SlideIdListEntry ();_fgce .IdAttr =256;for _ ,_bcfd :=range _cfag ._acc .SldIdLst .SldId {if _bcfd .IdAttr >=_fgce .IdAttr {_fgce .IdAttr =_bcfd .IdAttr +1;};};_cfag ._acc .SldIdLst .SldId =append (_cfag ._acc .SldIdLst .SldId ,_fgce );_geg :=_cc .NewSld ();_ecd :=_cd .Buffer {};_fefa :=_dd .NewEncoder (&_ecd );_dgd :=_dd .StartElement {Name :_dd .Name {Local :"\u0073\u006c\u0069d\u0065"}};_dgd .Attr =append (_dgd .Attr ,_dd .Attr {Name :_dd .Name {Local :"\u0078\u006d\u006cn\u0073"},Value :"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002eo\u0072\u0067\u002f\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069o\u006e\u006d\u006c\u002f\u0032\u00300\u0036\u002f\u006da\u0069\u006e"});_dgd .Attr =append (_dgd .Attr ,_dd .Attr {Name :_dd .Name {Local :"\u0078m\u006c\u006e\u0073\u003a\u0061"},Value :"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065m\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006cf\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u0064\u0072\u0061\u0077\u0069\u006e\u0067m\u006c\u002f\u0032\u0030\u0030\u0036\u002f\u006d\u0061\u0069\u006e"});_dgd .Attr =append (_dgd .Attr ,_dd .Attr {Name :_dd .Name {Local :"\u0078m\u006c\u006e\u0073\u003a\u0070"},Value :"\u0068\u0074\u0074\u0070\u003a\u002f\u002f\u0073\u0063\u0068\u0065\u006d\u0061\u0073\u002e\u006f\u0070\u0065\u006e\u0078m\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002eo\u0072\u0067\u002f\u0070\u0072\u0065\u0073\u0065\u006e\u0074\u0061\u0074\u0069o\u006e\u006d\u006c\u002f\u0032\u00300\u0036\u002f\u006da\u0069\u006e"});_dgd .Attr =append (_dgd .Attr ,_dd .Attr {Name :_dd .Name {Local :"\u0078m\u006c\u006e\u0073\u003a\u0072"},Value :"\u0068\u0074\u0074\u0070\u003a\u002f/\u0073\u0063\u0068\u0065\u006da\u0073\u002e\u006f\u0070\u0065\u006ex\u006d\u006c\u0066\u006f\u0072m\u0061\u0074\u0073\u002e\u006f\u0072\u0067\u002f\u006f\u0066\u0066\u0069c\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002fr\u0065\u006c\u0061\u0074\u0069\u006f\u006e\u0073h\u0069\u0070\u0073"});_dgd .Attr =append (_dgd .Attr ,_dd .Attr {Name :_dd .Name {Local :"\u0078\u006d\u006c\u006e\u0073\u003a\u0073\u0068"},Value :"\u0068\u0074\u0074\u0070\u003a/\u002f\u0073\u0063\u0068\u0065m\u0061s\u002e\u006f\u0070\u0065\u006e\u0078\u006d\u006c\u0066\u006f\u0072\u006d\u0061\u0074\u0073\u002e\u006f\u0072\u0067/\u006f\u0066\u0066\u0069\u0063\u0065\u0044\u006f\u0063\u0075\u006d\u0065\u006e\u0074\u002f\u0032\u0030\u0030\u0036\u002f\u0073\u0068\u0061\u0072e\u0064\u0054\u0079\u0070\u0065\u0073"});_dgd .Attr =append (_dgd .Attr ,_dd .Attr {Name :_dd .Name {Local :"\u0078m\u006c\u006e\u0073\u003a\u0078\u006dl"},Value :"\u0068\u0074tp\u003a\u002f\u002fw\u0077\u0077\u002e\u00773.o\u0072g/\u0058\u004d\u004c\u002f\u0031\u0039\u00398/\u006e\u0061\u006d\u0065\u0073\u0070\u0061c\u0065"});if _bfee :=l ._bcg .CSld .MarshalXML (_fefa ,_dgd );_bfee !=nil {return Slide {},_bfee ;};_fefa .Flush ();_bdg :=_dd .NewDecoder (&_ecd );_geg .CSld =_cc .NewCT_CommonSlideData ();if _cec :=_bdg .Decode (_geg .CSld );_cec !=nil {return Slide {},_cec ;};_geg .CSld .NameAttr =nil ;_geg .CSld .SpTree .Choice =_fbbg (_geg .CSld .SpTree .Choice );_cfag ._gca =append (_cfag ._gca ,_geg );_adce :=_cfag ._bba .AddAutoRelationship (_ddg .DocTypePresentation ,_ddg .OfficeDocumentType ,len (_cfag ._gca ),_ddg .SlideType );_fgce .RIdAttr =_adce .ID ();_fga :=_ddg .AbsoluteFilename (_ddg .DocTypePresentation ,_ddg .SlideType ,len (_cfag ._gca ));_cfag .ContentTypes .AddOverride (_fga ,_ddg .SlideContentType );_aege :=_gcb .NewRelationships ();_cfag ._dbef =append (_cfag ._dbef ,_aege );_ebab :=len (_cfag ._dbef )-1;for _fedf ,_ddbg :=range _cfag ._aagc {if _ddbg ==l .X (){_gbc :=_cfag ._aea [_fedf ];for _ ,_bdbe :=range _gbc .X ().Relationship {if _bdbe .TypeAttr !=_ddg .SlideMasterType {_cfag ._dbef [_ebab ].X ().Relationship =append (_cfag ._dbef [_ebab ].X ().Relationship ,_bdbe );};};_aege .AddAutoRelationship (_ddg .DocTypePresentation ,_ddg .SlideType ,_fedf +1,_ddg .SlideLayoutType );};};_beea :=Slide {_fgce ,_geg ,_cfag ,nil };return _beea ,nil ;};
|
|
|
|
// X returns TextBox's underlying *pml.CT_Shape.
|
|
func (_ebdg TextBox )X ()*_cc .CT_Shape {return _ebdg ._bagb };
|
|
|
|
// NormalViewPr returns the NormalViewPr property.
|
|
func (_bbcc ViewProperties )NormalViewPr ()*_cc .CT_NormalViewProperties {return _bbcc ._fcca .NormalViewPr ;};
|
|
|
|
// Less is for implementing sorting of two locations. Symbols share the same location if they are in the same paragraph or table. One location is 'less' than another first by y coordinate, if y coordinates are equal or differ by less than yEpsilon, then x coordinates are compared, then if they are also equal, indexes of locations in the table are compared, then positions of locations in a paragraph.
|
|
func (_bbb sort2d )Less (i ,j int )bool {_afc ,_ed :=_bbb [i ],_bbb [j ];_cga ,_dff :=_afc ._cg ,_ed ._cg ;_ddc ,_fda :=len (_cga )-1,len (_dff )-1;_ccc ,_fb :=0,0;for {_fedb ,_ccf ,_ddee ,_eea ,_dfe ,_cebd ,_bed ,_fafb :=_cga [_ccc ]._fed ,_dff [_fb ]._fed ,_cga [_ccc ]._bd ,_dff [_fb ]._bd ,_cga [_ccc ]._dbg ,_dff [_fb ]._dbg ,_cga [_ccc ]._fdg ,_dff [_fb ]._fdg ;if _fedb ==_ccf ||((_ef .Abs (float64 (_fedb )-float64 (_ccf ))< _cfac )&&((_fedb >=_ccf &&_fedb <=_eea )||(_ccf >=_fedb &&_ccf <=_ddee ))&&(_bed < _cebd ||_dfe > _fafb )){if _dfe ==_cebd {if _ccc < _ddc &&_fb < _fda {_ccc ++;_fb ++;continue ;};if _ccc >=_ddc &&_fb >=_fda {break ;};return _ccc >=_ddc ;}else {return _dfe < _cebd ;};}else {return _fedb < _ccf ;};};_fff ,_ab ,_aff ,_eee :=_afc ._bc ,_ed ._bc ,_afc ._fef ,_ed ._fef ;if _fff ==_ab {return _aff <=_eee ;};return _fff < _ab ;};
|
|
|
|
// NewSlideScreenSize returns slide screen size with default MS PowerPoint slide screen size 16x9.
|
|
func NewSlideScreenSize ()SlideScreenSize {return NewSlideScreenSizeWithValue (SlideScreenSize16x9 [0],SlideScreenSize16x9 [1]);};
|
|
|
|
// ClrMru returns the ClrMru property.
|
|
func (_cgaf PresentationProperties )ClrMru ()*_eg .CT_ColorMRU {return _cgaf ._dfbf .ClrMru };func (_bcea TextBox )getOff ()*_eg .CT_Point2D {if _bcea ._bagb .SpPr ==nil {_bcea ._bagb .SpPr =_eg .NewCT_ShapeProperties ();};if _bcea ._bagb .SpPr .Xfrm ==nil {_bcea ._bagb .SpPr .Xfrm =_eg .NewCT_Transform2D ();};if _bcea ._bagb .SpPr .Xfrm .Off ==nil {_bcea ._bagb .SpPr .Xfrm .Off =_eg .NewCT_Point2D ();};return _bcea ._bagb .SpPr .Xfrm .Off ;};
|
|
|
|
// X returns the inner wrapped XML type.
|
|
func (_aaf *SlideSize )X ()*_cc .CT_SlideSize {return _aaf ._fadg };
|
|
|
|
// X returns the inner wrapped XML type.
|
|
func (_ege PresentationProperties )X ()*_cc .PresentationPr {return _ege ._dfbf };
|
|
|
|
// Properties returns the properties of the TextBox.
|
|
func (_eaa TextBox )Properties ()_dc .ShapeProperties {if _eaa ._bagb .SpPr ==nil {_eaa ._bagb .SpPr =_eg .NewCT_ShapeProperties ();};return _dc .MakeShapeProperties (_eaa ._bagb .SpPr );};
|
|
|
|
// Save writes the presentation out to a writer in the Zip package format
|
|
func (_fae *Presentation )Save (w _gc .Writer )error {return _fae .save (w ,false )};
|
|
|
|
// PresentationText is an array of extracted text items which has some methods for representing extracted text.
|
|
type PresentationText struct{Slides []*SlideText ;};
|
|
|
|
// GetPlaceholderByIndex returns a placeholder given its index. If there are multiplace
|
|
// placeholders of the same index, this method returns the first one. You must use the
|
|
// PlaceHolders() method to access the others.
|
|
func (_bbea Slide )GetPlaceholderByIndex (idx uint32 )(PlaceHolder ,error ){for _ ,_cfab :=range _bbea ._fcbb .CSld .SpTree .Choice {for _ ,_dcac :=range _cfab .Sp {if _dcac .NvSpPr !=nil &&_dcac .NvSpPr .NvPr !=nil &&_dcac .NvSpPr .NvPr .Ph !=nil {if (idx ==0&&_dcac .NvSpPr .NvPr .Ph .IdxAttr ==nil )||(_dcac .NvSpPr .NvPr .Ph .IdxAttr !=nil &&*_dcac .NvSpPr .NvPr .Ph .IdxAttr ==idx ){return PlaceHolder {_dcac ,_bbea ._fcbb },nil ;};};};};return PlaceHolder {},_db .New ("\u0075\u006e\u0061\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0066i\u006e\u0064\u0020\u0070\u006c\u0061\u0063\u0065\u0068\u006fl\u0064\u0065\u0072");};var _bfc =false ;
|
|
|
|
// SlideLayout is a layout from which slides can be created.
|
|
type SlideLayout struct{_bcg *_cc .SldLayout };
|
|
|
|
// Name returns the name of the slide layout.
|
|
func (_ebcg SlideLayout )Name ()string {if _ebcg ._bcg .CSld !=nil &&_ebcg ._bcg .CSld .NameAttr !=nil {return *_ebcg ._bcg .CSld .NameAttr ;};return "";};
|
|
|
|
// SetText sets the text of a placeholder for the initial paragraph. This is a
|
|
// shortcut method that is useful for things like titles which only contain a
|
|
// single paragraph.
|
|
func (_ddda PlaceHolder )SetText (text string ){_ddda .Clear ();_ecce :=_eg .NewEG_TextRun ();_ecce .R =_eg .NewCT_RegularTextRun ();_ecce .R .T =text ;if len (_ddda ._edg .TxBody .P )==0{_ddda ._edg .TxBody .P =append (_ddda ._edg .TxBody .P ,_eg .NewCT_TextParagraph ());};_ddda ._edg .TxBody .P [0].EG_TextRun =nil ;_ddda ._edg .TxBody .P [0].EG_TextRun =append (_ddda ._edg .TxBody .P [0].EG_TextRun ,_ecce );};
|
|
|
|
// ExtractText returns text from a slide as a SlideText object.
|
|
func (_cag *Slide )ExtractText ()*SlideText {_fdgb :=_efd (_cag ._ffef ,_cag ._fcbb .CSld .SpTree .Choice ,[]rectangle {},[]*TextItem {});_fg .Sort (sort2d (_fdgb ));return &SlideText {Items :_fdgb };};
|
|
|
|
// ShowPr returns the ShowPr property.
|
|
func (_dcfa PresentationProperties )ShowPr ()*_cc .CT_ShowProperties {return _dcfa ._dfbf .ShowPr };
|
|
|
|
// SetOffsetX sets horizontal offset of text box in distance units (see measurement package).
|
|
func (_ddbc TextBox )SetOffsetX (offX float64 ){_fceg :=_ddbc .getOff ();_dcef :=_bf .ToEMU (offX );_fceg .XAttr =_eg .ST_Coordinate {ST_CoordinateUnqualified :&_dcef };};func (_ddb *chart )Target ()string {return _ddb ._gag };
|
|
|
|
// ExtLst returns the ExtLst property.
|
|
func (_eae PresentationProperties )ExtLst ()*_cc .CT_ExtensionList {return _eae ._dfbf .ExtLst };
|
|
|
|
// X returns the inner wrapped XML type.
|
|
func (_cfaf SlideMaster )X ()*_cc .SldMaster {return _cfaf ._dfbe };
|
|
|
|
// RemoveSlide removes a slide from a presentation.
|
|
func (_dcaf *Presentation )RemoveSlide (s Slide )error {_bggf :=false ;_dffc :=0;for _bcab ,_gaba :=range _dcaf ._gca {if _gaba ==s ._fcbb {if _dcaf ._acc .SldIdLst .SldId [_bcab ]!=s ._faec {return _db .New ("i\u006e\u0063\u006f\u006e\u0073\u0069s\u0074\u0065\u006e\u0063\u0079\u0020i\u006e\u0020\u0073\u006c\u0069\u0064\u0065s\u0020\u0061\u006e\u0064\u0020\u0049\u0044\u0020\u006c\u0069s\u0074");};copy (_dcaf ._gca [_bcab :],_dcaf ._gca [_bcab +1:]);_dcaf ._gca =_dcaf ._gca [0:len (_dcaf ._gca )-1];copy (_dcaf ._dbef [_bcab :],_dcaf ._dbef [_bcab +1:]);_dcaf ._dbef =_dcaf ._dbef [0:len (_dcaf ._dbef )-1];copy (_dcaf ._acc .SldIdLst .SldId [_bcab :],_dcaf ._acc .SldIdLst .SldId [_bcab +1:]);_dcaf ._acc .SldIdLst .SldId =_dcaf ._acc .SldIdLst .SldId [0:len (_dcaf ._acc .SldIdLst .SldId )-1];_bggf =true ;_dffc =_bcab ;};};if !_bggf {return _db .New ("u\u006ea\u0062\u006c\u0065\u0020\u0074\u006f\u0020\u0066i\u006e\u0064\u0020\u0073li\u0064\u0065");};_cgcb :=_ddg .AbsoluteFilename (_ddg .DocTypePresentation ,_ddg .SlideType ,0);return _dcaf .ContentTypes .RemoveOverrideByIndex (_cgcb ,_dffc );};
|
|
|
|
// GetLayoutByName retrieves a slide layout given a layout name.
|
|
func (_ffe *Presentation )GetLayoutByName (name string )(SlideLayout ,error ){for _ ,_affg :=range _ffe ._aagc {if _affg .CSld .NameAttr !=nil &&name ==*_affg .CSld .NameAttr {return SlideLayout {_affg },nil ;};};return SlideLayout {},_db .New ("\u0075\u006eab\u006c\u0065\u0020t\u006f\u0020\u0066\u0069nd \u006cay\u006f\u0075\u0074\u0020\u0077\u0069\u0074h \u0074\u0068\u0061\u0074\u0020\u006e\u0061m\u0065");};func (_ccfa *Presentation )nextSlideID ()uint32 {_gcd :=uint32 (256);for _ ,_aec :=range _ccfa ._acc .SldIdLst .SldId {if _aec .IdAttr >=_gcd {_gcd =_aec .IdAttr +1;};};return _gcd ;};
|
|
|
|
// Themes returns an array of presentation themes.
|
|
func (_dggf *Presentation )Themes ()[]*_eg .Theme {return _dggf ._cfd };func (_gdgd *Presentation )Validate ()error {if _cdg :=_gdgd ._acc .Validate ();_cdg !=nil {return _cdg ;};for _aaa ,_fccf :=range _gdgd .Slides (){if _egcb :=_fccf .ValidateWithPath (_fdc .Sprintf ("\u0053l\u0069\u0064\u0065\u005b\u0025\u0064]",_aaa ));_egcb !=nil {return _egcb ;};};for _gdfg ,_gaaf :=range _gdgd ._bde {if _ged :=_gaaf .ValidateWithPath (_fdc .Sprintf ("\u0053l\u0069d\u0065\u004d\u0061\u0073\u0074\u0065\u0072\u005b\u0025\u0064\u005d",_gdfg ));_ged !=nil {return _ged ;};};for _cgdb ,_ced :=range _gdgd ._aagc {if _gfe :=_ced .ValidateWithPath (_fdc .Sprintf ("\u0053l\u0069d\u0065\u004c\u0061\u0079\u006f\u0075\u0074\u005b\u0025\u0064\u005d",_cgdb ));_gfe !=nil {return _gfe ;};};return nil ;};
|
|
|
|
// Close closes the presentation, removing any temporary files that might have been
|
|
// created when opening a document.
|
|
func (_abd *Presentation )Close ()error {if _abd .TmpPath !=""{return _eb .RemoveAll (_abd .TmpPath );};return nil ;};func _fbbg (_fdd []*_cc .CT_GroupShapeChoice )[]*_cc .CT_GroupShapeChoice {var _eeb []*_cc .CT_GroupShapeChoice ;for _ ,_fdab :=range _fdd {if len (_fdab .Pic )==0{_eeb =append (_eeb ,_fdab );};};return _eeb ;};
|
|
|
|
// Open opens and reads a document from a file (.pptx).
|
|
func Open (filename string )(*Presentation ,error ){_cbc ,_faa :=_ec .Open (filename );if _faa !=nil {return nil ,_fdc .Errorf ("e\u0072r\u006f\u0072\u0020\u006f\u0070\u0065\u006e\u0069n\u0067\u0020\u0025\u0073: \u0025\u0073",filename ,_faa );};defer _cbc .Close ();_ade ,_faa :=_ec .Stat (filename );if _faa !=nil {return nil ,_fdc .Errorf ("e\u0072r\u006f\u0072\u0020\u006f\u0070\u0065\u006e\u0069n\u0067\u0020\u0025\u0073: \u0025\u0073",filename ,_faa );};_ =_ade ;return Read (_cbc ,_ade .Size ());};
|
|
|
|
// OutlineViewPr returns the OutlineViewPr property.
|
|
func (_ebcge ViewProperties )OutlineViewPr ()*_cc .CT_OutlineViewProperties {return _ebcge ._fcca .OutlineViewPr ;};
|
|
|
|
// GridSpacing returns the GridSpacing property.
|
|
func (_fdf ViewProperties )GridSpacing ()*_eg .CT_PositiveSize2D {return _fdf ._fcca .GridSpacing };
|
|
|
|
// NewSlideScreenSizeWithValue returns slide screen size with given width and height.
|
|
// Width and Height value is in EMU units, use our measurement.ToEMU to convert the -
|
|
// width and height value.
|
|
func NewSlideScreenSizeWithValue (width ,height int32 )SlideScreenSize {return SlideScreenSize {width ,height };};
|
|
|
|
// ExtLst returns the ExtLst property.
|
|
func (_aafba ViewProperties )ExtLst ()*_cc .CT_ExtensionList {return _aafba ._fcca .ExtLst };
|
|
|
|
// Type returns the placeholder type
|
|
func (_aag PlaceHolder )Type ()_cc .ST_PlaceholderType {return _aag ._edg .NvSpPr .NvPr .Ph .TypeAttr };
|
|
|
|
// AddImageToRels adds an image relationship to a slide without putting image on the slide.
|
|
func (_gga Slide )AddImageToRels (img _gcb .ImageRef )string {_fgd :=0;for _egb ,_eebd :=range _gga ._ffef .Images {if _eebd ==img {_fgd =_egb +1;break ;};};var _agaa string ;for _fac ,_bggd :=range _gga ._ffef .Slides (){if _bggd ._fcbb ==_gga ._fcbb {_aae :=_fdc .Sprintf ("\u002e\u002e\u002f\u006ded\u0069\u0061\u002f\u0069\u006d\u0061\u0067\u0065\u0025\u0064\u002e\u0025\u0073",_fgd ,img .Format ());_dce :=_gga ._ffef ._dbef [_fac ].AddRelationship (_aae ,_ddg .ImageType );_agaa =_dce .ID ();};};return _agaa ;};
|
|
|
|
// ShowCommentsAttr returns the WebPr property.
|
|
func (_fedad ViewProperties )ShowCommentsAttr ()*bool {return _fedad ._fcca .ShowCommentsAttr };func _dda ()*Presentation {_aef :=&Presentation {_acc :_cc .NewPresentation ()};_aef ._acc .SldIdLst =_cc .NewCT_SlideIdList ();_aef ._acc .ConformanceAttr =_ge .ST_ConformanceClassTransitional ;_aef .AppProperties =_gcb .NewAppProperties ();_aef .CoreProperties =_gcb .NewCoreProperties ();_aef ._ffaf =_gcb .NewTableStyles ();_aef .ContentTypes =_gcb .NewContentTypes ();_aef .Rels =_gcb .NewRelationships ();_aef ._bba =_gcb .NewRelationships ();_aef ._ffg =NewPresentationProperties ();_aef ._adc =NewViewProperties ();_aef ._feg =map[string ]string {};return _aef ;};
|
|
|
|
// GetImageByRelID returns an ImageRef with the associated relation ID in the
|
|
// slide.
|
|
func (_gge *Slide )GetImageByRelID (relID string )(_gcb .ImageRef ,bool ){_dgdf :=_gge .getSlideRels ();if (_dgdf ==_gcb .Relationships {}){return _gcb .ImageRef {},false ;};var _bac string ;for _ ,_gadf :=range _dgdf .X ().Relationship {if _gadf .IdAttr ==relID {_bac =_gadf .TargetAttr ;break ;};};for _ ,_cddf :=range _gge ._ffef .Images {if _cddf .Target ()==_bac {return _cddf ,true ;};};return _gcb .ImageRef {},false ;};
|
|
|
|
// SlideText is an array of extracted text items which has some methods for representing extracted text from a slide.
|
|
type SlideText struct{Items []*TextItem ;}; |