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

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 <>, says so with placeholderSyntax, written around the word "name".

Chilkat PHP Extension Downloads

PHP Extension
<?php

include("chilkat.php");

$success = false;

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

$pdf = new CkPdf();
$success = $pdf->LoadFile('qa_data/pdf/letter_template.pdf');
if ($success == false) {
    print $pdf->lastErrorText() . "\n";
    exit;
}

//  The letter reads: "Dear [[name]]," ... "expires on [[expiry]]" ... "[[amount]] per year" ... "[[agent]]".
$json = new CkJsonObject();
$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');

$jsonOut = new CkJsonObject();
$success = $pdf->TextReplace('apply',$json,$jsonOut);
if ($success == false) {
    print 'Not applied: ' . $jsonOut->emit() . "\n";
    if ($success == false) {
        print $pdf->lastErrorText() . "\n";
        exit;
    }

}

$i = 0;
$count_i = $jsonOut->SizeOfArray('replacements');
while ($i < $count_i) {
    $jsonOut->put_I($i);
    print '[[' . $jsonOut->stringOf('replacements[i].field') . ']] replaced' . "\n";
    $i = $i + 1;
}

$success = $pdf->WriteFile('qa_output/letter_rivera.pdf');
if ($success == false) {
    print $pdf->lastErrorText() . "\n";
    exit;
}

//  Sample output:

//  [[date]] replaced
//  [[name]] replaced
//  [[expiry]] replaced
//  [[amount]] replaced
//  [[agent]] replaced

?>