mirror of
https://github.com/Rudi9719/mfprint.git
synced 2026-03-31 01:23:33 +00:00
Better jobname/timestamp detection
This commit is contained in:
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
|
||||||
|
|||||||
Reference in New Issue
Block a user