PowerShell Requires Chilkat v11.7.0+
PowerShell
A PDF Label That Is Not on the Page: notFound or Ignore
See more PDF Text Replacement Examples
Demonstrates the "unmatchedValues" option. A label or placeholder given a value but not found on the selected pages is a problem with the reason notFound, which stops "apply", because a missing label usually means the wrong document or a typo in the label. With unmatchedValues "ignore" such a value is skipped and the rest is applied -- the right choice when one set of values serves several document layouts.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$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 invoice_labels.pdf
$pdf = New-Object Chilkat.Pdf
$success = $pdf.LoadFile("qa_data/pdf/invoice_labels.pdf")
if ($success -eq $false) {
$($pdf.LastErrorText)
exit
}
$json = New-Object Chilkat.JsonObject
$jsonOut = New-Object Chilkat.JsonObject
# "Tracking Number:" is not on this invoice.
$json.UpdateString("labels[0].label","Invoice Number:")
$json.UpdateString("labels[0].value","INV-2026-0500")
$json.UpdateString("labels[1].label","Tracking Number:")
$json.UpdateString("labels[1].value","1Z999AA10123456784")
$success = $pdf.TextReplace("check",$json,$jsonOut)
if ($success -eq $false) {
$($pdf.LastErrorText)
exit
}
$("default: ok = " + $jsonOut.BoolOf("ok") + ", problem: `"" + $jsonOut.StringOf("problems[0].label") + "`" " + $jsonOut.StringOf("problems[0].reason"))
# With "ignore", the label that is not there is skipped.
$json.UpdateString("unmatchedValues","ignore")
$success = $pdf.TextReplace("apply",$json,$jsonOut)
if ($success -eq $false) {
$($pdf.LastErrorText)
exit
}
$("ignore: applied = " + $jsonOut.BoolOf("applied") + ", replacements: " + $jsonOut.SizeOfArray("replacements"))
$success = $pdf.WriteFile("qa_output/invoice_renumbered.pdf")
if ($success -eq $false) {
$($pdf.LastErrorText)
exit
}
# Sample output:
# default: ok = false, problem: "Tracking Number:" notFound
# ignore: applied = true, replacements: 1