add new feature to set progress callback
This commit is contained in:
@@ -20,6 +20,7 @@ type Converter struct {
|
||||
chromePath string
|
||||
ctx context.Context
|
||||
cancel context.CancelFunc
|
||||
progress func(progress int)
|
||||
}
|
||||
|
||||
// NewConverter starts a new converter instance with a chrome headless shell executable
|
||||
@@ -44,9 +45,17 @@ func NewConverter(chromePath string) (*Converter, error) {
|
||||
return c, nil
|
||||
}
|
||||
|
||||
func (c *Converter) SetProgressCallback(cb func(progress int)) {
|
||||
c.progress = cb
|
||||
}
|
||||
|
||||
// Convert converts all given input files
|
||||
func (c *Converter) Convert(files ...models.File) error {
|
||||
for _, f := range files {
|
||||
for i, f := range files {
|
||||
if c.progress != nil {
|
||||
c.progress(i + 1)
|
||||
}
|
||||
|
||||
if f.Input == "" || filepath.Ext(f.Input) != ".html" {
|
||||
return fmt.Errorf("no .html input file path provided: %s", f.Input)
|
||||
} else if f.Output == "" || filepath.Ext(f.Output) != ".pdf" {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package html2pdf
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
@@ -46,6 +47,10 @@ func TestConvertFiles(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
c.SetProgressCallback(func(progress int) {
|
||||
fmt.Println(progress)
|
||||
})
|
||||
|
||||
if err := c.Convert(input...); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user