PureBasic Requires Chilkat v11.7.0+
PureBasic
PDF Footnotes in Markdown: Inline, at the End, or Dropped
See more PDF Text Extraction Examples
Demonstrates the "footnotes" option of the "markdown" operation. Small-print notes at the foot of a page are kept where they are ("inline", the default), gathered at the end of the document ("end"), or left out ("none").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 two-page PDF used in this example is available at footnotes.pdf
pdf.i = CkPdf::ckCreate()
If pdf.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkPdf::ckLoadFile(pdf,"qa_data/pdf/footnotes.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
; Page 1 has two superscript references in the text and the two notes in small print at its foot;
; page 2 has a third.
success = CkPdf::ckExtractText(pdf,"markdown",json,jsonOut)
If success = 0
Debug CkPdf::ckLastErrorText(pdf)
CkPdf::ckDispose(pdf)
CkJsonObject::ckDispose(json)
CkJsonObject::ckDispose(jsonOut)
ProcedureReturn
EndIf
Debug "---- footnotes: inline (default) ----"
Debug CkJsonObject::ckStringOf(jsonOut,"markdown")
CkJsonObject::ckUpdateString(json,"footnotes","end")
success = CkPdf::ckExtractText(pdf,"markdown",json,jsonOut)
If success = 0
Debug CkPdf::ckLastErrorText(pdf)
CkPdf::ckDispose(pdf)
CkJsonObject::ckDispose(json)
CkJsonObject::ckDispose(jsonOut)
ProcedureReturn
EndIf
Debug "---- footnotes: end ----"
Debug CkJsonObject::ckStringOf(jsonOut,"markdown")
CkJsonObject::ckUpdateString(json,"footnotes","none")
success = CkPdf::ckExtractText(pdf,"markdown",json,jsonOut)
If success = 0
Debug CkPdf::ckLastErrorText(pdf)
CkPdf::ckDispose(pdf)
CkJsonObject::ckDispose(json)
CkJsonObject::ckDispose(jsonOut)
ProcedureReturn
EndIf
Debug "---- footnotes: none ----"
Debug CkJsonObject::ckStringOf(jsonOut,"markdown")
; Sample output:
; ---- footnotes: inline (default) ----
; <!-- page 1 -->
;
; # The Lens on Loan
;
; The society located a fourth-order lens of the correct period at a museum1 in the next county, and an agreement to loan it for ten years was signed in November.2 The lens will be lit with a low-wattage electric lamp rather than oil, and it will be displayed as a historic light rather than registered as an aid to navigation.
;
; 1 The county maritime museum, which holds three lenses from decommissioned lights. 2 The loan is renewable and carries no fee; the society insures the lens.
;
; <!-- page 2 -->
;
; # Public Access
;
; The grounds opened to visitors on weekends from July. Nearly three thousand people climbed the tower over the summer,3 with no incidents.
;
; 3 Counted at the entrance by the volunteers on duty.
;
; ---- footnotes: end ----
; <!-- page 1 -->
;
; # The Lens on Loan
;
; The society located a fourth-order lens of the correct period at a museum1 in the next county, and an agreement to loan it for ten years was signed in November.2 The lens will be lit with a low-wattage electric lamp rather than oil, and it will be displayed as a historic light rather than registered as an aid to navigation.
;
; <!-- page 2 -->
;
; # Public Access
;
; The grounds opened to visitors on weekends from July. Nearly three thousand people climbed the tower over the summer,3 with no incidents.
;
; 1 The county maritime museum, which holds three lenses from decommissioned lights. 2 The loan is renewable and carries no fee; the society insures the lens.
;
; 3 Counted at the entrance by the volunteers on duty.
;
; ---- footnotes: none ----
; <!-- page 1 -->
;
; # The Lens on Loan
;
; The society located a fourth-order lens of the correct period at a museum1 in the next county, and an agreement to loan it for ten years was signed in November.2 The lens will be lit with a low-wattage electric lamp rather than oil, and it will be displayed as a historic light rather than registered as an aid to navigation.
;
; <!-- page 2 -->
;
; # Public Access
;
; The grounds opened to visitors on weekends from July. Nearly three thousand people climbed the tower over the summer,3 with no incidents.
CkPdf::ckDispose(pdf)
CkJsonObject::ckDispose(json)
CkJsonObject::ckDispose(jsonOut)
ProcedureReturn
EndProcedure