Files
2021-08-22 16:47:09 +10:00

36 lines
680 B
Go

package formater
import (
"bytes"
"fmt"
. "github.com/mickael-kerjean/filestash/server/common"
"io"
"math/rand"
"os"
"os/exec"
)
func PdfFormater(r io.ReadCloser) (io.ReadCloser, error) {
tmpName := fmt.Sprintf("/tmp/pdf_%d.docx", rand.Intn(1000000))
defer os.Remove(tmpName)
f, err := os.OpenFile(tmpName, os.O_CREATE|os.O_WRONLY, os.ModePerm)
if err != nil {
return nil, err
}
_, err = io.Copy(f, r)
if err != nil {
f.Close()
return nil, err
}
f.Close()
cmd := exec.Command("pdftotext", tmpName, "-")
out := bytes.NewBuffer([]byte{})
cmd.Stdout = out
err = cmd.Run()
if err != nil {
return nil, err
}
return NewReadCloserFromReader(out), nil
}