Skip to content

Instantly share code, notes, and snippets.

@amitv87
Last active November 4, 2017 11:06
Show Gist options
  • Save amitv87/6818d578d17a2435703ada5cc326fdd1 to your computer and use it in GitHub Desktop.
Save amitv87/6818d578d17a2435703ada5cc326fdd1 to your computer and use it in GitHub Desktop.
QR code in pcx format in pure javascript (using golang libraries with help of gohperjs) for tsc barcode printers
# compile go to js
gopherjs build qr_pcx_generator.go
# generate qr code
node test.js
# to view the file the file using ffmpeg
ffmpeg -i new.pcx new.png -y && open new.png
package main
import (
"fmt"
"bytes"
"image"
"github.com/samuel/go-pcx/pcx"
"github.com/skip2/go-qrcode"
"github.com/gopherjs/gopherjs/js"
)
func CreateQR(text string, size int) *js.Object {
buf := &bytes.Buffer{}
png, err := qrcode.Encode(text, qrcode.Highest, size)
img, _, err := image.Decode(bytes.NewReader(png))
if err != nil {
fmt.Println("image.Decode err", text)
fmt.Println(err)
}
if err := pcx.Encode(buf, img); err != nil {
fmt.Println(err)
}
return js.MakeWrapper(buf)
}
func main() {
js.Global.Set("QR", map[string]interface{}{"Create": CreateQR})
}
require('./qr_pcx_generator.js')
var text = 'hello world';
var pcxBuff = QR.Create(text, 128);
require('fs').writeFileSync('new.pcx', Buffer.from(pcxBuff.Bytes()));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment