Browse Source

Better jobname/timestamp detection

master
Gregory Rudolph 2 years ago
parent
commit
e42f688ac5
Signed by: rudi
GPG Key ID: EF64F3CBD1A1EBDD
  1. 42
      printer.go

42
printer.go

@ -48,10 +48,20 @@ func printWhenDone() {
} }
} }
func delete_empty (s []string) []string {
var r []string
for _, str := range s {
if str != "" {
r = append(r, str)
}
}
return r
}
func makePdf() { func makePdf() {
o := output o := output
output = "" output = ""
jobname := "nil" outfile := "nil"
m := pdf.NewMaroto(consts.Landscape, consts.Letter) m := pdf.NewMaroto(consts.Landscape, consts.Letter)
scanner := bufio.NewScanner(strings.NewReader(o)) scanner := bufio.NewScanner(strings.NewReader(o))
format := props.Text{ format := props.Text{
@ -63,8 +73,34 @@ func makePdf() {
for scanner.Scan() { for scanner.Scan() {
line := scanner.Text() line := scanner.Text()
if strings.HasPrefix(line, "****A") && strings.Contains(line, "START") { if strings.HasPrefix(line, "****A") && strings.Contains(line, "START") {
parts := strings.Split(line, " ") parts := strings.Split(line, " ")
jobname = fmt.Sprintf("%+v-JOB_%+v", parts[4], strings.ReplaceAll(parts[11], " ", "_")) parts = delete_empty(parts)
var jobname, timestamp string
for i, part := range parts {
if len(part) == 0 {
continue
}
if i == 2 {
if parts[2] == "JOB" {
jobname = parts[4]
} else {
jobname = fmt.Sprintf("%+v%+v", parts[4], parts[2])
}
}
if len(part) > 12 {
ts, err := time.Parse("03.04.05 PM 02 Jan 06", strings.Trim(part, " "))
if err != nil {
continue
}
timestamp = ts.Format("2006-01-02_15-04-05")
break
}
}
outfile = fmt.Sprintf("%+v-JOB_%+v", timestamp, jobname)
} }
page := m.GetCurrentPage() page := m.GetCurrentPage()
if strings.HasPrefix(line, "\f") && !firstRun { if strings.HasPrefix(line, "\f") && !firstRun {
@ -86,7 +122,7 @@ func makePdf() {
}) })
}) })
} }
err := m.OutputFileAndClose(fmt.Sprintf("%+v.pdf", jobname)) err := m.OutputFileAndClose(fmt.Sprintf("%+v.pdf", outfile))
if err != nil { if err != nil {
fmt.Printf("Error closing pdf\n") fmt.Printf("Error closing pdf\n")
return return

Loading…
Cancel
Save