diff options
Diffstat (limited to 'cmd')
-rw-r--r-- | cmd/pdfbook/main.go | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/cmd/pdfbook/main.go b/cmd/pdfbook/main.go index 3146865..4dc2c93 100644 --- a/cmd/pdfbook/main.go +++ b/cmd/pdfbook/main.go @@ -26,7 +26,7 @@ func pxToPt(i int) float64 { return float64(i) / pageWidth } -func walker(pdf Pdfer) filepath.WalkFunc { +func walker(pdf Pdfer, colour bool) filepath.WalkFunc { return func(fpath string, info os.FileInfo, err error) error { if info.IsDir() { return nil @@ -34,11 +34,14 @@ func walker(pdf Pdfer) filepath.WalkFunc { if !strings.HasSuffix(fpath, ".hocr") { return nil } - // TODO: handle jpg or binarised versions according to a flag imgpath := "" - p := strings.SplitN(path.Base(fpath), "_bin", 2) - if len(p) > 1 { - imgpath = path.Join(path.Dir(fpath), p[0] + ".jpg") + if colour { + p := strings.SplitN(path.Base(fpath), "_bin", 2) + if len(p) > 1 { + imgpath = path.Join(path.Dir(fpath), p[0] + ".jpg") + } else { + imgpath = strings.TrimSuffix(fpath, ".hocr") + ".jpg" + } } else { imgpath = strings.TrimSuffix(fpath, ".hocr") + ".png" } @@ -48,10 +51,10 @@ func walker(pdf Pdfer) filepath.WalkFunc { func main() { // TODO: handle best - // TODO: take flags to do colour or binarised - // TODO: probably also take flags to resize / change quality in due course + // TODO: probably take flags to resize / change quality in due course + colour := flag.Bool("c", false, "colour") flag.Usage = func() { - fmt.Fprintln(flag.CommandLine.Output(), "Usage: pdfbook hocrdir out.pdf") + fmt.Fprintln(flag.CommandLine.Output(), "Usage: pdfbook [-c] hocrdir out.pdf") flag.PrintDefaults() } flag.Parse() @@ -64,7 +67,7 @@ func main() { pdf := new(bookpipeline.Fpdf) pdf.Setup() - err := filepath.Walk(flag.Arg(0), walker(pdf)) + err := filepath.Walk(flag.Arg(0), walker(pdf, *colour)) if err != nil { log.Fatalln("Failed to walk", flag.Arg(0), err) } |