Perl Requires Chilkat v11.7.0+
>, says so with placeholderSyntax, written around the word "name".
Chilkat2 Perl
PDF Placeholders with Other Delimiters: [[name]]
See more PDF Text Replacement Examples
Demonstrates the "placeholderSyntax" option. Placeholders are {{name}} by default; a template written with other delimiters, such as [[name]] or <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 PDF used in this example is available at letter_template.pdf
my $pdf = Chilkat2::Pdf->new;
my $success = $pdf->LoadFile('qa_data/pdf/letter_template.pdf');
if (!$success) {
print $pdf->LastErrorText, "\n";
exit;
}
# The letter reads: "Dear [[name]]," ... "expires on [[expiry]]" ... "[[amount]] per year" ... "[[agent]]".
my $json = Chilkat2::JsonObject->new;
$json->UpdateString('placeholderSyntax', '[[name]]');
$json->UpdateString('placeholders.date', 'October 18, 2026');
$json->UpdateString('placeholders.name', 'Ms. Rivera');
$json->UpdateString('placeholders.expiry', 'December 31, 2026');
$json->UpdateString('placeholders.amount', '$299.00');
$json->UpdateString('placeholders.agent', 'Dana Whitfield, Account Manager');
my $jsonOut = Chilkat2::JsonObject->new;
$success = $pdf->TextReplace('apply', $json, $jsonOut);
if (!$success) {
print 'Not applied: ', $jsonOut->Emit(), "\n";
if (!$success) {
print $pdf->LastErrorText, "\n";
exit;
}
}
my $i = 0;
my $count_i = $jsonOut->SizeOfArray('replacements');
while ($i < $count_i) {
$jsonOut->I($i);
print '[[', $jsonOut->StringOf('replacements[i].field'), "]] replaced\n";
$i = $i + 1;
}
$success = $pdf->WriteFile('qa_output/letter_rivera.pdf');
if (!$success) {
print $pdf->LastErrorText, "\n";
exit;
}
# Sample output:
# [[date]] replaced
# [[name]] replaced
# [[expiry]] replaced
# [[amount]] replaced
# [[agent]] replaced