docxTemplater/templategen/templategen.go

64 lines
1.1 KiB
Go
Raw Normal View History

2022-07-28 15:00:43 +00:00
package templategen
import (
"fmt"
docTemp "github.com/opencontrol/doc-template"
2022-07-28 15:00:43 +00:00
"io"
"net/http"
"os"
"time"
2022-07-28 15:00:43 +00:00
)
const (
PathExamples = "./static/examples/docx"
TempDownloaded = "./tmp/downloaded"
TempGenerated = "./tmp/generated"
)
func GenerateDocName(name string) string {
2022-11-21 19:15:59 +00:00
return fmt.Sprintf("%v_%v.docx", name, time.Now().UnixNano())
}
func GenerateFile(filename string, data interface{}) error {
dc, err := docTemp.GetTemplate(TempDownloaded + "/" + filename)
dc.Template.Option("missingkey=zero")
if err != nil {
return err
}
dc.Parse()
return dc.Execute(TempGenerated+"/"+filename, data)
}
2022-07-28 15:00:43 +00:00
// DownloadDocument - загружает документ в filepath из url
func DownloadDocument(filepath, url string) error {
resp, err := http.Get(url)
if err != nil {
return err
}
defer resp.Body.Close()
// Create the file
out, err := os.Create(filepath)
if err != nil {
return err
}
defer out.Close()
// Write the body to file
_, err = io.Copy(out, resp.Body)
return err
}
func DeleteDocument(filepath string) error {
return os.Remove(filepath)
}
func ShareDocument(filepath string) (error, string) {
return nil, ""
}