add new feature to set progress callback

This commit is contained in:
Adrian Zürcher
2025-12-25 01:14:03 +01:00
parent edb8d7e830
commit 613b74ee55
2 changed files with 15 additions and 1 deletions

View File

@@ -20,6 +20,7 @@ type Converter struct {
chromePath string chromePath string
ctx context.Context ctx context.Context
cancel context.CancelFunc cancel context.CancelFunc
progress func(progress int)
} }
// NewConverter starts a new converter instance with a chrome headless shell executable // 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 return c, nil
} }
func (c *Converter) SetProgressCallback(cb func(progress int)) {
c.progress = cb
}
// Convert converts all given input files // Convert converts all given input files
func (c *Converter) Convert(files ...models.File) error { 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" { if f.Input == "" || filepath.Ext(f.Input) != ".html" {
return fmt.Errorf("no .html input file path provided: %s", f.Input) return fmt.Errorf("no .html input file path provided: %s", f.Input)
} else if f.Output == "" || filepath.Ext(f.Output) != ".pdf" { } else if f.Output == "" || filepath.Ext(f.Output) != ".pdf" {

View File

@@ -1,6 +1,7 @@
package html2pdf package html2pdf
import ( import (
"fmt"
"os" "os"
"path/filepath" "path/filepath"
"strings" "strings"
@@ -46,6 +47,10 @@ func TestConvertFiles(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
c.SetProgressCallback(func(progress int) {
fmt.Println(progress)
})
if err := c.Convert(input...); err != nil { if err := c.Convert(input...); err != nil {
t.Fatal(err) t.Fatal(err)
} }