```ruby title="Ruby"
require 'kreuzberg'

result = Kreuzberg.extract_file_sync('document.pdf')

if result.metadata.pages&.boundaries
  content_bytes = result.content.bytes

  result.metadata.pages.boundaries.take(3).each do |boundary|
    page_bytes = content_bytes[boundary.byte_start...boundary.byte_end]
    page_text = page_bytes.pack('C*').force_encoding('UTF-8')

    puts "Page #{boundary.page_number}:"
    puts "  Byte range: #{boundary.byte_start}-#{boundary.byte_end}"
    puts "  Preview: #{page_text[0..100]}..."
  end
end
```
