diff options
Diffstat (limited to 'contrib')
| -rw-r--r-- | contrib/httpimg/httpimg.go | 32 | ||||
| -rw-r--r-- | contrib/httpimg/httpimg_test.go | 58 | ||||
| -rw-r--r-- | contrib/httpimg/pdf/.gitignore | 1 | ||||
| -rw-r--r-- | contrib/httpimg/pdf/.gitkeep | 0 | 
4 files changed, 91 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..8639bda --- /dev/null +++ b/contrib/httpimg/httpimg_test.go @@ -0,0 +1,58 @@ +package httpimg_test + +import ( +	"fmt" +	"github.com/jung-kurt/gofpdf" +	"github.com/jung-kurt/gofpdf/contrib/httpimg" +	"os" +	"path/filepath" +) + +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) +	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 := exampleFilename("contrib_httpimg_Register") +	err := pdf.OutputFileAndClose(fileStr) +	summary(err, fileStr) +	// Output: +	// Successfully generated pdf/contrib_httpimg_Register.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 --- /dev/null +++ b/contrib/httpimg/pdf/.gitkeep | 
