Lua Requires Chilkat v11.7.0+
Lua
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 Lua Downloads
local chilkat = require("chilkat")
-- 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
local pdf = chilkat.Pdf.new()
local success = pdf:load_file("qa_data/pdf/invoice_labels.pdf")
if not success then
print(pdf.last_error_text)
return
end
local json = chilkat.JsonObject.new()
local jsonOut = chilkat.JsonObject.new()
-- "Tracking Number:" is not on this invoice.
json:update_string("labels[0].label", "Invoice Number:")
json:update_string("labels[0].value", "INV-2026-0500")
json:update_string("labels[1].label", "Tracking Number:")
json:update_string("labels[1].value", "1Z999AA10123456784")
success = pdf:text_replace("check", json, jsonOut)
if not success then
print(pdf.last_error_text)
return
end
print("default: ok = " .. tostring(jsonOut:bool_of("ok")) .. ", problem: \"" .. jsonOut:string_of("problems[0].label") .. "\" " .. jsonOut:string_of("problems[0].reason"))
-- With "ignore", the label that is not there is skipped.
json:update_string("unmatchedValues", "ignore")
success = pdf:text_replace("apply", json, jsonOut)
if not success then
print(pdf.last_error_text)
return
end
print("ignore: applied = " .. tostring(jsonOut:bool_of("applied")) .. ", replacements: " .. jsonOut:size_of_array("replacements"))
success = pdf:write_file("qa_output/invoice_renumbered.pdf")
if not success then
print(pdf.last_error_text)
return
end
-- Sample output:
-- default: ok = false, problem: "Tracking Number:" notFound
-- ignore: applied = true, replacements: 1