almost 8 years ago
Keď som pred piatimi rokmi prvý krát videl Go, tak ma odradil malý počet open source knižníc. Teraz je knižníc celkom dosť, ale aj tak som mal obavy či dokážem urobiť to čo som potreboval:
- Urobiť funkciu, ktorá vyrobí obrázok QR kódu
- Vyrobiť PDF a nakresliť tam ten obrázok
- Ideálne to urobiť všetko bez potreby ukladania do súboru, pretože to má byť webová služba
Nakoniec to nebol žiadny problém. Tu je výsledný program aj s ukážkou zápisu pdf do súboru.
package main
import (
"bufio"
"bytes"
"code.google.com/p/rsc/qr"
"github.com/jung-kurt/gofpdf"
"io/ioutil"
)
func main() {
b := CreatePdf("http://riom-blog.logdown.com/")
ioutil.WriteFile("testqr.pdf", b, 0777)
}
func CreatePdf(qrc string) []byte {
pdf := gofpdf.New("P", "mm", "A4", "")
pdf.AddPage()
code, err := qr.Encode(qrc, qr.H)
if err != nil {
panic(err)
}
pdf.RegisterImageReader("qrimg", "PNG", bytes.NewReader(code.PNG()))
pdf.Image("qrimg", 50, 50, 50, 50, false, "PNG", 0, "")
var b bytes.Buffer
w := bufio.NewWriter(&b)
pdf.Output(w)
pdf.Close()
w.Flush()
return b.Bytes()
}
BTW fotky ľudí, ktorí skenujú QR kód: http://picturesofpeoplescanningqrcodes.tumblr.com/