35 lines
933 B
Go
35 lines
933 B
Go
package actions
|
|
|
|
import (
|
|
"bytes"
|
|
"log"
|
|
"strconv"
|
|
|
|
"tomatentum.net/svg-templater/pkg/format"
|
|
"tomatentum.net/svg-templater/pkg/svg"
|
|
)
|
|
|
|
func ProvideFile(r *TemplateParameters, conversion *format.ConversionParameters) ([]string, error) {
|
|
templatedPages, err := Template(r)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
log.Printf("Converting %s to format %s (w=%d,h=%d)", r.Id, conversion.Format, conversion.Width, conversion.Height)
|
|
filenames := make([]string, len(templatedPages))
|
|
for i, pagedata := range templatedPages {
|
|
result, err := format.ConvertByte(pagedata, *conversion)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
filenames[i], err = svg.Storage.CreatePublic(bytes.NewReader(result), strconv.Itoa(i+1), conversion.Format)
|
|
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
log.Printf("Converted %s page %d to format %s (w=%d,h=%d)", r.Id, i, conversion.Format, conversion.Width, conversion.Height)
|
|
|
|
}
|
|
|
|
return filenames, nil
|
|
}
|