mirror of
https://github.com/unidoc/unioffice.git
synced 2025-04-27 13:48:54 +08:00
SaveAsTemplate and SaveToFileAsTemplate are added for presentation (#400)
Co-authored-by: Gunnsteinn Hall <gunnsteinn.hall@gmail.com>
This commit is contained in:
parent
1bc7809fb0
commit
9892c32fee
@ -376,6 +376,15 @@ func (p *Presentation) AddDefaultSlideWithLayout(l SlideLayout) (Slide, error) {
|
|||||||
|
|
||||||
// Save writes the presentation out to a writer in the Zip package format
|
// Save writes the presentation out to a writer in the Zip package format
|
||||||
func (p *Presentation) Save(w io.Writer) error {
|
func (p *Presentation) Save(w io.Writer) error {
|
||||||
|
return p.save(w, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SaveAsTemplate writes the presentation out to a writer in the Zip package format as a template
|
||||||
|
func (p *Presentation) SaveAsTemplate(w io.Writer) error {
|
||||||
|
return p.save(w, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Presentation) save(w io.Writer, isTemplate bool) error {
|
||||||
if err := p.x.Validate(); err != nil {
|
if err := p.x.Validate(); err != nil {
|
||||||
log.Printf("validation error in document: %s", err)
|
log.Printf("validation error in document: %s", err)
|
||||||
}
|
}
|
||||||
@ -395,6 +404,14 @@ func (p *Presentation) Save(w io.Writer) error {
|
|||||||
r.Properties().SetSolidFill(color.Red)
|
r.Properties().SetSolidFill(color.Red)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if isTemplate {
|
||||||
|
p.ContentTypes.RemoveOverride("application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml")
|
||||||
|
p.ContentTypes.EnsureOverride("/ppt/presentation.xml", "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml")
|
||||||
|
} else {
|
||||||
|
p.ContentTypes.RemoveOverride("application/vnd.openxmlformats-officedocument.presentationml.template.main+xml")
|
||||||
|
p.ContentTypes.EnsureOverride("/ppt/presentation.xml", "application/vnd.openxmlformats-officedocument.presentationml.presentation.main+xml")
|
||||||
|
}
|
||||||
|
|
||||||
dt := unioffice.DocTypePresentation
|
dt := unioffice.DocTypePresentation
|
||||||
|
|
||||||
z := zip.NewWriter(w)
|
z := zip.NewWriter(w)
|
||||||
@ -476,12 +493,21 @@ func (p *Presentation) Save(w io.Writer) error {
|
|||||||
|
|
||||||
// SaveToFile writes the Presentation out to a file.
|
// SaveToFile writes the Presentation out to a file.
|
||||||
func (p *Presentation) SaveToFile(path string) error {
|
func (p *Presentation) SaveToFile(path string) error {
|
||||||
|
return p.saveToFile(path, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
// SaveToFileAsTemplate writes the Presentation out to a file as a template.
|
||||||
|
func (p *Presentation) SaveToFileAsTemplate(path string) error {
|
||||||
|
return p.saveToFile(path, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *Presentation) saveToFile(path string, isTemplate bool) error {
|
||||||
f, err := os.Create(path)
|
f, err := os.Create(path)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer f.Close()
|
defer f.Close()
|
||||||
return p.Save(f)
|
return p.save(f, isTemplate)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Presentation) Validate() error {
|
func (p *Presentation) Validate() error {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user