DataFlex Requires Chilkat v11.7.0+
DataFlex
Embed a QR Code in HTML as a Data URI
See more QR Code Examples
Demonstrates putting a QR code directly into an HTML page or HTML email with no separate image file. The base64 PNG returned by QrCode becomes the src of an img tag as a data URI, which is the MIME type from outputs[0].mimeType followed by the base64 from outputs[0].base64.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Variant vJson
Handle hoJson
Handle hoFmt
Variant vJsonOut
Handle hoJsonOut
Handle hoSbHtml
String sTemp1
Integer iTemp1
Integer iTemp2
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComUpdateString Of hoJson "payload.text" "https://www.chilkatsoft.com/" To iSuccess
Get ComUpdateInt Of hoJson "render.moduleSize" 5 To iSuccess
Get Create (RefClass(cComChilkatFormats)) To hoFmt
If (Not(IsComObjectCreated(hoFmt))) Begin
Send CreateComObject of hoFmt
End
Get Create (RefClass(cComChilkatJsonObject)) To hoJsonOut
If (Not(IsComObjectCreated(hoJsonOut))) Begin
Send CreateComObject of hoJsonOut
End
Get pvComObject of hoJson to vJson
Get pvComObject of hoJsonOut to vJsonOut
Get ComQrCode Of hoFmt "generate" vJson vJsonOut To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoFmt To sTemp1
Showln sTemp1
Procedure_Return
End
// A data URI has the form data:<MIME type>;base64,<base64 data>
Get Create (RefClass(cComChilkatStringBuilder)) To hoSbHtml
If (Not(IsComObjectCreated(hoSbHtml))) Begin
Send CreateComObject of hoSbHtml
End
Get ComAppend Of hoSbHtml '<html><body><p>Scan to visit chilkatsoft.com</p><img alt="QR code" width="' To iSuccess
Get ComIntOf Of hoJsonOut "outputs[0].width" To iTemp1
Get ComAppendInt Of hoSbHtml iTemp1 To iSuccess
Get ComAppend Of hoSbHtml '" height="' To iSuccess
Get ComIntOf Of hoJsonOut "outputs[0].height" To iTemp1
Get ComAppendInt Of hoSbHtml iTemp1 To iSuccess
Get ComAppend Of hoSbHtml '" src="data:' To iSuccess
Get ComStringOf Of hoJsonOut "outputs[0].mimeType" To sTemp1
Get ComAppend Of hoSbHtml sTemp1 To iSuccess
Get ComAppend Of hoSbHtml ";base64," To iSuccess
Get ComStringOf Of hoJsonOut "outputs[0].base64" To sTemp1
Get ComAppend Of hoSbHtml sTemp1 To iSuccess
Get ComAppend Of hoSbHtml '"></body></html>' To iSuccess
Get ComWriteFile Of hoSbHtml "qa_output/qr_page.html" "utf-8" False To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoSbHtml To sTemp1
Showln sTemp1
Procedure_Return
End
Get ComIntOf Of hoJsonOut "outputs[0].width" To iTemp1
Get ComIntOf Of hoJsonOut "outputs[0].height" To iTemp2
Showln "image: " iTemp1 " x " iTemp2 " pixels"
Get ComLength Of hoSbHtml To iTemp1
Showln "HTML length: " iTemp1
// The page, as a browser shows it:
//
// Sample output:
// image: 185 x 185 pixels
// HTML length: 1211
End_Procedure