summaryrefslogtreecommitdiff
path: root/def.go
diff options
context:
space:
mode:
authorPaul Montag <pmontag@iseeme.com>2018-10-31 19:56:01 -0500
committerPaul Montag <pmontag@iseeme.com>2018-10-31 19:56:01 -0500
commitbb287515d3b5c5b4ca7665a64a9224e8b6038804 (patch)
tree1fda5188725bdb5790afd8019b83c97b1802b3c6 /def.go
parent6421d61dcdc4da19badab16dc2a8af331c4fbbeb (diff)
Added Ability to turn template into a byte string
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 d53e627..4b19a06 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