class PDFFilter

Public Class Methods

debug=(b) click to toggle source
# File lib/pdffilter.rb, line 7
def debug=(b)
  @debug = b
end
debug?() click to toggle source
# File lib/pdffilter.rb, line 11
def debug?
  @debug
end
filter(controller) click to toggle source
# File lib/pdffilter.rb, line 15
def filter(controller)
  format = controller.request.parameters[:format]
  return unless format && format.to_sym == :pdf

  controller.logger.debug("Rendering XHTML to PDF:\n" + controller.response.body) if debug?

  pdf = FlyingSaucer4R.create_pdf(
    controller.response.body,
    File.join(Rails.public_path, 'placeholder.html'),
    controller.logger)

  controller.response.content_type = 'application/pdf'
  add_ie6_pdf_over_ssl_headers(controller.response.headers)
  controller.response.body = pdf
end

Private Class Methods

add_ie6_pdf_over_ssl_headers(headers) click to toggle source
# File lib/pdffilter.rb, line 32
def add_ie6_pdf_over_ssl_headers(headers)
  headers["Cache-Control"] ||= 'maxage=3600'
  headers["Pragma"] ||= 'public'
end