Xbase++ Requires Chilkat v11.7.0+
Xbase++
QR Code with a Text Caption
See more QR Code Examples
Demonstrates printing a line of text under a QR code, such as the order number or the address the code holds, so that a person can read it too. render.text turns the caption on and gives its value, which is printable ASCII and is drawn in a built-in font that needs no font files. The caption can go above or below the symbol, be aligned left, center or right, and be scaled.Chilkat Xbase++ Downloads
LOCAL nSuccess
LOCAL oJson
LOCAL oFmt
LOCAL oJsonOut
nSuccess := 0
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
oJson := CreateObject("Chilkat.JsonObject")
oJson:UpdateString("payload.text", "https://www.chilkatsoft.com/order/12345")
oJson:UpdateInt("render.moduleSize", 6)
// The caption. It need not be the same as the text in the QR code.
oJson:UpdateBool("render.text.enabled", 1)
oJson:UpdateString("render.text.value", "ORDER 12345")
// position is "below" (the default) or "above". alignment is "center" (the default), "left" or "right".
oJson:UpdateString("render.text.position", "below")
// Each dot of the caption's font is drawn this many pixels wide.
oJson:UpdateInt("render.text.scale", 3)
oJson:UpdateString("output.path", "qa_output/qr_caption.png")
oJson:UpdateBool("output.overwrite", 1)
oJson:UpdateString("output.return", "none")
oFmt := CreateObject("Chilkat.Formats")
oJsonOut := CreateObject("Chilkat.JsonObject")
nSuccess := oFmt:QrCode("generate", oJson, oJsonOut)
IF (nSuccess == 0)
? oFmt:LastErrorText
oJson:destroy()
oFmt:destroy()
oJsonOut:destroy()
RETURN
ENDIF
? "caption: " + oJsonOut:StringOf("measurements[0].text")
? "caption scale: " + Str(oJsonOut:IntOf("measurements[0].textScale"))
? "height added for the caption: " + Str(oJsonOut:IntOf("measurements[0].textBandPx")) + " pixels"
? "image: " + Str(oJsonOut:IntOf("measurements[0].canvasWidth")) + " x " + Str(oJsonOut:IntOf("measurements[0].canvasHeight")) + " pixels"
// The image written to qa_output/qr_caption.png:
//
// Sample output:
// caption: ORDER 12345
// caption scale: 3
// height added for the caption: 21 pixels
// image: 222 x 243 pixels
oJson:destroy()
oFmt:destroy()
oJsonOut:destroy()