summaryrefslogtreecommitdiff
path: root/def.go
diff options
context:
space:
mode:
authorClaudio Felber <claudio.felber@perron2.ch>2015-06-27 18:20:22 +0200
committerClaudio Felber <claudio.felber@perron2.ch>2015-06-27 18:20:22 +0200
commit5cb99b114890dc1ef96e06b70f26fe5cfae63db7 (patch)
tree50ac87790387ea11797a1d06e5d31a37a349dc86 /def.go
parent93779987c426b8c09d620aa6bc48b95ffbef282a (diff)
Add SetFontLoader() method to load fonts from arbitrary locations
Diffstat (limited to 'def.go')
-rw-r--r--def.go11
1 files changed, 11 insertions, 0 deletions
diff --git a/def.go b/def.go
index df21e05..33eca47 100644
--- a/def.go
+++ b/def.go
@@ -18,6 +18,7 @@ package gofpdf
import (
"bytes"
+ "io"
)
// Version of FPDF from which this package is derived
@@ -132,6 +133,15 @@ type InitType struct {
FontDirStr string
}
+// FontLoader is used to read fonts (JSON font specification and zlib compressed font binaries)
+// from arbitrary locations (e.g. files, zip files, embedded font resources).
+//
+// Open provides an io.Reader for the specified font file (.json or .z). The file name
+// does never include a path. Open returns an error if the specified file cannot be opened.
+type FontLoader interface {
+ Open(name string) (io.Reader, error)
+}
+
// Fpdf is the principal structure for creating a single PDF document
type Fpdf struct {
page int // current page number
@@ -160,6 +170,7 @@ type Fpdf struct {
lasth float64 // height of last printed cell
lineWidth float64 // line width in user unit
fontpath string // path containing fonts
+ fontLoader FontLoader // used to load font files from arbitrary locations
coreFonts map[string]bool // array of core font names
fonts map[string]fontDefType // array of used fonts
fontFiles map[string]fontFileType // array of font files