Skip to content

Commit

Permalink
Fix #353
Browse files Browse the repository at this point in the history
  • Loading branch information
hhrutter committed Jul 13, 2021
1 parent 63d5ab6 commit 281745f
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 90 deletions.
13 changes: 3 additions & 10 deletions pkg/api/extract.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ import (
)

// ExtractImagesRaw returns []pdfcpu.Image containing io.Readers for images contained in selectedPages.
// Beware of memory intensive returned slice.
func ExtractImagesRaw(rs io.ReadSeeker, selectedPages []string, conf *pdfcpu.Configuration) ([]pdfcpu.Image, error) {
if rs == nil {
return nil, errors.New("pdfcpu: ExtractImages: Please provide rs")
Expand All @@ -40,10 +41,7 @@ func ExtractImagesRaw(rs io.ReadSeeker, selectedPages []string, conf *pdfcpu.Con
conf = pdfcpu.NewDefaultConfiguration()
}

var images []pdfcpu.Image

fromStart := time.Now()
ctx, durRead, durVal, durOpt, err := readValidateAndOptimize(rs, conf, fromStart)
ctx, _, _, _, err := readValidateAndOptimize(rs, conf, time.Now())
if err != nil {
return nil, err
}
Expand All @@ -52,12 +50,12 @@ func ExtractImagesRaw(rs io.ReadSeeker, selectedPages []string, conf *pdfcpu.Con
return nil, err
}

fromWrite := time.Now()
pages, err := PagesForPageSelection(ctx.PageCount, selectedPages, true)
if err != nil {
return nil, err
}

var images []pdfcpu.Image
for i, v := range pages {
if !v {
continue
Expand All @@ -69,11 +67,6 @@ func ExtractImagesRaw(rs io.ReadSeeker, selectedPages []string, conf *pdfcpu.Con
images = append(images, ii...)
}

durWrite := time.Since(fromWrite).Seconds()
durTotal := time.Since(fromStart).Seconds()
log.Stats.Printf("XRefTable:\n%s\n", ctx)
pdfcpu.TimingStats("write images", durRead, durVal, durOpt, durWrite, durTotal)

return images, nil
}

Expand Down
12 changes: 6 additions & 6 deletions pkg/pdfcpu/extract.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func (ctx *Context) StreamLength(sd *StreamDict) (int64, error) {
return 0, nil
}

i, err := ctx.DereferenceInteger(indRef)
i, err := ctx.DereferenceInteger(*indRef)
if err != nil || i == nil {
return 0, err
}
Expand Down Expand Up @@ -100,13 +100,13 @@ func colorSpaceNameComponents(cs Name) int {
}

// ColorSpaceComponents returns the corresponding number of used color components for sd's colorspace.
func (ctx *Context) ColorSpaceComponents(sd *StreamDict) (int, error) {
func (xRefTable *XRefTable) ColorSpaceComponents(sd *StreamDict) (int, error) {
o, found := sd.Find("ColorSpace")
if !found {
return 0, nil
}

o, err := ctx.Dereference(o)
o, err := xRefTable.Dereference(o)
if err != nil {
return 0, err
}
Expand All @@ -123,7 +123,7 @@ func (ctx *Context) ColorSpaceComponents(sd *StreamDict) (int, error) {
return 3, nil

case ICCBasedCS:
iccProfileStream, _, err := ctx.DereferenceStreamDict(cs[1])
iccProfileStream, _, err := xRefTable.DereferenceStreamDict(cs[1])
if err != nil {
return 0, err
}
Expand All @@ -136,7 +136,7 @@ func (ctx *Context) ColorSpaceComponents(sd *StreamDict) (int, error) {

case IndexedCS:

baseCS, err := ctx.Dereference(cs[1])
baseCS, err := xRefTable.Dereference(cs[1])
if err != nil {
return 0, err
}
Expand All @@ -146,7 +146,7 @@ func (ctx *Context) ColorSpaceComponents(sd *StreamDict) (int, error) {
return colorSpaceNameComponents(cs), nil

case Array:
iccProfileStream, _, err := ctx.DereferenceStreamDict(cs[1])
iccProfileStream, _, err := xRefTable.DereferenceStreamDict(cs[1])
if err != nil {
return 0, err
}
Expand Down

0 comments on commit 281745f

Please sign in to comment.