38 lines
748 B
Go
38 lines
748 B
Go
package services
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"time"
|
|
|
|
"github.com/pdfcpu/pdfcpu/pkg/api"
|
|
)
|
|
|
|
type FileConverter struct {
|
|
}
|
|
|
|
func NewFileConverter() *FileConverter {
|
|
return &FileConverter{}
|
|
}
|
|
|
|
func (c *FileConverter) MergeFiles(filenames []string) (string, error) {
|
|
timestamp := time.Now().Format("20060102-150405")
|
|
mergedFilename := "merged-" + timestamp + ".pdf"
|
|
mergedFile := "/home/backend/var/documents/" + mergedFilename
|
|
|
|
outputDir := filepath.Dir(mergedFile)
|
|
if err := os.MkdirAll(outputDir, 0755); err != nil {
|
|
return "", err
|
|
}
|
|
|
|
_ = os.Remove(mergedFile)
|
|
|
|
config := api.LoadConfiguration()
|
|
|
|
if err := api.MergeCreateFile(filenames, mergedFile, false, config); err != nil {
|
|
return "", err
|
|
}
|
|
|
|
return mergedFilename, nil
|
|
}
|