Sample code for 30+ languages & platforms
PHP 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 Downloads

Chilkat2 PHP
<?php

use Chilkat2\JsonObject;
use Chilkat2\Pdf;

$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 Pdf();
try {
    $pdf->LoadFile('qa_data/pdf/letter_template.pdf');
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

// The letter reads: "Dear [[name]]," ... "expires on [[expiry]]" ... "[[amount]] per year" ... "[[agent]]".
$json = new JsonObject();
$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 JsonObject();
try {
    $pdf->TextReplace('apply', $json, $jsonOut);
    $success = true;
} catch (\Chilkat2\Exception $e) {
    $success = false;
}
if (!$success) {
    echo 'Not applied: ', $jsonOut->Emit(), "\n";
    if (!$success) {
        echo $pdf->LastErrorText, "\n";
        exit;
    }
}

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

try {
    $pdf->WriteFile('qa_output/letter_rivera.pdf');
} catch (\Chilkat2\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

// Sample output:

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