From a1dcf58b5248a95377100a535eb7d20f708cf6a0 Mon Sep 17 00:00:00 2001 From: Jelmer Snoeck Date: Wed, 26 Aug 2015 19:43:02 +0100 Subject: Httpimg: rename package. --- contrib/httpimg/httpimg.go | 32 ++++++++++++++++++++++++++++++ contrib/httpimg/httpimg_test.go | 43 +++++++++++++++++++++++++++++++++++++++++ contrib/httpimg/pdf/.gitignore | 1 + contrib/httpimg/pdf/.gitkeep | 0 4 files changed, 76 insertions(+) create mode 100644 contrib/httpimg/httpimg.go create mode 100644 contrib/httpimg/httpimg_test.go create mode 100644 contrib/httpimg/pdf/.gitignore create mode 100644 contrib/httpimg/pdf/.gitkeep (limited to 'contrib/httpimg') diff --git a/contrib/httpimg/httpimg.go b/contrib/httpimg/httpimg.go new file mode 100644 index 0000000..6025469 --- /dev/null +++ b/contrib/httpimg/httpimg.go @@ -0,0 +1,32 @@ +package httpimg + +import ( + "github.com/jung-kurt/gofpdf" + "net/http" +) + +// RegisterHttpImage 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 RegisterHttpImage(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..d1b97bb --- /dev/null +++ b/contrib/httpimg/httpimg_test.go @@ -0,0 +1,43 @@ +package httpimg_test + +import ( + "fmt" + "github.com/jung-kurt/gofpdf" + "github.com/jung-kurt/gofpdf/contrib/httpimg" + "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_AddHttpImage() { + 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.RegisterHttpImage(pdf, url, "") + pdf.Image(url, 100, 100, 20, 20, false, "", 0, "") + + fileStr := exampleFilename("Fpdf_AddHttpImage") + err := pdf.OutputFileAndClose(fileStr) + summary(err, fileStr) + // Output: + // Successfully generated pdf/Fpdf_AddHttpImage.pdf +} diff --git a/contrib/httpimg/pdf/.gitignore b/contrib/httpimg/pdf/.gitignore new file mode 100644 index 0000000..a136337 --- /dev/null +++ b/contrib/httpimg/pdf/.gitignore @@ -0,0 +1 @@ +*.pdf diff --git a/contrib/httpimg/pdf/.gitkeep b/contrib/httpimg/pdf/.gitkeep new file mode 100644 index 0000000..e69de29 -- cgit v1.2.1-24-ge1ad From 74253e5c9ca7edeee98bcf4b38d9ef1d00fe7a0e Mon Sep 17 00:00:00 2001 From: Jelmer Snoeck Date: Wed, 26 Aug 2015 19:44:21 +0100 Subject: HttpImg: use `Register` method. By changing the name, we can use a uniform name across several packages. --- contrib/httpimg/httpimg.go | 8 ++++---- contrib/httpimg/httpimg_test.go | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) (limited to 'contrib/httpimg') diff --git a/contrib/httpimg/httpimg.go b/contrib/httpimg/httpimg.go index 6025469..10afcc8 100644 --- a/contrib/httpimg/httpimg.go +++ b/contrib/httpimg/httpimg.go @@ -5,10 +5,10 @@ import ( "net/http" ) -// RegisterHttpImage 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 RegisterHttpImage(f *gofpdf.Fpdf, urlStr, tp string) (info *gofpdf.ImageInfoType) { +// 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 { diff --git a/contrib/httpimg/httpimg_test.go b/contrib/httpimg/httpimg_test.go index d1b97bb..cc007c6 100644 --- a/contrib/httpimg/httpimg_test.go +++ b/contrib/httpimg/httpimg_test.go @@ -32,7 +32,7 @@ func ExampleFpdf_AddHttpImage() { pdf.AddPage() url := "https://github.com/jung-kurt/gofpdf/raw/master/image/logo_gofpdf.jpg?raw=true" - httpimg.RegisterHttpImage(pdf, url, "") + httpimg.Register(pdf, url, "") pdf.Image(url, 100, 100, 20, 20, false, "", 0, "") fileStr := exampleFilename("Fpdf_AddHttpImage") -- cgit v1.2.1-24-ge1ad From 211fa5aeadb5acf6975059d76d9a05be9335e7a6 Mon Sep 17 00:00:00 2001 From: Jelmer Snoeck Date: Wed, 26 Aug 2015 20:40:33 +0100 Subject: Examples: rename function/file for clarification. --- contrib/httpimg/httpimg_test.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'contrib/httpimg') diff --git a/contrib/httpimg/httpimg_test.go b/contrib/httpimg/httpimg_test.go index cc007c6..3cd4218 100644 --- a/contrib/httpimg/httpimg_test.go +++ b/contrib/httpimg/httpimg_test.go @@ -25,7 +25,7 @@ func summary(err error, fileStr string) { } } -func ExampleFpdf_AddHttpImage() { +func ExampleRegister() { pdf := gofpdf.New("", "", "", "") pdf.SetFont("Helvetica", "", 12) pdf.SetFillColor(200, 200, 220) @@ -35,9 +35,9 @@ func ExampleFpdf_AddHttpImage() { httpimg.Register(pdf, url, "") pdf.Image(url, 100, 100, 20, 20, false, "", 0, "") - fileStr := exampleFilename("Fpdf_AddHttpImage") + fileStr := exampleFilename("contrib_httpimg_Register") err := pdf.OutputFileAndClose(fileStr) summary(err, fileStr) // Output: - // Successfully generated pdf/Fpdf_AddHttpImage.pdf + // Successfully generated pdf/contrib_httpimg_Register.pdf } -- cgit v1.2.1-24-ge1ad From 38c257b759987e1d7660b8fa3d62103bd99a76ff Mon Sep 17 00:00:00 2001 From: Jelmer Snoeck Date: Wed, 26 Aug 2015 20:41:30 +0100 Subject: Httpimg: cleanup pdf path on with tests. --- contrib/httpimg/httpimg_test.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'contrib/httpimg') diff --git a/contrib/httpimg/httpimg_test.go b/contrib/httpimg/httpimg_test.go index 3cd4218..8639bda 100644 --- a/contrib/httpimg/httpimg_test.go +++ b/contrib/httpimg/httpimg_test.go @@ -4,6 +4,7 @@ import ( "fmt" "github.com/jung-kurt/gofpdf" "github.com/jung-kurt/gofpdf/contrib/httpimg" + "os" "path/filepath" ) @@ -12,6 +13,20 @@ const ( cnExampleDir = cnGofpdfDir + "/pdf" ) +func init() { + cleanup() +} + +func cleanup() { + filepath.Walk(cnExampleDir, + func(path string, info os.FileInfo, err error) (reterr error) { + if path[len(path)-4:] == ".pdf" { + os.Remove(path) + } + return + }) +} + func exampleFilename(baseStr string) string { return filepath.Join(cnExampleDir, baseStr+".pdf") } -- cgit v1.2.1-24-ge1ad From a213cdab820620d8ce3df2fc63a84a8e97eaf251 Mon Sep 17 00:00:00 2001 From: Jelmer Snoeck Date: Thu, 27 Aug 2015 08:21:52 +0100 Subject: Use internal example package for testing. --- contrib/httpimg/httpimg_test.go | 42 ++++------------------------------------- 1 file changed, 4 insertions(+), 38 deletions(-) (limited to 'contrib/httpimg') diff --git a/contrib/httpimg/httpimg_test.go b/contrib/httpimg/httpimg_test.go index 8639bda..cf6e8d1 100644 --- a/contrib/httpimg/httpimg_test.go +++ b/contrib/httpimg/httpimg_test.go @@ -1,45 +1,11 @@ package httpimg_test import ( - "fmt" "github.com/jung-kurt/gofpdf" "github.com/jung-kurt/gofpdf/contrib/httpimg" - "os" - "path/filepath" + "github.com/jung-kurt/gofpdf/internal/example" ) -const ( - cnGofpdfDir = "./" - cnExampleDir = cnGofpdfDir + "/pdf" -) - -func init() { - cleanup() -} - -func cleanup() { - filepath.Walk(cnExampleDir, - func(path string, info os.FileInfo, err error) (reterr error) { - if path[len(path)-4:] == ".pdf" { - os.Remove(path) - } - return - }) -} - -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 ExampleRegister() { pdf := gofpdf.New("", "", "", "") pdf.SetFont("Helvetica", "", 12) @@ -50,9 +16,9 @@ func ExampleRegister() { httpimg.Register(pdf, url, "") pdf.Image(url, 100, 100, 20, 20, false, "", 0, "") - fileStr := exampleFilename("contrib_httpimg_Register") + fileStr := example.Filename("contrib_httpimg_Register") err := pdf.OutputFileAndClose(fileStr) - summary(err, fileStr) + example.Summary(err, fileStr) // Output: - // Successfully generated pdf/contrib_httpimg_Register.pdf + // Successfully generated ../../pdf/contrib_httpimg_Register.pdf } -- cgit v1.2.1-24-ge1ad From 2da5422f1ef9de941136c24d597bbabe081e5b93 Mon Sep 17 00:00:00 2001 From: Jelmer Snoeck Date: Thu, 27 Aug 2015 08:24:31 +0100 Subject: Httpimg: remove pdf folder. This will now be generated in the main pdf folder (`gofpdf/pdf`). --- contrib/httpimg/pdf/.gitignore | 1 - contrib/httpimg/pdf/.gitkeep | 0 2 files changed, 1 deletion(-) delete mode 100644 contrib/httpimg/pdf/.gitignore delete mode 100644 contrib/httpimg/pdf/.gitkeep (limited to 'contrib/httpimg') diff --git a/contrib/httpimg/pdf/.gitignore b/contrib/httpimg/pdf/.gitignore deleted file mode 100644 index a136337..0000000 --- a/contrib/httpimg/pdf/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.pdf diff --git a/contrib/httpimg/pdf/.gitkeep b/contrib/httpimg/pdf/.gitkeep deleted file mode 100644 index e69de29..0000000 -- cgit v1.2.1-24-ge1ad