diff options
| author | Paul Montag <paul.david.montag@gmail.com> | 2018-12-22 18:54:08 -0600 | 
|---|---|---|
| committer | Kurt Jung <kurt.w.jung@gmail.com> | 2018-12-22 19:54:08 -0500 | 
| commit | a3cf901b6d1246d3e00875a3e88c69bee068156d (patch) | |
| tree | 3ae6c45af72e394965ec34fc4bd519b364422786 /fpdf.go | |
| parent | 55a774389a811b454a9ee3dfa78bd28fc5d0ab18 (diff) | |
Updated font id generation and image id (#222)
Generated font ID will now be the same across machines when generating
the same font file.
Generated image Id will now be the same across machines when generating
the same image file.
Diffstat (limited to 'fpdf.go')
| -rw-r--r-- | fpdf.go | 23 | 
1 files changed, 16 insertions, 7 deletions
| @@ -23,7 +23,6 @@ package gofpdf  import (  	"bytes" -	"crypto/sha1"  	"encoding/binary"  	"encoding/json"  	"fmt" @@ -1578,9 +1577,12 @@ func (f *Fpdf) AddFontFromBytes(familyStr, styleStr string, jsonFileBytes, zFile  		return  	} -	// search existing encodings -	info.i = fmt.Sprintf("%x", sha1.Sum(jsonFileBytes)) +	if info.i, err = generateFontID(info); err != nil { +		f.err = err +		return +	} +	// search existing encodings  	if len(info.Diff) > 0 {  		n := -1 @@ -2523,7 +2525,7 @@ func (f *Fpdf) imageOut(info *ImageInfoType, x, y, w, h float64, allowNegativeX,  	}  	// dbg("h %.2f", h)  	// q 85.04 0 0 NaN 28.35 NaN cm /I2 Do Q -	f.outf("q %.5f 0 0 %.5f %.5f %.5f cm /I%d Do Q", w*f.k, h*f.k, x*f.k, (f.h-(y+h))*f.k, info.i) +	f.outf("q %.5f 0 0 %.5f %.5f %.5f cm /I%s Do Q", w*f.k, h*f.k, x*f.k, (f.h-(y+h))*f.k, info.i)  	if link > 0 || len(linkStr) > 0 {  		f.newLink(x, y, w, h, link, linkStr)  	} @@ -2660,7 +2662,10 @@ func (f *Fpdf) RegisterImageOptionsReader(imgName string, options ImageOptions,  	if f.err != nil {  		return  	} -	info.i = len(f.images) + 1 + +	if info.i, f.err = generateImageID(info); f.err != nil { +		return +	}  	f.images[imgName] = info  	return @@ -2952,8 +2957,12 @@ func (f *Fpdf) loadfont(r io.Reader) (def fontDefType) {  	err = json.Unmarshal(buf.Bytes(), &def)  	if err != nil {  		f.err = err +		return +	} + +	if def.i, err = generateFontID(def); err != nil { +		f.err = err  	} -	def.i = fmt.Sprintf("%x", sha1.Sum(buf.Bytes()))  	// dump(def)  	return  } @@ -3556,7 +3565,7 @@ func (f *Fpdf) putxobjectdict() {  		}  		for _, key = range keyList {  			image = f.images[key] -			f.outf("/I%d %d 0 R", image.i, image.n) +			f.outf("/I%s %d 0 R", image.i, image.n)  		}  	}  	{ | 
