Kurt Jungs Auslieferungszustand
This commit is contained in:
43
contrib/httpimg/httpimg.go
Normal file
43
contrib/httpimg/httpimg.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package httpimg
|
||||
|
||||
import (
|
||||
"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 httpimgPdf, 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)
|
||||
}
|
23
contrib/httpimg/httpimg_test.go
Normal file
23
contrib/httpimg/httpimg_test.go
Normal file
@@ -0,0 +1,23 @@
|
||||
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("L", "mm", "A4", "")
|
||||
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, 15, 15, 267, 0, false, "", 0, "")
|
||||
fileStr := example.Filename("contrib_httpimg_Register")
|
||||
err := pdf.OutputFileAndClose(fileStr)
|
||||
example.Summary(err, fileStr)
|
||||
// Output:
|
||||
// Successfully generated ../../pdf/contrib_httpimg_Register.pdf
|
||||
}
|
Reference in New Issue
Block a user