```elixir title="Elixir" alias Kreuzberg.ExtractionConfig # Perform OCR extraction with multiple languages # Tesseract can recognize text in multiple languages simultaneously # Combine language codes with '+' separator: "eng+fra+deu" for English, French, German config = %ExtractionConfig{ ocr: %{ "enabled" => true, "backend" => "tesseract", "language" => "eng+fra+deu" }, chunking: %{ "max_characters" => 2000, "overlap" => 200 }, language_detection: %{"enabled" => true}, use_cache: true, force_ocr: true } {:ok, result} = Kreuzberg.extract_file("multilingual_document.pdf", nil, config) # Results will contain text recognized in all specified languages IO.puts("Multi-language OCR Extraction:") IO.puts("Supported languages: English, French, German") IO.puts("Content extracted: #{byte_size(result.content)} bytes") IO.puts("Detected languages: #{inspect(result.detected_languages)}") IO.puts("Chunks created: #{if result.chunks, do: length(result.chunks), else: 0}") IO.puts("\nExtracted content preview:") IO.puts(String.slice(result.content, 0..250)) # Access metadata if available metadata = result.metadata || %{} IO.puts("\nMetadata:") IO.puts("Pages: #{metadata["pages"] || "Unknown"}") IO.puts("Format: #{metadata["format"] || "Unknown"}") ```