PureBasic Requires Chilkat v11.7.0+
PureBasic
Exclude or Include Running Headers and Page Numbers
See more PDF Text Extraction Examples
Demonstrates the "repeatedHeadersFooters" filter. Text repeated at the same position on most pages, such as a running header and "Page N of 4" footers, is left out by default; set the filter to "include" to keep it.Chilkat PureBasic Downloads
IncludeFile "CkPdf.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
success.i = 0
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
; The four-page PDF used in this example is available at running_header.pdf
pdf.i = CkPdf::ckCreate()
If pdf.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkPdf::ckLoadFile(pdf,"qa_data/pdf/running_header.pdf")
If success = 0
Debug CkPdf::ckLastErrorText(pdf)
CkPdf::ckDispose(pdf)
ProcedureReturn
EndIf
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
jsonOut.i = CkJsonObject::ckCreate()
If jsonOut.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
; Every page has the header "Harbor Lighthouse Society - Annual Report 2026" at the top right
; and "Page N of 4" at the bottom. By default both are excluded, so the text of page 2 is just
; its heading and paragraphs.
CkJsonObject::ckUpdateString(json,"pages","2")
success = CkPdf::ckExtractText(pdf,"text",json,jsonOut)
If success = 0
Debug CkPdf::ckLastErrorText(pdf)
CkPdf::ckDispose(pdf)
CkJsonObject::ckDispose(json)
CkJsonObject::ckDispose(jsonOut)
ProcedureReturn
EndIf
Debug "---- default (repeated headers and footers excluded) ----"
Debug CkJsonObject::ckStringOf(jsonOut,"text")
; Include them. The detection looks at the neighbouring pages even when only one page is
; selected, so a single page extracted on its own still loses its running head by default.
CkJsonObject::ckUpdateString(json,"repeatedHeadersFooters","include")
success = CkPdf::ckExtractText(pdf,"text",json,jsonOut)
If success = 0
Debug CkPdf::ckLastErrorText(pdf)
CkPdf::ckDispose(pdf)
CkJsonObject::ckDispose(json)
CkJsonObject::ckDispose(jsonOut)
ProcedureReturn
EndIf
Debug "---- repeatedHeadersFooters: include ----"
Debug CkJsonObject::ckStringOf(jsonOut,"text")
; Sample output:
; ---- default (repeated headers and footers excluded) ----
; The Work
;
; The restoration society took ownership in 2021 with three goals: make the structure watertight, return the tower to public access, and relight the lantern with a historically accurate lens. The first two were met in the second season, and the lens arrived on loan in November.
;
; The spiral stair is original and is the most fragile part of the building. Twelve of the ninety-one treads were cracked or missing, and the central column had corroded badly at the second landing. The treads were cast from patterns taken off an intact tread.
; ---- repeatedHeadersFooters: include ----
; Harbor Lighthouse Society - Annual Report 2026
;
; The Work
;
; The restoration society took ownership in 2021 with three goals: ...
;
; The spiral stair is original and is the most fragile part of the building. ...
;
; Page 2 of 4
CkPdf::ckDispose(pdf)
CkJsonObject::ckDispose(json)
CkJsonObject::ckDispose(jsonOut)
ProcedureReturn
EndProcedure