summaryrefslogtreecommitdiff
path: root/def.go
diff options
context:
space:
mode:
authorKurt <kurt.w.jung@gmail.com>2018-11-10 11:03:29 -0500
committerKurt <kurt.w.jung@gmail.com>2018-11-10 11:03:29 -0500
commit8d469f984ef048ff3547911bede39b7b651e8c8c (patch)
treecec153cf2688291b2ee3a694defaaf42449a1122 /def.go
parente200d3e7c7ef20b29a47b67e58b7561f4099e7ae (diff)
parent01381ea7603b12304064fcd01a49b1cc4434b4ca (diff)
Merge branch 'ftr/gob' of https://github.com/d1ngd0/gofpdf into d1ngd0-ftr/gob
Diffstat (limited to 'def.go')
-rw-r--r--def.go96
1 files changed, 96 insertions, 0 deletions
diff --git a/def.go b/def.go
index b4140a9..3c5fa9d 100644
--- a/def.go
+++ b/def.go
@@ -18,6 +18,7 @@ package gofpdf
import (
"bytes"
+ "encoding/gob"
"io"
"time"
)
@@ -175,6 +176,101 @@ type ImageInfoType struct {
dpi float64
}
+func (info *ImageInfoType) GobEncode() ([]byte, error) {
+ w := new(bytes.Buffer)
+ encoder := gob.NewEncoder(w)
+
+ err := encoder.Encode(info.data)
+ if err == nil {
+ err = encoder.Encode(info.smask)
+ }
+ if err == nil {
+ err = encoder.Encode(info.i)
+ }
+ if err == nil {
+ err = encoder.Encode(info.n)
+ }
+ if err == nil {
+ err = encoder.Encode(info.w)
+ }
+ if err == nil {
+ err = encoder.Encode(info.h)
+ }
+ if err == nil {
+ err = encoder.Encode(info.cs)
+ }
+ if err == nil {
+ err = encoder.Encode(info.pal)
+ }
+ if err == nil {
+ err = encoder.Encode(info.bpc)
+ }
+ if err == nil {
+ err = encoder.Encode(info.f)
+ }
+ if err == nil {
+ err = encoder.Encode(info.dp)
+ }
+ if err == nil {
+ err = encoder.Encode(info.trns)
+ }
+ if err == nil {
+ err = encoder.Encode(info.scale)
+ }
+ if err == nil {
+ err = encoder.Encode(info.dpi)
+ }
+
+ return w.Bytes(), err
+}
+
+func (info *ImageInfoType) GobDecode(buf []byte) error {
+ r := bytes.NewBuffer(buf)
+ decoder := gob.NewDecoder(r)
+
+ err := decoder.Decode(&info.data)
+ if err == nil {
+ err = decoder.Decode(&info.smask)
+ }
+ if err == nil {
+ err = decoder.Decode(&info.i)
+ }
+ if err == nil {
+ err = decoder.Decode(&info.n)
+ }
+ if err == nil {
+ err = decoder.Decode(&info.w)
+ }
+ if err == nil {
+ err = decoder.Decode(&info.h)
+ }
+ if err == nil {
+ err = decoder.Decode(&info.cs)
+ }
+ if err == nil {
+ err = decoder.Decode(&info.pal)
+ }
+ if err == nil {
+ err = decoder.Decode(&info.bpc)
+ }
+ if err == nil {
+ err = decoder.Decode(&info.f)
+ }
+ if err == nil {
+ err = decoder.Decode(&info.dp)
+ }
+ if err == nil {
+ err = decoder.Decode(&info.trns)
+ }
+ if err == nil {
+ err = decoder.Decode(&info.scale)
+ }
+ if err == nil {
+ err = decoder.Decode(&info.dpi)
+ }
+ return err
+}
+
// PointConvert returns the value of pt, expressed in points (1/72 inch), as a
// value expressed in the unit of measure specified in New(). Since font
// management in Fpdf uses points, this method can help with line height