33 lines
925 B
Markdown
33 lines
925 B
Markdown
```kotlin title="Kotlin"
|
|
import dev.kreuzberg.*
|
|
import java.nio.file.Paths
|
|
import java.util.Optional
|
|
|
|
fun main() {
|
|
// Configure element-based output (resultFormat controls Unified vs ElementBased)
|
|
val config = ExtractionConfig.builder()
|
|
.withResultFormat(ResultFormat.ElementBased)
|
|
.build()
|
|
|
|
val result = Kreuzberg.extractFileSync(Paths.get("document.pdf"), null, config)
|
|
|
|
val elements = result.elements().orEmpty()
|
|
for (element in elements) {
|
|
println("Type: ${element.elementType()}")
|
|
val text = element.text()
|
|
println("Text: ${text.take(100)}")
|
|
|
|
element.metadata().pageNumber()?.let { page ->
|
|
println("Page: $page")
|
|
}
|
|
println("---")
|
|
}
|
|
|
|
// Filter by element type
|
|
val titles = elements.filter { it.elementType() == ElementType.Title }
|
|
for (title in titles) {
|
|
println("Title: ${title.text()}")
|
|
}
|
|
}
|
|
```
|