DocForensic

PDF Chunker for AI

Split a PDF into token-bounded, semantically coherent chunks with metadata - ready to drop into a RAG pipeline or vector database.

Splits a PDF into chunks sized for LLM ingestion, using the same structure detection PDF to Markdown uses under the hood: headings, paragraphs and tables. Choose a fixed token-window (the simple baseline), or a structure-aware strategy that avoids splitting a table or a sentence, keeps a heading attached to what follows it, and can chunk by detected section or by page. Each chunk carries metadata - source pages, a heading breadcrumb, token count, and an optional short summary - ready as JSON, JSONL, or individual text/Markdown files. Only the uploaded file is read; nothing is modified.

Simple workflow

How it works

  1. 1

    Add PDFs

    Add one or more PDFs to chunk.

  2. 2

    Generate

    Review the chunk list and boundary preview against the source pages.

  3. 3

    Download

    Download the chunk file(s) plus a token-stats report.

Frequently asked questions

What's the difference between the four chunking strategies?

Fixed is a simple token sliding window that ignores document structure entirely. Semantic, Heading and Page all chunk by detected structural blocks instead - Semantic greedily fills toward your target size, Heading gives one chunk per detected section (splitting further only if a section is too big), and Page gives one chunk per page regardless of size.

What tokenizer is used for sizing?

cl100k (the tiktoken encoding used by common modern LLMs) by default, or a plain whitespace word count if you'd rather not assume a specific model's tokenizer.

How good is the auto-generated chunk summary?

It's a simple, free extractive summary - the chunk's own first sentence (or its first ~25 words) - not a real summarization model. Treat it as a quick label for retrieval metadata, not a substitute for reading the chunk.

Stay ahead of your document work

New tools and thoughtful product updates, delivered occasionally. No noise, no spam.