Class: Puppeteer::Page::PDFOptions

Inherits:
Object
  • Object
show all
Defined in:
lib/puppeteer/page/pdf_options.rb

Overview

/**

  • @typedef Object PDFOptions

  • @property number= scale

  • @property boolean= displayHeaderFooter

  • @property string= headerTemplate

  • @property string= footerTemplate

  • @property boolean= printBackground

  • @property boolean= landscape

  • @property string= pageRanges

  • @property string= format

  • @property string|number= width

  • @property string|number= height

  • @property boolean= preferCSSPageSize

  • @property string|number, bottom?: string|number, left?: string|number, right?: string|number=} margin

*/

Defined Under Namespace

Classes: Margin, PaperSize

Constant Summary collapse

PAPER_FORMATS =
{
  'letter' => PaperSize.new(width: 8.5, height: 11),
  'legal' => PaperSize.new(width: 8.5, height: 14),
  'tabloid' => PaperSize.new(width: 11, height: 17),
  'ledger' => PaperSize.new(width: 17, height: 11),
  'a0' => PaperSize.new(width: 33.1, height: 46.8),
  'a1' => PaperSize.new(width: 23.4, height: 33.1),
  'a2' => PaperSize.new(width: 16.54, height: 23.4),
  'a3' => PaperSize.new(width: 11.7, height: 16.54),
  'a4' => PaperSize.new(width: 8.27, height: 11.7),
  'a5' => PaperSize.new(width: 5.83, height: 8.27),
  'a6' => PaperSize.new(width: 4.13, height: 5.83),
}
UNIT_TO_PIXELS =
{
  'px' => 1,
  'in' => 96,
  'cm' => 37.8,
  'mm' => 3.78,
}

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ PDFOptions

Returns a new instance of PDFOptions.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/puppeteer/page/pdf_options.rb', line 21

def initialize(options)
  @scale = options[:scale]
  @display_header_footer = options[:display_header_footer]
  @header_template = options[:header_template]
  @footer_template = options[:footer_template]
  @print_background = options[:print_background]
  @landscape = options[:landscape]
  @page_ranges = options[:page_ranges]
  @format = options[:format]
  @width = options[:width]
  @height = options[:height]
  @prefer_css_page_size = options[:prefer_css_page_size]
  @margin = Margin.new(options[:margin] || {})
end

Instance Method Details

#page_print_argsObject



136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/puppeteer/page/pdf_options.rb', line 136

def page_print_args
  {
    transferMode: 'ReturnAsStream',
    landscape: @landscape || false,
    displayHeaderFooter: @display_header_footer || false,
    headerTemplate: @header_template || '',
    footerTemplate: @footer_template || '',
    printBackground: @print_background || false,
    scale: @scale || 1,
    paperWidth: paper_size.width,
    paperHeight: paper_size.height,
    marginTop: margin.top,
    marginBottom: margin.bottom,
    marginLeft: margin.left,
    marginRight: margin.right,
    pageRanges: @page_ranges || '',
    preferCSSPageSize: @prefer_css_page_size || false,
  }
end