```elixir title="Elixir"
alias Kreuzberg.ExtractionConfig

# Configure PDF-specific extraction options
# Extract annotations, metadata, and flatten forms for comprehensive document processing
config = %ExtractionConfig{
  pdf: %{
    "extract_annotations" => true,
    "extract_metadata" => true,
    "flatten_forms" => true
  },
  chunking: %{
    "max_characters" => 1500,
    "overlap" => 150
  },
  use_cache: true
}

{:ok, result} = Kreuzberg.extract_file("form_document.pdf", nil, config)

IO.puts("PDF Extraction Complete:")
IO.puts("Content length: #{byte_size(result.content)} bytes")
IO.puts("Metadata: #{inspect(result.metadata)}")
IO.puts("Annotations present: #{map_size(result.metadata["annotations"] || %{}) > 0}")
```
