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

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  var 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

  final pdf = CkPdf();
  success = true;
  try {
    pdf.loadFile('qa_data/pdf/letter_template.pdf');
  } on ChilkatException {
    success = false;
  }
  if (!success) {
    print(pdf.lastErrorText);
    return;
  }

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

  final jsonOut = CkJsonObject();
  success = true;
  try {
    pdf.textReplace('apply', json, jsonOut);
  } on ChilkatException {
    success = false;
  }
  if (!success) {
    print('Not applied: ${jsonOut.emit()}');
    if (!success) {
      print(pdf.lastErrorText);
      return;
    }
  }

  var i = 0;
  final countI = jsonOut.sizeOfArray('replacements');
  while (i < countI) {
    jsonOut.i = i;
    print('[[${jsonOut.stringOf('replacements[i].field')}]] replaced');
    i++;
  }

  success = true;
  try {
    pdf.writeFile('qa_output/letter_rivera.pdf');
  } on ChilkatException {
    success = false;
  }
  if (!success) {
    print(pdf.lastErrorText);
    return;
  }

  // Sample output:

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