Module: Ferrum::Browser::API::Screenshot

Included in:
Ferrum::Browser::API
Defined in:
lib/ferrum/browser/api/screenshot.rb

Instance Method Summary collapse

Instance Method Details

#paper_size=(value) ⇒ Object



30
31
32
# File 'lib/ferrum/browser/api/screenshot.rb', line 30

def paper_size=(value)
  @paper_size = value
end

#screenshot(**opts) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/ferrum/browser/api/screenshot.rb', line 7

def screenshot(**opts)
  encoding, path, options = screenshot_options(**opts)

  data = if options[:format].to_s == "pdf"
    options = {}
    options[:paperWidth] = @paper_size[:width].to_f if @paper_size
    options[:paperHeight] = @paper_size[:height].to_f if @paper_size
    options[:scale] = @zoom_factor if @zoom_factor
    page.command("Page.printToPDF", **options)
  else
    page.command("Page.captureScreenshot", **options)
  end.fetch("data")

  return data if encoding == :base64

  bin = Base64.decode64(data)
  File.open(path.to_s, "wb") { |f| f.write(bin) }
end

#zoom_factor=(value) ⇒ Object



26
27
28
# File 'lib/ferrum/browser/api/screenshot.rb', line 26

def zoom_factor=(value)
  @zoom_factor = value.to_f
end