summaryrefslogtreecommitdiff
path: root/contrib/httpimg
diff options
context:
space:
mode:
authorJelmer Snoeck <jelmer.snoeck@gmail.com>2015-09-10 18:42:08 +0100
committerJelmer Snoeck <jelmer.snoeck@gmail.com>2015-09-10 18:50:56 +0100
commit0cf4ace9daf2d702eb6d4f21a608ac121c0d9cc1 (patch)
tree4c3a9e3ead531dc602d8adc3ef9781c02754a6a6 /contrib/httpimg
parentcac87f231f2c4a3f579070710748ad11c784ea77 (diff)
HttpImg: make Http specific PDF interface.
Instead of forcing the type to be of gofpdf.Fpdf, we now use an interface which could be whatever structure we want. This is useful for third party libraries where they can define their own interface for the PDF generator but still use these contribution packages. HttpImg: add interface comment. Barcode: implement specific PDF interface.
Diffstat (limited to 'contrib/httpimg')
-rw-r--r--contrib/httpimg/httpimg.go15
1 files changed, 13 insertions, 2 deletions
diff --git a/contrib/httpimg/httpimg.go b/contrib/httpimg/httpimg.go
index 10afcc8..7cbf281 100644
--- a/contrib/httpimg/httpimg.go
+++ b/contrib/httpimg/httpimg.go
@@ -1,14 +1,25 @@
package httpimg
import (
- "github.com/jung-kurt/gofpdf"
+ "io"
"net/http"
+
+ "github.com/jung-kurt/gofpdf"
)
+// httpimgPdf is a partial interface that only implements the functions we need
+// from the PDF generator to put the HTTP images on the PDF.
+type httpimgPdf interface {
+ GetImageInfo(imageStr string) *gofpdf.ImageInfoType
+ ImageTypeFromMime(mimeStr string) string
+ RegisterImageReader(imgName, tp string, r io.Reader) *gofpdf.ImageInfoType
+ SetError(err error)
+}
+
// Register registers a HTTP image. Downloading the image from the provided URL
// and adding it to the PDF but not adding it to the page. Use Image() with the
// same URL to add the image to the page.
-func Register(f *gofpdf.Fpdf, urlStr, tp string) (info *gofpdf.ImageInfoType) {
+func Register(f httpimgPdf, urlStr, tp string) (info *gofpdf.ImageInfoType) {
info = f.GetImageInfo(urlStr)
if info != nil {