From 0cf4ace9daf2d702eb6d4f21a608ac121c0d9cc1 Mon Sep 17 00:00:00 2001 From: Jelmer Snoeck Date: Thu, 10 Sep 2015 18:42:08 +0100 Subject: 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. --- contrib/httpimg/httpimg.go | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'contrib/httpimg') 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 { -- cgit v1.2.1-24-ge1ad