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

Get the QR Code Capabilities of the Chilkat Version in Use

See more QR Code Examples

Demonstrates the capabilities operation, which describes what the installed version of Chilkat can do: the range of QR versions, the error-correction levels, the operations, the image formats and the limits. A program can check for a feature here instead of testing for a Chilkat version number. The request can be an empty JSON object.

Chilkat Perl Downloads

Chilkat2 Perl
use strict;
use warnings;
use Chilkat2;

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

my $json = Chilkat2::JsonObject->new;
my $fmt = Chilkat2::Formats->new;
my $jsonOut = Chilkat2::JsonObject->new;
my $success = $fmt->QrCode('capabilities', $json, $jsonOut);
if (!$success) {
    print $fmt->LastErrorText, "\n";
    exit;
}

print 'Chilkat version: ', $jsonOut->StringOf('productVersion'), "\n";
print 'symbology: ', $jsonOut->StringOf('symbologies[0].id'), "\n";
print 'QR versions: ', $jsonOut->IntOf('symbologies[0].encoding.version.min'), ' to ', $jsonOut->IntOf('symbologies[0].encoding.version.max'), "\n";
print 'structured append, most symbols: ', $jsonOut->IntOf('symbologies[0].structuredAppend.maxSymbols'), "\n";

my $n = $jsonOut->SizeOfArray('symbologies[0].encoding.errorCorrection');
for my $i (0 .. $n - 1) {
    $jsonOut->I($i);
    print 'error correction: ', $jsonOut->StringOf('symbologies[0].encoding.errorCorrection[i]'), "\n";
}

# The operations this version implements.
$n = $jsonOut->SizeOfArray('operations');
for my $i (0 .. $n - 1) {
    $jsonOut->I($i);
    if ($jsonOut->BoolOf('operations[i].available')) {
        print 'operation: ', $jsonOut->StringOf('operations[i].name'), "\n";
    }
}

$n = $jsonOut->SizeOfArray('imageFormats.output');
for my $i (0 .. $n - 1) {
    $jsonOut->I($i);
    print 'image format: ', $jsonOut->StringOf('imageFormats.output[i]'), "\n";
}

print 'default timeout: ', $jsonOut->IntOf('limits.timeoutMs.default'), " ms\n";
print 'default largest image: ', $jsonOut->IntOf('limits.maxPixels.default'), " pixels\n";

# Sample output:

# Chilkat version: 11.7.0
# symbology: qr
# QR versions: 1 to 40
# structured append, most symbols: 16
# error correction: auto
# error correction: L
# error correction: M
# error correction: Q
# error correction: H
# operation: generate
# operation: measure
# operation: validate
# operation: capabilities
# image format: png
# image format: svg
# default timeout: 10000 ms
# default largest image: 16777216 pixels