Sample code for 30+ languages & platforms
VBScript Requires Chilkat v11.7.0+

Extract One Section of a PDF by its Heading

See more PDF Text Extraction Examples

Demonstrates "labelValue": "section", which returns everything from a heading up to the next heading of the same or higher level. With the "markdown" operation the section keeps its own sub-headings.

Chilkat VBScript Downloads

VBScript
Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
'Create a Unicode (utf-16) output text file.
Set outFile = fso.CreateTextFile("output.txt", True, True)

success = 0

'  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 sectioned_doc.pdf

set pdf = CreateObject("Chilkat.Pdf")
success = pdf.LoadFile("qa_data/pdf/sectioned_doc.pdf")
If (success = 0) Then
    outFile.WriteLine(pdf.LastErrorText)
    WScript.Quit
End If

set json = CreateObject("Chilkat.JsonObject")
set jsonOut = CreateObject("Chilkat.JsonObject")

'  The document has the sections Introduction, Opening Hours, Terms and Conditions (with the
'  sub-sections Admission, Safety and Liability) and Contact.  Get the Terms and Conditions:
'  everything after that heading up to the next heading of the same level (Contact).  The heading
'  itself is not part of the value; labelMatches[0].label has it.
success = json.UpdateString("label","Terms and Conditions")
success = json.UpdateString("labelValue","section")

success = pdf.ExtractText("markdown",json,jsonOut)
If (success = 0) Then
    outFile.WriteLine(pdf.LastErrorText)
    WScript.Quit
End If

outFile.WriteLine(jsonOut.StringOf("markdown"))

'  The same with the "text" operation gives the section as plain text.
success = pdf.ExtractText("text",json,jsonOut)
If (success = 0) Then
    outFile.WriteLine(pdf.LastErrorText)
    WScript.Quit
End If

outFile.WriteLine("---- as text ----")
outFile.WriteLine(jsonOut.StringOf("text"))

'  Sample output:

'  ### Admission
'  
'  Admission is free. Groups of more than ten should book in advance so that a volunteer can be assigned to them.
'  
'  ### Safety
'  
'  No more than eight people may be on the stair at one time. Children under twelve must be accompanied by an adult, and the lantern room is closed in high winds.
'  
'  ### Liability
'  
'  Visitors climb the tower at their own risk. The society carries public liability insurance but accepts no responsibility for personal property.
'  ---- as text ----
'  Admission
'  
'  Admission is free. Groups of more than ten should book in advance so that a volunteer can be assigned to them.
'  
'  Safety
'  
'  No more than eight people may be on the stair at one time. Children under twelve must be accompanied by an adult, and the lantern room is closed in high winds.
'  
'  Liability
'  
'  Visitors climb the tower at their own risk. The society carries public liability insurance but accepts no responsibility for personal property.

outFile.Close