```kotlin title="Kotlin"
import dev.kreuzberg.*
import java.nio.file.Paths
import java.util.Optional

fun main() {
    val hierarchy = HierarchyConfig.builder()
        .withEnabled(true)
        .withKClusters(5L)
        .withIncludeBbox(true)
        .withOcrCoverageThreshold(Optional.of(0.8f))
        .build()

    val pdf = PdfConfig.builder()
        .withHierarchy(Optional.of(hierarchy))
        .build()

    val config = ExtractionConfig.builder()
        .withPdfOptions(Optional.of(pdf))
        .build()

    val result = Kreuzberg.extractFileSync(Paths.get("document.pdf"), null, config)
    val pages = result.pages().orEmpty()
    println("Pages: ${pages.size}")
}
```
