diff --git a/pkg/api/annotation.go b/pkg/api/annotation.go index 438e7d4a..19ef6119 100644 --- a/pkg/api/annotation.go +++ b/pkg/api/annotation.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -38,7 +37,7 @@ func Annotations(rs io.ReadSeeker, selectedPages []string, conf *model.Configura } conf.Cmd = model.LISTANNOTATIONS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return nil, err } @@ -66,7 +65,7 @@ func AddAnnotations(rs io.ReadSeeker, w io.Writer, selectedPages []string, ann m } conf.Cmd = model.ADDANNOTATIONS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -110,7 +109,7 @@ func AddAnnotationsAsIncrement(rws io.ReadWriteSeeker, selectedPages []string, a } conf.Cmd = model.ADDANNOTATIONS - ctx, _, _, err := readAndValidate(rws, conf, time.Now()) + ctx, err := ReadAndValidate(rws, conf) if err != nil { return err } @@ -212,7 +211,7 @@ func AddAnnotationsMap(rs io.ReadSeeker, w io.Writer, m map[int][]model.Annotati } conf.Cmd = model.ADDANNOTATIONS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -251,7 +250,7 @@ func AddAnnotationsMapAsIncrement(rws io.ReadWriteSeeker, m map[int][]model.Anno } conf.Cmd = model.ADDANNOTATIONS - ctx, _, _, err := readAndValidate(rws, conf, time.Now()) + ctx, err := ReadAndValidate(rws, conf) if err != nil { return err } @@ -350,7 +349,7 @@ func RemoveAnnotations(rs io.ReadSeeker, w io.Writer, selectedPages, idsAndTypes } conf.Cmd = model.REMOVEANNOTATIONS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -395,7 +394,7 @@ func RemoveAnnotationsAsIncrement(rws io.ReadWriteSeeker, selectedPages, idsAndT } conf.Cmd = model.REMOVEANNOTATIONS - ctx, _, _, err := readAndValidate(rws, conf, time.Now()) + ctx, err := ReadAndValidate(rws, conf) if err != nil { return err } diff --git a/pkg/api/api.go b/pkg/api/api.go index 8108df94..789fcad1 100644 --- a/pkg/api/api.go +++ b/pkg/api/api.go @@ -38,7 +38,6 @@ import ( "io" "os" "sync" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -144,43 +143,35 @@ func WriteContextFile(ctx *model.Context, outFile string) error { return WriteContext(ctx, f) } -func readAndValidate(rs io.ReadSeeker, conf *model.Configuration, from1 time.Time) (ctx *model.Context, dur1, dur2 float64, err error) { +// ReadAndValidate returns a model.Context of rs ready for processing. +func ReadAndValidate(rs io.ReadSeeker, conf *model.Configuration) (ctx *model.Context, err error) { if ctx, err = ReadContext(rs, conf); err != nil { - return nil, 0, 0, err + return nil, err } - dur1 = time.Since(from1).Seconds() - - from2 := time.Now() - if ctx.Version() == model.V20 { logDisclaimerPDF20() } if err = validate.XRefTable(ctx.XRefTable); err != nil { - return nil, 0, 0, err + return nil, err } - dur2 = time.Since(from2).Seconds() - - return ctx, dur1, dur2, nil + return ctx, nil } -// ReadValidateAndOptimize returns the model.Context of rs ready for processing. -func ReadValidateAndOptimize(rs io.ReadSeeker, conf *model.Configuration, from1 time.Time) (ctx *model.Context, dur1, dur2, dur3 float64, err error) { - ctx, dur1, dur2, err = readAndValidate(rs, conf, from1) +// ReadValidateAndOptimize returns an optimized model.Context of rs ready for processing. +func ReadValidateAndOptimize(rs io.ReadSeeker, conf *model.Configuration) (ctx *model.Context, err error) { + ctx, err = ReadAndValidate(rs, conf) if err != nil { - return nil, 0, 0, 0, err + return nil, err } - from3 := time.Now() if err = OptimizeContext(ctx); err != nil { - return nil, 0, 0, 0, err + return nil, err } - dur3 = time.Since(from3).Seconds() - - return ctx, dur1, dur2, dur3, nil + return ctx, nil } func logOperationStats(ctx *model.Context, op string, durRead, durVal, durOpt, durWrite, durTotal float64) { diff --git a/pkg/api/attach.go b/pkg/api/attach.go index 49fcdcb6..7442b829 100644 --- a/pkg/api/attach.go +++ b/pkg/api/attach.go @@ -21,7 +21,6 @@ import ( "os" "path/filepath" "strings" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" @@ -39,8 +38,7 @@ func Attachments(rs io.ReadSeeker, conf *model.Configuration) ([]model.Attachmen } conf.Cmd = model.LISTATTACHMENTS - fromStart := time.Now() - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return nil, err } @@ -64,13 +62,11 @@ func AddAttachments(rs io.ReadSeeker, w io.Writer, files []string, coll bool, co } conf.Cmd = model.ADDATTACHMENTS - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } - from := time.Now() var ok bool for _, fn := range files { @@ -111,17 +107,10 @@ func AddAttachments(rs io.ReadSeeker, w io.Writer, files []string, coll bool, co return errors.New("pdfcpu: AddAttachments: No attachment added") } - durAdd := time.Since(from).Seconds() - fromWrite := time.Now() - if err = WriteContext(ctx, w); err != nil { return err } - durWrite := durAdd + time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "add attachment, write", durRead, durVal, durOpt, durWrite, durTotal) - return nil } @@ -178,14 +167,11 @@ func RemoveAttachments(rs io.ReadSeeker, w io.Writer, files []string, conf *mode } conf.Cmd = model.ADDATTACHMENTS - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } - from := time.Now() - var ok bool if ok, err = ctx.RemoveAttachments(files); err != nil { return err @@ -194,16 +180,10 @@ func RemoveAttachments(rs io.ReadSeeker, w io.Writer, files []string, conf *mode return errors.New("pdfcpu: RemoveAttachments: No attachment removed") } - durRemove := time.Since(from).Seconds() - fromWrite := time.Now() if err = WriteContext(ctx, w); err != nil { return err } - durWrite := durRemove + time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "remove att, write", durRead, durVal, durOpt, durWrite, durTotal) - return nil } @@ -256,7 +236,7 @@ func ExtractAttachmentsRaw(rs io.ReadSeeker, outDir string, fileNames []string, } conf.Cmd = model.EXTRACTATTACHMENTS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return nil, err } diff --git a/pkg/api/booklet.go b/pkg/api/booklet.go index 4eb7b277..5af4a9fd 100644 --- a/pkg/api/booklet.go +++ b/pkg/api/booklet.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -84,7 +83,7 @@ func Booklet(rs io.ReadSeeker, w io.Writer, imgFiles, selectedPages []string, nu } else { - if ctx, _, _, err = readAndValidate(rs, conf, time.Now()); err != nil { + if ctx, err = ReadAndValidate(rs, conf); err != nil { return err } diff --git a/pkg/api/bookmark.go b/pkg/api/bookmark.go index 16c799ad..e2fb7af7 100644 --- a/pkg/api/bookmark.go +++ b/pkg/api/bookmark.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" @@ -44,7 +43,7 @@ func Bookmarks(rs io.ReadSeeker, conf *model.Configuration) ([]pdfcpu.Bookmark, } conf.Cmd = model.LISTBOOKMARKS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return nil, err } @@ -66,7 +65,7 @@ func ExportBookmarksJSON(rs io.ReadSeeker, w io.Writer, source string, conf *mod } conf.Cmd = model.EXPORTBOOKMARKS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -134,7 +133,7 @@ func ImportBookmarks(rs io.ReadSeeker, rd io.Reader, w io.Writer, replace bool, } conf.Cmd = model.IMPORTBOOKMARKS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -213,7 +212,7 @@ func AddBookmarks(rs io.ReadSeeker, w io.Writer, bms []pdfcpu.Bookmark, replace return errors.New("pdfcpu: AddBookmarks: missing bms") } - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -280,7 +279,7 @@ func RemoveBookmarks(rs io.ReadSeeker, w io.Writer, conf *model.Configuration) e } conf.Cmd = model.REMOVEBOOKMARKS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } diff --git a/pkg/api/box.go b/pkg/api/box.go index a4bc39b2..5f044472 100644 --- a/pkg/api/box.go +++ b/pkg/api/box.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" @@ -53,7 +52,7 @@ func Boxes(rs io.ReadSeeker, selectedPages []string, conf *model.Configuration) } conf.Cmd = model.LISTBOXES - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return nil, err } @@ -81,7 +80,7 @@ func AddBoxes(rs io.ReadSeeker, w io.Writer, selectedPages []string, pb *model.P } conf.Cmd = model.ADDBOXES - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -162,7 +161,7 @@ func RemoveBoxes(rs io.ReadSeeker, w io.Writer, selectedPages []string, pb *mode } conf.Cmd = model.REMOVEBOXES - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -244,7 +243,7 @@ func Crop(rs io.ReadSeeker, w io.Writer, selectedPages []string, b *model.Box, c } conf.Cmd = model.CROP - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } diff --git a/pkg/api/collect.go b/pkg/api/collect.go index 524ea672..f0b67d72 100644 --- a/pkg/api/collect.go +++ b/pkg/api/collect.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" @@ -37,8 +36,7 @@ func Collect(rs io.ReadSeeker, w io.Writer, selectedPages []string, conf *model. } conf.Cmd = model.COLLECT - fromStart := time.Now() - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } diff --git a/pkg/api/create.go b/pkg/api/create.go index 81a2b3bc..47854509 100644 --- a/pkg/api/create.go +++ b/pkg/api/create.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -59,7 +58,7 @@ func Create(rs io.ReadSeeker, rd io.Reader, w io.Writer, conf *model.Configurati ) if rs != nil { - ctx, _, _, _, err = ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err = ReadValidateAndOptimize(rs, conf) } else { ctx, err = pdfcpu.CreateContextWithXRefTable(conf, types.PaperSize["A4"]) } diff --git a/pkg/api/cut.go b/pkg/api/cut.go index d11aff40..141506ba 100644 --- a/pkg/api/cut.go +++ b/pkg/api/cut.go @@ -23,7 +23,6 @@ import ( "path/filepath" "sort" "strings" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -33,7 +32,7 @@ import ( ) func prepareForCut(rs io.ReadSeeker, selectedPages []string, conf *model.Configuration) (*model.Context, types.IntSet, error) { - ctxSrc, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctxSrc, err := ReadValidateAndOptimize(rs, conf) if err != nil { return nil, nil, err } diff --git a/pkg/api/extract.go b/pkg/api/extract.go index cec5db3d..fb2b3596 100644 --- a/pkg/api/extract.go +++ b/pkg/api/extract.go @@ -24,7 +24,6 @@ import ( "sort" "strconv" "strings" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -44,7 +43,7 @@ func ExtractImagesRaw(rs io.ReadSeeker, selectedPages []string, conf *model.Conf } conf.Cmd = model.EXTRACTIMAGES - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return nil, err } @@ -84,7 +83,7 @@ func ExtractImages(rs io.ReadSeeker, selectedPages []string, digestImage func(mo } conf.Cmd = model.EXTRACTIMAGES - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -171,8 +170,7 @@ func ExtractFonts(rs io.ReadSeeker, outDir, fileName string, selectedPages []str } conf.Cmd = model.EXTRACTFONTS - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -181,7 +179,6 @@ func ExtractFonts(rs io.ReadSeeker, outDir, fileName string, selectedPages []str return err } - fromWrite := time.Now() pages, err := PagesForPageSelection(ctx.PageCount, selectedPages, true, true) if err != nil { return err @@ -206,18 +203,8 @@ func ExtractFonts(rs io.ReadSeeker, outDir, fileName string, selectedPages []str if err != nil { return err } - if err := writeFonts(ff, outDir, fileName); err != nil { - return err - } - - durWrite := time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - if log.StatsEnabled() { - log.Stats.Printf("XRefTable:\n%s\n", ctx) - } - model.TimingStats("write fonts", durRead, durVal, durOpt, durWrite, durTotal) - return nil + return writeFonts(ff, outDir, fileName) } // ExtractFontsFile dumps embedded fontfiles from inFile into outDir for selected pages. @@ -246,8 +233,7 @@ func ExtractPages(rs io.ReadSeeker, outDir, fileName string, selectedPages []str conf.Cmd = model.EXTRACTPAGES } - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -256,7 +242,6 @@ func ExtractPages(rs io.ReadSeeker, outDir, fileName string, selectedPages []str return err } - fromWrite := time.Now() pages, err := PagesForPageSelection(ctx.PageCount, selectedPages, true, true) if err != nil { return err @@ -286,13 +271,6 @@ func ExtractPages(rs io.ReadSeeker, outDir, fileName string, selectedPages []str } } - durWrite := time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - if log.StatsEnabled() { - log.Stats.Printf("XRefTable:\n%s\n", ctx) - } - model.TimingStats("write PDFs", durRead, durVal, durOpt, durWrite, durTotal) - return nil } @@ -322,8 +300,7 @@ func ExtractContent(rs io.ReadSeeker, outDir, fileName string, selectedPages []s } conf.Cmd = model.EXTRACTCONTENT - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -332,7 +309,6 @@ func ExtractContent(rs io.ReadSeeker, outDir, fileName string, selectedPages []s return err } - fromWrite := time.Now() pages, err := PagesForPageSelection(ctx.PageCount, selectedPages, true, true) if err != nil { return err @@ -369,13 +345,6 @@ func ExtractContent(rs io.ReadSeeker, outDir, fileName string, selectedPages []s } } - durWrite := time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - if log.StatsEnabled() { - log.Stats.Printf("XRefTable:\n%s\n", ctx) - } - model.TimingStats("write content", durRead, durVal, durOpt, durWrite, durTotal) - return nil } @@ -405,14 +374,11 @@ func ExtractMetadata(rs io.ReadSeeker, outDir, fileName string, conf *model.Conf } conf.Cmd = model.EXTRACTMETADATA - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } - fromWrite := time.Now() - mm, err := pdfcpu.ExtractMetadata(ctx) if err != nil { return err @@ -436,13 +402,6 @@ func ExtractMetadata(rs io.ReadSeeker, outDir, fileName string, conf *model.Conf } } - durWrite := time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - if log.StatsEnabled() { - log.Stats.Printf("XRefTable:\n%s\n", ctx) - } - model.TimingStats("write metadata", durRead, durVal, durOpt, durWrite, durTotal) - return nil } diff --git a/pkg/api/form.go b/pkg/api/form.go index 368d87d0..458cb603 100644 --- a/pkg/api/form.go +++ b/pkg/api/form.go @@ -25,7 +25,6 @@ import ( "os" "path/filepath" "strings" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/create" @@ -53,7 +52,7 @@ func FormFields(rs io.ReadSeeker, conf *model.Configuration) ([]form.Field, erro } conf.Cmd = model.LISTFORMFIELDS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return nil, err } @@ -78,7 +77,7 @@ func RemoveFormFields(rs io.ReadSeeker, w io.Writer, fieldIDsOrNames []string, c } conf.Cmd = model.REMOVEFORMFIELDS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -153,7 +152,7 @@ func LockFormFields(rs io.ReadSeeker, w io.Writer, fieldIDsOrNames []string, con } conf.Cmd = model.LOCKFORMFIELDS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -228,7 +227,7 @@ func UnlockFormFields(rs io.ReadSeeker, w io.Writer, fieldIDsOrNames []string, c } conf.Cmd = model.UNLOCKFORMFIELDS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -303,7 +302,7 @@ func ResetFormFields(rs io.ReadSeeker, w io.Writer, fieldIDsOrNames []string, co } conf.Cmd = model.RESETFORMFIELDS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -378,7 +377,7 @@ func ExportForm(rs io.ReadSeeker, source string, conf *model.Configuration) (*fo } conf.Cmd = model.EXPORTFORMFIELDS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return nil, err } @@ -413,7 +412,7 @@ func ExportFormJSON(rs io.ReadSeeker, w io.Writer, source string, conf *model.Co } conf.Cmd = model.EXPORTFORMFIELDS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -547,7 +546,7 @@ func FillForm(rs io.ReadSeeker, rd io.Reader, w io.Writer, conf *model.Configura } conf.Cmd = model.FILLFORMFIELDS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -712,7 +711,7 @@ func multiFillFormJSON(inFilePDF string, rd io.Reader, outDir, fileName string, } defer rs.Close() - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -804,7 +803,7 @@ func multiFillFormCSV(inFilePDF string, rd io.Reader, outDir, fileName string, m } defer f.Close() - ctx, _, _, _, err := ReadValidateAndOptimize(f, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(f, conf) if err != nil { return err } diff --git a/pkg/api/image.go b/pkg/api/image.go index d8b423cc..6038fc31 100644 --- a/pkg/api/image.go +++ b/pkg/api/image.go @@ -18,7 +18,6 @@ package api import ( "io" - "time" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" @@ -36,7 +35,7 @@ func Images(rs io.ReadSeeker, selectedPages []string, conf *model.Configuration) } conf.Cmd = model.LISTIMAGES - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return nil, err } diff --git a/pkg/api/importImage.go b/pkg/api/importImage.go index e9e9e452..ae878939 100644 --- a/pkg/api/importImage.go +++ b/pkg/api/importImage.go @@ -20,7 +20,6 @@ import ( "bufio" "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -51,7 +50,7 @@ func ImportImages(rs io.ReadSeeker, w io.Writer, imgs []io.Reader, imp *pdfcpu.I ) if rs != nil { - ctx, _, _, err = readAndValidate(rs, conf, time.Now()) + ctx, err = ReadAndValidate(rs, conf) } else { ctx, err = pdfcpu.CreateContextWithXRefTable(conf, imp.PageDim) } diff --git a/pkg/api/info.go b/pkg/api/info.go index 8c2314f1..bed022f9 100644 --- a/pkg/api/info.go +++ b/pkg/api/info.go @@ -18,7 +18,6 @@ package api import ( "io" - "time" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" @@ -38,7 +37,7 @@ func PDFInfo(rs io.ReadSeeker, fileName string, selectedPages []string, conf *mo } conf.Cmd = model.LISTINFO - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return nil, err } diff --git a/pkg/api/keyword.go b/pkg/api/keyword.go index 162b8fe9..143f2f20 100644 --- a/pkg/api/keyword.go +++ b/pkg/api/keyword.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" @@ -39,7 +38,7 @@ func Keywords(rs io.ReadSeeker, conf *model.Configuration) ([]string, error) { } conf.Cmd = model.LISTKEYWORDS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return nil, err } @@ -60,30 +59,16 @@ func AddKeywords(rs io.ReadSeeker, w io.Writer, files []string, conf *model.Conf } conf.Cmd = model.ADDKEYWORDS - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } - from := time.Now() - if err = pdfcpu.KeywordsAdd(ctx.XRefTable, files); err != nil { return err } - durAdd := time.Since(from).Seconds() - fromWrite := time.Now() - - if err = WriteContext(ctx, w); err != nil { - return err - } - - durWrite := durAdd + time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "add keyword, write", durRead, durVal, durOpt, durWrite, durTotal) - - return nil + return WriteContext(ctx, w) } // AddKeywordsFile adds keywords to inFile's infodict and writes the result to outFile. @@ -137,14 +122,11 @@ func RemoveKeywords(rs io.ReadSeeker, w io.Writer, keywords []string, conf *mode } conf.Cmd = model.REMOVEKEYWORDS - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } - from := time.Now() - var ok bool if ok, err = pdfcpu.KeywordsRemove(ctx.XRefTable, keywords); err != nil { return err @@ -153,17 +135,7 @@ func RemoveKeywords(rs io.ReadSeeker, w io.Writer, keywords []string, conf *mode return errors.New("no keyword removed") } - durRemove := time.Since(from).Seconds() - fromWrite := time.Now() - if err = WriteContext(ctx, w); err != nil { - return err - } - - durWrite := durRemove + time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "remove att, write", durRead, durVal, durOpt, durWrite, durTotal) - - return nil + return WriteContext(ctx, w) } // RemoveKeywordsFile deletes keywords from inFile's infodict and writes the result to outFile. diff --git a/pkg/api/merge.go b/pkg/api/merge.go index 6339a145..53bcdc40 100644 --- a/pkg/api/merge.go +++ b/pkg/api/merge.go @@ -21,7 +21,6 @@ import ( "os" "path/filepath" "strconv" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -31,7 +30,7 @@ import ( // appendTo appends rs to ctxDest's page tree. func appendTo(rs io.ReadSeeker, fName string, ctxDest *model.Context, dividerPage bool) error { - ctxSource, _, _, err := readAndValidate(rs, ctxDest.Configuration, time.Now()) + ctxSource, err := ReadAndValidate(rs, ctxDest.Configuration) if err != nil { return err } @@ -61,7 +60,7 @@ func MergeRaw(rsc []io.ReadSeeker, w io.Writer, dividerPage bool, conf *model.Co conf.ValidationMode = model.ValidationRelaxed conf.CreateBookmarks = false - ctxDest, _, _, err := readAndValidate(rsc[0], conf, time.Now()) + ctxDest, err := ReadAndValidate(rsc[0], conf) if err != nil { return err } @@ -82,7 +81,7 @@ func MergeRaw(rsc []io.ReadSeeker, w io.Writer, dividerPage bool, conf *model.Co } func prepDestContext(destFile string, rs io.ReadSeeker, conf *model.Configuration) (*model.Context, error) { - ctxDest, _, _, err := readAndValidate(rs, conf, time.Now()) + ctxDest, err := ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -251,7 +250,7 @@ func MergeCreateZip(rs1, rs2 io.ReadSeeker, w io.Writer, conf *model.Configurati conf.Cmd = model.MERGECREATEZIP conf.ValidationMode = model.ValidationRelaxed - ctxDest, _, _, err := readAndValidate(rs1, conf, time.Now()) + ctxDest, err := ReadAndValidate(rs1, conf) if err != nil { return err } @@ -264,7 +263,7 @@ func MergeCreateZip(rs1, rs2 io.ReadSeeker, w io.Writer, conf *model.Configurati return err } - ctxSrc, _, _, err := readAndValidate(rs2, conf, time.Now()) + ctxSrc, err := ReadAndValidate(rs2, conf) if err != nil { return err } diff --git a/pkg/api/nup.go b/pkg/api/nup.go index 45209563..3534e888 100644 --- a/pkg/api/nup.go +++ b/pkg/api/nup.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -115,7 +114,7 @@ func NUp(rs io.ReadSeeker, w io.Writer, imgFiles, selectedPages []string, nup *m } else { - if ctx, _, _, err = readAndValidate(rs, conf, time.Now()); err != nil { + if ctx, err = ReadAndValidate(rs, conf); err != nil { return err } diff --git a/pkg/api/optimize.go b/pkg/api/optimize.go index 9dcbf43a..32891ee3 100644 --- a/pkg/api/optimize.go +++ b/pkg/api/optimize.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -38,9 +37,7 @@ func Optimize(rs io.ReadSeeker, w io.Writer, conf *model.Configuration) error { } //conf.Cmd = model.OPTIMIZE - fromStart := time.Now() - - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -48,16 +45,11 @@ func Optimize(rs io.ReadSeeker, w io.Writer, conf *model.Configuration) error { if log.StatsEnabled() { log.Stats.Printf("XRefTable:\n%s\n", ctx) } - fromWrite := time.Now() if err = WriteContext(ctx, w); err != nil { return err } - durWrite := time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "write", durRead, durVal, durOpt, durWrite, durTotal) - // For Optimize only. if ctx.StatsFileName != "" { err = pdfcpu.AppendStatsFile(ctx) diff --git a/pkg/api/page.go b/pkg/api/page.go index 54de93d3..b10a1d88 100644 --- a/pkg/api/page.go +++ b/pkg/api/page.go @@ -20,7 +20,6 @@ import ( "io" "os" "sort" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -43,8 +42,7 @@ func InsertPages(rs io.ReadSeeker, w io.Writer, selectedPages []string, before b conf.Cmd = model.INSERTPAGESBEFORE } - fromStart := time.Now() - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -133,8 +131,7 @@ func RemovePages(rs io.ReadSeeker, w io.Writer, selectedPages []string, conf *mo } conf.Cmd = model.REMOVEPAGES - fromStart := time.Now() - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } diff --git a/pkg/api/pageLayout.go b/pkg/api/pageLayout.go index ab9d7edd..9ad171aa 100644 --- a/pkg/api/pageLayout.go +++ b/pkg/api/pageLayout.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/types" @@ -39,7 +38,7 @@ func PageLayout(rs io.ReadSeeker, conf *model.Configuration) (*model.PageLayout, } conf.Cmd = model.LISTPAGELAYOUT - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -71,7 +70,7 @@ func ListPageLayout(rs io.ReadSeeker, conf *model.Configuration) ([]string, erro } conf.Cmd = model.LISTPAGELAYOUT - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -107,7 +106,7 @@ func SetPageLayout(rs io.ReadSeeker, w io.Writer, val model.PageLayout, conf *mo } conf.Cmd = model.SETPAGELAYOUT - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return err } @@ -172,7 +171,7 @@ func ResetPageLayout(rs io.ReadSeeker, w io.Writer, conf *model.Configuration) e } conf.Cmd = model.RESETPAGELAYOUT - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return err } diff --git a/pkg/api/pageMode.go b/pkg/api/pageMode.go index 646bfcb6..aca8a275 100644 --- a/pkg/api/pageMode.go +++ b/pkg/api/pageMode.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/types" @@ -39,7 +38,7 @@ func PageMode(rs io.ReadSeeker, conf *model.Configuration) (*model.PageMode, err } conf.Cmd = model.LISTPAGEMODE - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -71,7 +70,7 @@ func ListPageMode(rs io.ReadSeeker, conf *model.Configuration) ([]string, error) } conf.Cmd = model.LISTPAGEMODE - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -107,7 +106,7 @@ func SetPageMode(rs io.ReadSeeker, w io.Writer, val model.PageMode, conf *model. } conf.Cmd = model.SETPAGEMODE - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return err } @@ -172,7 +171,7 @@ func ResetPageMode(rs io.ReadSeeker, w io.Writer, conf *model.Configuration) err } conf.Cmd = model.RESETPAGEMODE - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return err } diff --git a/pkg/api/permission.go b/pkg/api/permission.go index bbd30345..2345ad44 100644 --- a/pkg/api/permission.go +++ b/pkg/api/permission.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" @@ -37,7 +36,7 @@ func Permissions(rs io.ReadSeeker, conf *model.Configuration) (int, error) { } conf.Cmd = model.LISTPERMISSIONS - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return 0, err } @@ -63,8 +62,7 @@ func SetPermissions(rs io.ReadSeeker, w io.Writer, conf *model.Configuration) er } conf.Cmd = model.SETPERMISSIONS - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -73,16 +71,7 @@ func SetPermissions(rs io.ReadSeeker, w io.Writer, conf *model.Configuration) er return pdfcpu.ErrUnsupportedVersion } - fromWrite := time.Now() - if err = WriteContext(ctx, w); err != nil { - return err - } - - durWrite := time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "write", durRead, durVal, durOpt, durWrite, durTotal) - - return nil + return WriteContext(ctx, w) } // SetPermissionsFile sets inFile's user access permissions. @@ -142,7 +131,7 @@ func GetPermissions(rs io.ReadSeeker, conf *model.Configuration) (*int16, error) } // No cmd available. - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -156,6 +145,7 @@ func GetPermissions(rs io.ReadSeeker, conf *model.Configuration) (*int16, error) return nil, nil } p := int16(ctx.E.P) + return &p, nil } diff --git a/pkg/api/property.go b/pkg/api/property.go index 19287899..c89f8972 100644 --- a/pkg/api/property.go +++ b/pkg/api/property.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" @@ -38,7 +37,7 @@ func Properties(rs io.ReadSeeker, conf *model.Configuration) (map[string]string, } conf.Cmd = model.LISTPROPERTIES - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return nil, err } @@ -59,30 +58,16 @@ func AddProperties(rs io.ReadSeeker, w io.Writer, properties map[string]string, } conf.Cmd = model.ADDPROPERTIES - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } - from := time.Now() - if err = pdfcpu.PropertiesAdd(ctx, properties); err != nil { return err } - durAdd := time.Since(from).Seconds() - fromWrite := time.Now() - - if err = WriteContext(ctx, w); err != nil { - return err - } - - durWrite := durAdd + time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "add keyword, write", durRead, durVal, durOpt, durWrite, durTotal) - - return nil + return WriteContext(ctx, w) } // AddPropertiesFile adds properties to inFile's infodict and writes the result to outFile. @@ -136,14 +121,11 @@ func RemoveProperties(rs io.ReadSeeker, w io.Writer, properties []string, conf * } conf.Cmd = model.REMOVEPROPERTIES - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } - from := time.Now() - var ok bool if ok, err = pdfcpu.PropertiesRemove(ctx, properties); err != nil { return err @@ -152,17 +134,7 @@ func RemoveProperties(rs io.ReadSeeker, w io.Writer, properties []string, conf * return errors.New("no property removed") } - durRemove := time.Since(from).Seconds() - fromWrite := time.Now() - if err = WriteContext(ctx, w); err != nil { - return err - } - - durWrite := durRemove + time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "remove prop, write", durRead, durVal, durOpt, durWrite, durTotal) - - return nil + return WriteContext(ctx, w) } // RemovePropertiesFile deletes properties from inFile's infodict and writes the result to outFile. diff --git a/pkg/api/resize.go b/pkg/api/resize.go index 1791d13a..7476f6cd 100644 --- a/pkg/api/resize.go +++ b/pkg/api/resize.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -38,7 +37,7 @@ func Resize(rs io.ReadSeeker, w io.Writer, selectedPages []string, resize *model } conf.Cmd = model.RESIZE - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } diff --git a/pkg/api/rotate.go b/pkg/api/rotate.go index baec61da..bb3b1f8b 100644 --- a/pkg/api/rotate.go +++ b/pkg/api/rotate.go @@ -19,9 +19,7 @@ package api import ( "io" "os" - "time" - "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" "github.com/pkg/errors" @@ -38,8 +36,7 @@ func Rotate(rs io.ReadSeeker, w io.Writer, rotation int, selectedPages []string, } conf.Cmd = model.ROTATE - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -48,7 +45,6 @@ func Rotate(rs io.ReadSeeker, w io.Writer, rotation int, selectedPages []string, return err } - from := time.Now() pages, err := PagesForPageSelection(ctx.PageCount, selectedPages, true, true) if err != nil { return err @@ -58,23 +54,11 @@ func Rotate(rs io.ReadSeeker, w io.Writer, rotation int, selectedPages []string, return err } - log.Stats.Printf("XRefTable:\n%s\n", ctx) - durStamp := time.Since(from).Seconds() - fromWrite := time.Now() - if err = ValidateContext(ctx); err != nil { return err } - if err = WriteContext(ctx, w); err != nil { - return err - } - - durWrite := durStamp + time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "rotate, write", durRead, durVal, durOpt, durWrite, durTotal) - - return nil + return WriteContext(ctx, w) } // RotateFile rotates selected pages of inFile clockwise by rotation degrees and writes the result to outFile. diff --git a/pkg/api/split.go b/pkg/api/split.go index adf2d0a2..f9db3f98 100644 --- a/pkg/api/split.go +++ b/pkg/api/split.go @@ -23,7 +23,6 @@ import ( "path/filepath" "strconv" "strings" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -84,7 +83,7 @@ func context(rs io.ReadSeeker, conf *model.Configuration) (*model.Context, error } conf.Cmd = model.SPLIT - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return nil, err } diff --git a/pkg/api/stamp.go b/pkg/api/stamp.go index 3b631eb8..c00b6424 100644 --- a/pkg/api/stamp.go +++ b/pkg/api/stamp.go @@ -19,7 +19,6 @@ package api import ( "io" "os" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -48,14 +47,11 @@ func AddWatermarksMap(rs io.ReadSeeker, w io.Writer, m map[int]*model.Watermark, return errors.New("pdfcpu: missing watermarks") } - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } - from := time.Now() - if err = pdfcpu.AddWatermarksMap(ctx, m); err != nil { return err } @@ -68,18 +64,7 @@ func AddWatermarksMap(rs io.ReadSeeker, w io.Writer, m map[int]*model.Watermark, return err } - durStamp := time.Since(from).Seconds() - fromWrite := time.Now() - - if err = WriteContext(ctx, w); err != nil { - return err - } - - durWrite := durStamp + time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "watermark, write", durRead, durVal, durOpt, durWrite, durTotal) - - return nil + return WriteContext(ctx, w) } // AddWatermarksMapFile adds watermarks to corresponding pages in m of inFile and writes the result to outFile. @@ -138,14 +123,11 @@ func AddWatermarksSliceMap(rs io.ReadSeeker, w io.Writer, m map[int][]*model.Wat return errors.New("pdfcpu: missing watermarks") } - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } - from := time.Now() - if err = pdfcpu.AddWatermarksSliceMap(ctx, m); err != nil { return err } @@ -158,18 +140,7 @@ func AddWatermarksSliceMap(rs io.ReadSeeker, w io.Writer, m map[int][]*model.Wat return err } - durStamp := time.Since(from).Seconds() - fromWrite := time.Now() - - if err = WriteContext(ctx, w); err != nil { - return err - } - - durWrite := durStamp + time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "watermark, write", durRead, durVal, durOpt, durWrite, durTotal) - - return nil + return WriteContext(ctx, w) } // AddWatermarksSliceMapFile adds watermarks to corresponding pages in m of inFile and writes the result to outFile. @@ -229,8 +200,7 @@ func AddWatermarks(rs io.ReadSeeker, w io.Writer, selectedPages []string, wm *mo return errors.New("pdfcpu: missing watermark configuration") } - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -239,7 +209,6 @@ func AddWatermarks(rs io.ReadSeeker, w io.Writer, selectedPages []string, wm *mo return err } - from := time.Now() var pages types.IntSet pages, err = PagesForPageSelection(ctx.PageCount, selectedPages, true, true) if err != nil { @@ -258,18 +227,7 @@ func AddWatermarks(rs io.ReadSeeker, w io.Writer, selectedPages []string, wm *mo return err } - durStamp := time.Since(from).Seconds() - fromWrite := time.Now() - - if err = WriteContext(ctx, w); err != nil { - return err - } - - durWrite := durStamp + time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "watermark, write", durRead, durVal, durOpt, durWrite, durTotal) - - return nil + return WriteContext(ctx, w) } // AddWatermarksFile adds watermarks to all selected pages of inFile and writes the result to outFile. @@ -324,8 +282,7 @@ func RemoveWatermarks(rs io.ReadSeeker, w io.Writer, selectedPages []string, con } conf.Cmd = model.REMOVEWATERMARKS - fromStart := time.Now() - ctx, durRead, durVal, durOpt, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } @@ -334,7 +291,6 @@ func RemoveWatermarks(rs io.ReadSeeker, w io.Writer, selectedPages []string, con return err } - from := time.Now() pages, err := PagesForPageSelection(ctx.PageCount, selectedPages, true, true) if err != nil { return err @@ -352,18 +308,7 @@ func RemoveWatermarks(rs io.ReadSeeker, w io.Writer, selectedPages []string, con return err } - durStamp := time.Since(from).Seconds() - fromWrite := time.Now() - - if err = WriteContext(ctx, w); err != nil { - return err - } - - durWrite := durStamp + time.Since(fromWrite).Seconds() - durTotal := time.Since(fromStart).Seconds() - logOperationStats(ctx, "watermark, write", durRead, durVal, durOpt, durWrite, durTotal) - - return nil + return WriteContext(ctx, w) } // RemoveWatermarksFile removes watermarks from all selected pages of inFile and writes the result to outFile. diff --git a/pkg/api/test/bookmark_test.go b/pkg/api/test/bookmark_test.go index 4faf4aed..fa4c131b 100644 --- a/pkg/api/test/bookmark_test.go +++ b/pkg/api/test/bookmark_test.go @@ -20,7 +20,6 @@ import ( "os" "path/filepath" "testing" - "time" "github.com/pdfcpu/pdfcpu/pkg/api" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -49,7 +48,7 @@ func listBookmarksFile(t *testing.T, fileName string, conf *model.Configuration) } conf.Cmd = model.LISTBOOKMARKS - ctx, _, _, _, err := api.ReadValidateAndOptimize(f, conf, time.Now()) + ctx, err := api.ReadValidateAndOptimize(f, conf) if err != nil { t.Fatalf("%s ReadValidateAndOptimize: %v\n", msg, err) } diff --git a/pkg/api/test/box_test.go b/pkg/api/test/box_test.go index def37845..bd26e780 100644 --- a/pkg/api/test/box_test.go +++ b/pkg/api/test/box_test.go @@ -20,7 +20,6 @@ import ( "os" "path/filepath" "testing" - "time" "github.com/pdfcpu/pdfcpu/pkg/api" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/model" @@ -38,7 +37,7 @@ func listBoxes(t *testing.T, fileName string, pb *model.PageBoundaries) ([]strin } defer f.Close() - ctx, _, _, _, err := api.ReadValidateAndOptimize(f, conf, time.Now()) + ctx, err := api.ReadValidateAndOptimize(f, conf) if err != nil { t.Fatalf("%s ReadValidateAndOptimize: %v\n", msg, err) } diff --git a/pkg/api/test/encryption_test.go b/pkg/api/test/encryption_test.go index c997af39..37b4ad60 100644 --- a/pkg/api/test/encryption_test.go +++ b/pkg/api/test/encryption_test.go @@ -20,7 +20,6 @@ import ( "os" "path/filepath" "testing" - "time" "github.com/pdfcpu/pdfcpu/pkg/api" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -41,7 +40,7 @@ func listPermissions(t *testing.T, fileName string) ([]string, error) { conf := model.NewDefaultConfiguration() conf.Cmd = model.LISTPERMISSIONS - ctx, _, _, _, err := api.ReadValidateAndOptimize(f, conf, time.Now()) + ctx, err := api.ReadValidateAndOptimize(f, conf) if err != nil { return nil, err } diff --git a/pkg/api/test/form_test.go b/pkg/api/test/form_test.go index 72ce00db..c1e90981 100644 --- a/pkg/api/test/form_test.go +++ b/pkg/api/test/form_test.go @@ -20,7 +20,6 @@ import ( "os" "path/filepath" "testing" - "time" "github.com/pdfcpu/pdfcpu/pkg/api" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu/form" @@ -47,7 +46,7 @@ func listFormFieldsFile(t *testing.T, inFile string, conf *model.Configuration) } defer f.Close() - ctx, _, _, _, err := api.ReadValidateAndOptimize(f, conf, time.Now()) + ctx, err := api.ReadValidateAndOptimize(f, conf) if err != nil { t.Fatalf("%s: %v\n", msg, err) } diff --git a/pkg/api/test/property_test.go b/pkg/api/test/property_test.go index c9c91277..ca25ab00 100644 --- a/pkg/api/test/property_test.go +++ b/pkg/api/test/property_test.go @@ -20,7 +20,6 @@ import ( "os" "path/filepath" "testing" - "time" "github.com/pdfcpu/pdfcpu/pkg/api" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -45,7 +44,7 @@ func listPropertiesFile(t *testing.T, fileName string, conf *model.Configuration } conf.Cmd = model.LISTPROPERTIES - ctx, _, _, _, err := api.ReadValidateAndOptimize(f, conf, time.Now()) + ctx, err := api.ReadValidateAndOptimize(f, conf) if err != nil { t.Fatalf("%s ReadValidateAndOptimize: %v\n", msg, err) } diff --git a/pkg/api/trim.go b/pkg/api/trim.go index 5b79495a..75c8373d 100644 --- a/pkg/api/trim.go +++ b/pkg/api/trim.go @@ -20,7 +20,6 @@ import ( "io" "os" "sort" - "time" "github.com/pdfcpu/pdfcpu/pkg/log" "github.com/pdfcpu/pdfcpu/pkg/pdfcpu" @@ -40,8 +39,7 @@ func Trim(rs io.ReadSeeker, w io.Writer, selectedPages []string, conf *model.Con } conf.Cmd = model.TRIM - fromStart := time.Now() - ctx, _, _, _, err := ReadValidateAndOptimize(rs, conf, fromStart) + ctx, err := ReadValidateAndOptimize(rs, conf) if err != nil { return err } diff --git a/pkg/api/viewerPreferences.go b/pkg/api/viewerPreferences.go index d36b8e81..e49287a0 100644 --- a/pkg/api/viewerPreferences.go +++ b/pkg/api/viewerPreferences.go @@ -43,7 +43,7 @@ func ViewerPreferences(rs io.ReadSeeker, conf *model.Configuration) (*model.View } conf.Cmd = model.LISTVIEWERPREFERENCES - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return nil, nil, err } @@ -86,7 +86,7 @@ func ListViewerPreferences(rs io.ReadSeeker, all bool, conf *model.Configuration } conf.Cmd = model.LISTVIEWERPREFERENCES - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -178,7 +178,7 @@ func SetViewerPreferences(rs io.ReadSeeker, w io.Writer, vp model.ViewerPreferen } conf.Cmd = model.SETVIEWERPREFERENCES - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return err } @@ -352,7 +352,7 @@ func ResetViewerPreferences(rs io.ReadSeeker, w io.Writer, conf *model.Configura } conf.Cmd = model.RESETVIEWERPREFERENCES - ctx, _, _, err := readAndValidate(rs, conf, time.Now()) + ctx, err := ReadAndValidate(rs, conf) if err != nil { return err } @@ -363,11 +363,7 @@ func ResetViewerPreferences(rs io.ReadSeeker, w io.Writer, conf *model.Configura delete(ctx.RootDict, "ViewerPreferences") - if err = WriteContext(ctx, w); err != nil { - return err - } - - return nil + return WriteContext(ctx, w) } // ResetViewerPreferencesFile resets inFile's viewer preferences and writes the result to outFile. diff --git a/pkg/cli/list.go b/pkg/cli/list.go index ed8896fa..f015bb94 100644 --- a/pkg/cli/list.go +++ b/pkg/cli/list.go @@ -43,7 +43,7 @@ func listAttachments(rs io.ReadSeeker, conf *model.Configuration, withDesc, sort } conf.Cmd = model.LISTATTACHMENTS - ctx, _, _, _, err := api.ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := api.ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -120,7 +120,7 @@ func listBoxes(rs io.ReadSeeker, selectedPages []string, pb *model.PageBoundarie } conf.Cmd = model.LISTBOXES - ctx, _, _, _, err := api.ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := api.ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -160,7 +160,7 @@ func listFormFields(rs io.ReadSeeker, conf *model.Configuration) ([]string, erro } conf.Cmd = model.LISTFORMFIELDS - ctx, _, _, _, err := api.ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := api.ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -216,7 +216,7 @@ func listImages(rs io.ReadSeeker, selectedPages []string, conf *model.Configurat } conf.Cmd = model.LISTIMAGES - ctx, _, _, _, err := api.ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := api.ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -376,7 +376,7 @@ func listPermissions(rs io.ReadSeeker, conf *model.Configuration) ([]string, err } conf.Cmd = model.LISTPERMISSIONS - ctx, _, _, _, err := api.ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := api.ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -431,7 +431,7 @@ func listProperties(rs io.ReadSeeker, conf *model.Configuration) ([]string, erro } conf.Cmd = model.LISTPROPERTIES - ctx, _, _, _, err := api.ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := api.ReadAndValidate(rs, conf) if err != nil { return nil, err } @@ -462,7 +462,7 @@ func listBookmarks(rs io.ReadSeeker, conf *model.Configuration) ([]string, error } conf.Cmd = model.LISTBOOKMARKS - ctx, _, _, _, err := api.ReadValidateAndOptimize(rs, conf, time.Now()) + ctx, err := api.ReadAndValidate(rs, conf) if err != nil { return nil, err }