summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contrib/fhttp/fhttp.go26
-rw-r--r--contrib/fhttp/fhttp_test.go43
-rw-r--r--contrib/fhttp/pdf/.gitignore1
-rw-r--r--contrib/fhttp/pdf/.gitkeep0
4 files changed, 70 insertions, 0 deletions
diff --git a/contrib/fhttp/fhttp.go b/contrib/fhttp/fhttp.go
new file mode 100644
index 0000000..119e30e
--- /dev/null
+++ b/contrib/fhttp/fhttp.go
@@ -0,0 +1,26 @@
+package fhttp
+
+import (
+ "github.com/jung-kurt/gofpdf"
+ "net/http"
+)
+
+// RegisterRemoteImage registers a remote 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 RegisterRemoteImage(f *gofpdf.Fpdf, urlStr, tp string) (info *gofpdf.ImageInfoType) {
+ 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/fhttp/fhttp_test.go b/contrib/fhttp/fhttp_test.go
new file mode 100644
index 0000000..57bf175
--- /dev/null
+++ b/contrib/fhttp/fhttp_test.go
@@ -0,0 +1,43 @@
+package fhttp_test
+
+import (
+ "fmt"
+ "github.com/jung-kurt/gofpdf"
+ "github.com/jung-kurt/gofpdf/contrib/fhttp"
+ "path/filepath"
+)
+
+const (
+ cnGofpdfDir = "./"
+ cnExampleDir = cnGofpdfDir + "/pdf"
+)
+
+func exampleFilename(baseStr string) string {
+ return filepath.Join(cnExampleDir, baseStr+".pdf")
+}
+
+func summary(err error, fileStr string) {
+ if err == nil {
+ fileStr = filepath.ToSlash(fileStr)
+ fmt.Printf("Successfully generated %s\n", fileStr)
+ } else {
+ fmt.Println(err)
+ }
+}
+
+func ExampleFpdf_AddRemoteImage() {
+ 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"
+ fhttp.RegisterRemoteImage(pdf, url, "")
+ pdf.Image(url, 100, 100, 20, 20, false, "", 0, "")
+
+ fileStr := exampleFilename("Fpdf_AddRemoteImage")
+ err := pdf.OutputFileAndClose(fileStr)
+ summary(err, fileStr)
+ // Output:
+ // Successfully generated pdf/Fpdf_AddRemoteImage.pdf
+}
diff --git a/contrib/fhttp/pdf/.gitignore b/contrib/fhttp/pdf/.gitignore
new file mode 100644
index 0000000..a136337
--- /dev/null
+++ b/contrib/fhttp/pdf/.gitignore
@@ -0,0 +1 @@
+*.pdf
diff --git a/contrib/fhttp/pdf/.gitkeep b/contrib/fhttp/pdf/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/contrib/fhttp/pdf/.gitkeep