Perl Requires Chilkat v11.7.0+
Chilkat2 Perl
Create a vCard (Contact) QR Code
See more QR Code Examples
Demonstrates a QR code that adds a contact to a phone when scanned. The text is a vCard, the standard format for contact details: lines between BEGIN:VCARD and END:VCARD, each ending with CRLF. A vCard is fairly long, so the symbol is larger than one holding a web address. Leave out the fields that are not needed to keep it small.Chilkat Perl Downloads
use strict;
use warnings;
use Chilkat2;
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
# The second argument of AppendLine is cktrue to end each line with CRLF.
my $sbCard = Chilkat2::StringBuilder->new;
$sbCard->AppendLine('BEGIN:VCARD', 1);
$sbCard->AppendLine('VERSION:3.0', 1);
$sbCard->AppendLine('N:Smith;Alex;;;', 1);
$sbCard->AppendLine('FN:Alex Smith', 1);
$sbCard->AppendLine('ORG:Example Company', 1);
$sbCard->AppendLine('TITLE:Sales Manager', 1);
$sbCard->AppendLine('TEL;TYPE=CELL:+1-555-0100', 1);
$sbCard->AppendLine('EMAIL:alex.smith@example.com', 1);
$sbCard->AppendLine('URL:https://www.example.com', 1);
$sbCard->AppendLine('END:VCARD', 1);
my $json = Chilkat2::JsonObject->new;
$json->UpdateSb('payload.text', $sbCard);
$json->UpdateInt('render.moduleSize', 6);
$json->UpdateString('output.path', 'qa_output/qr_vcard.png');
$json->UpdateBool('output.overwrite', 1);
$json->UpdateString('output.return', 'none');
my $fmt = Chilkat2::Formats->new;
my $jsonOut = Chilkat2::JsonObject->new;
my $success = $fmt->QrCode('generate', $json, $jsonOut);
if (!$success) {
print $fmt->LastErrorText, "\n";
exit;
}
print 'vCard length: ', $sbCard->Length, "\n";
print 'QR version: ', $jsonOut->IntOf('symbols[0].selectedEncoding.version'), "\n";
print 'modules: ', $jsonOut->IntOf('symbols[0].dimensions.modulesWide'), ' x ', $jsonOut->IntOf('symbols[0].dimensions.modulesHigh'), "\n";
print 'image: ', $jsonOut->IntOf('outputs[0].width'), ' x ', $jsonOut->IntOf('outputs[0].height'), " pixels\n";
# The image written to qa_output/qr_vcard.png:
#
# Sample output:
# vCard length: 197
# QR version: 10
# modules: 57 x 57
# image: 390 x 390 pixels