mirror of
https://github.com/unidoc/unioffice.git
synced 2025-04-25 13:48:53 +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
|
||||
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 {
|
||||
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)
|
||||
}
|
||||
|
||||
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
|
||||
|
||||
z := zip.NewWriter(w)
|
||||
@ -476,12 +493,21 @@ func (p *Presentation) Save(w io.Writer) error {
|
||||
|
||||
// SaveToFile writes the Presentation out to a file.
|
||||
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)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer f.Close()
|
||||
return p.Save(f)
|
||||
return p.save(f, isTemplate)
|
||||
}
|
||||
|
||||
func (p *Presentation) Validate() error {
|
||||
|
Loading…
x
Reference in New Issue
Block a user