Sha256: 08385f6ab1db2ee61e6ad09825629885a52e2acbe84982a8ebae816b90cdde97

Contents?: true

Size: 1.65 KB

Versions: 14

Compression:

Stored size: 1.65 KB

Contents

# encoding: utf-8
# Uses Prince library to create pdfs
module PdfHelper
  require 'prince'

  def self.prince_available?
    p = Prince.new()
    p.exe_path !~ /no prince/
  end

  private
    # Makes a pdf, returns it as data...
    def make_pdf(template_path, pdf_name, landscape=false)
      prince = Prince.new()
      # Sets style sheets on PDF renderer.
      prince.add_style_sheets(
        "#{RAILS_ROOT}/public/stylesheets/main.css",
        "#{RAILS_ROOT}/public/stylesheets/bracket.css",
        "#{RAILS_ROOT}/public/stylesheets/bracket-print.css",
        "#{RAILS_ROOT}/public/stylesheets/prince.css"
      )
      prince.add_style_sheets("#{RAILS_ROOT}/public/stylesheets/prince_landscape.css") if landscape
      # Render the estimate to a big html string.
      # Set RAILS_ASSET_ID to blank string or rails appends some time after
      # to prevent file caching, fucking up local - disk requests.
      old_rails_asset_id = ENV["RAILS_ASSET_ID"]
      begin
        ENV["RAILS_ASSET_ID"] = ''
        html_string = render_to_string(:template => template_path, :layout => 'print.html')
        # Make all paths relative, on disk paths...
        html_string.gsub!("src=\"", "src=\"#{RAILS_ROOT}/public")
        # Send the generated PDF file from our html string.
        return prince.pdf_from_string(html_string)
      ensure
        ENV["RAILS_ASSET_ID"] = old_rails_asset_id
      end
    end
  
    # Makes and sends a pdf to the browser
    #
    def make_and_send_pdf(template_path, pdf_name, landscape=false)
      send_data(
        make_pdf(template_path, pdf_name, landscape),
        :filename => pdf_name,
        :type => 'application/pdf'
      ) 
    end
end

Version data entries

14 entries across 14 versions & 1 rubygems

Version Path
tournament-5.0.0 webgui/lib/pdf_helper.rb
tournament-4.2.0 webgui/lib/pdf_helper.rb
tournament-4.0.2 webgui/lib/pdf_helper.rb
tournament-4.0.0 webgui/lib/pdf_helper.rb
tournament-3.3.3 webgui/lib/pdf_helper.rb
tournament-3.3.2 webgui/lib/pdf_helper.rb
tournament-3.3.1 webgui/lib/pdf_helper.rb
tournament-3.3.0 webgui/lib/pdf_helper.rb
tournament-3.2.2 webgui/lib/pdf_helper.rb
tournament-3.2.1 webgui/lib/pdf_helper.rb
tournament-3.2.0 webgui/lib/pdf_helper.rb
tournament-3.1.1 webgui/lib/pdf_helper.rb
tournament-3.1.0 webgui/lib/pdf_helper.rb
tournament-3.0.3 webgui/lib/pdf_helper.rb