diff options
author | Kurt Jung <kurt.w.jung@gmail.com> | 2015-08-27 07:21:07 -0400 |
---|---|---|
committer | Kurt Jung <kurt.w.jung@gmail.com> | 2015-08-27 07:21:07 -0400 |
commit | 968e3672ed1c1e4ff1cb1729584235ab1271a7e9 (patch) | |
tree | c8122c32e622e7370116e1e71665da343ab7d647 | |
parent | 64a844dc1fdc7375b1ec088b1ffd696c02d19e7c (diff) | |
parent | 2da5422f1ef9de941136c24d597bbabe081e5b93 (diff) |
Merge branch 'contribution-package' of https://github.com/jelmersnoeck/gofpdf into jelmersnoeck-contribution-package
-rw-r--r-- | contrib/httpimg/httpimg.go | 32 | ||||
-rw-r--r-- | contrib/httpimg/httpimg_test.go | 24 |
2 files changed, 56 insertions, 0 deletions
diff --git a/contrib/httpimg/httpimg.go b/contrib/httpimg/httpimg.go new file mode 100644 index 0000000..10afcc8 --- /dev/null +++ b/contrib/httpimg/httpimg.go @@ -0,0 +1,32 @@ +package httpimg + +import ( + "github.com/jung-kurt/gofpdf" + "net/http" +) + +// 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) { + info = f.GetImageInfo(urlStr) + + if info != nil { + return + } + + resp, err := http.Get(urlStr) + + if err != nil { + f.SetError(err) + return + } + + defer resp.Body.Close() + + if tp == "" { + tp = f.ImageTypeFromMime(resp.Header["Content-Type"][0]) + } + + return f.RegisterImageReader(urlStr, tp, resp.Body) +} diff --git a/contrib/httpimg/httpimg_test.go b/contrib/httpimg/httpimg_test.go new file mode 100644 index 0000000..cf6e8d1 --- /dev/null +++ b/contrib/httpimg/httpimg_test.go @@ -0,0 +1,24 @@ +package httpimg_test + +import ( + "github.com/jung-kurt/gofpdf" + "github.com/jung-kurt/gofpdf/contrib/httpimg" + "github.com/jung-kurt/gofpdf/internal/example" +) + +func ExampleRegister() { + pdf := gofpdf.New("", "", "", "") + pdf.SetFont("Helvetica", "", 12) + pdf.SetFillColor(200, 200, 220) + pdf.AddPage() + + url := "https://github.com/jung-kurt/gofpdf/raw/master/image/logo_gofpdf.jpg?raw=true" + httpimg.Register(pdf, url, "") + pdf.Image(url, 100, 100, 20, 20, false, "", 0, "") + + fileStr := example.Filename("contrib_httpimg_Register") + err := pdf.OutputFileAndClose(fileStr) + example.Summary(err, fileStr) + // Output: + // Successfully generated ../../pdf/contrib_httpimg_Register.pdf +} |