Sample code for 30+ languages & platforms
Xbase++ Requires Chilkat v11.7.0+

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

Xbase++
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:

//  image

//  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()