Module: Gotenberg::Rails::Renderer

Defined in:
lib/gotenberg/rails/renderer.rb

Class Method Summary collapse

Class Method Details

.registerObject



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/gotenberg/rails/renderer.rb', line 6

def self.register
  ActionController::Renderers.add :gotenberg_pdf do |options, render_options|
    pdf_options = options || {}
    filename = render_options[:filename] || pdf_options.delete(:filename) || "#{controller_name}.pdf"
    disposition = render_options[:disposition] || pdf_options.delete(:disposition) || "attachment"
    display_url = render_options[:display_url] || pdf_options.delete(:display_url) || request.original_url

    html = render_to_string(render_options.except(:display_url, :filename, :disposition).merge(formats: [:html]))
    pdf = Gotenberg::Rails.render_pdf(html:, display_url:, pdf_options:, filename:)

    send_data pdf,
              filename: filename,
              type: "application/pdf",
              disposition: disposition
  end
end