How to split PDF document by table of contents

I want to use GPT or Claude3 to process PDF documents with more than 200 pages, such as business annual report. The challenge is how to split the PDF to chunks by table of contents, so the model’s response will be more accurate.

Is there any solution for this? For example, some packages or fine-tuned models.

I’ve tried to get pdf outlines by using PyPDF. However, only few documents have outlines.