class TreerfulScanner::PngPrinter
Constants
- CHROME_BINS
- WINDOW_CELL_HEIGHT
- WINDOW_HEIGHT_OFFSET
Public Instance Methods
print()
click to toggle source
# File lib/treerful_scanner/png_printer.rb, line 16 def print html_printer = HtmlPrinter.new(@time_tables, @date) Dir.mktmpdir do |dir| html_path = "#{dir}/output.html" IO.write(html_path, html_printer.print) chrome_bin = CHROME_BINS.find{ |bin| system('which', bin, out: '/dev/null') } || ENV['CHROME_BIN'] raise 'ENV["CHROME_BIN"] is nil' unless chrome_bin window_height = WINDOW_HEIGHT_OFFSET + WINDOW_CELL_HEIGHT * @time_tables.length Dir.chdir(dir) do raise "chrome exited with status #{$CHILD_STATUS}" unless system( chrome_bin, '--headless', '--disable-gpu', '--disable-software-rasterizer', '--disable-dev-shm-usage', '--no-sandbox', '--screenshot', '--hide-scrollbars', "--window-size=1280,#{window_height}", html_path, %i[out err] => '/dev/null' ) IO.read('screenshot.png', mode: 'rb') end end end