# -*- encoding : utf-8 -*- class Admin::PDocumentsController < ApplicationController #before_filter :auth_admin #layout "admin" before_filter :admin_space def admin_space @admin_space = "documents" end def index @p_documents = PDocument.order("created_at DESC") @p_documents = @p_documents.where(:p_document_type_id => params[:p_document_type_id]) if params[:p_document_type_id] @p_documents = @p_documents.all render :layout => "admin" end def show @p_document = PDocument.find_by_token(params[:id]) @element = @p_document.element params[:inline] = true if true @temp_file = "#{Rails.root}/pdf/p_documents/#{@p_document.d_number}_temp.pdf" @final_file = "#{Rails.root}/pdf/p_documents/#{@p_document.d_number}.pdf" view = ActionView::Base.new(Rails.root.join('app/views')) view.class.include ApplicationHelper view.class.include Rails.application.routes.url_helpers pdf = view.render( :pdf => "#{@p_document.element.id}", :template => "admin/p_documents/show.html.haml", :locals => {:@element => @element, :@p_document => @p_document}) # then save to a file pdf = WickedPdf.new.pdf_from_string(pdf, :margin => { top: 0, # default 10 (mm) bottom: 0, left: 0, right: 0 }) save_path = @temp_file File.open(save_path, 'wb') do |file| file << pdf end if @p_document.p_document_type.data_file require 'posix/spawn' ::POSIX::Spawn::Child.new 'pdftk', @temp_file, 'background', @p_document.p_document_type.data_file.file.path, 'output', @final_file #pdftk /Users/nico/Desktop/Sanstitre4.pdf background /Users/nico/Dev/negos_app/pdf_stamp/bl.pdf output sortie.pdf @data_to_send = File.open( @final_file).read else require 'posix/spawn' ::POSIX::Spawn::Child.new 'pdftk', @temp_file, 'background', "#{Rails.root}/pdf_stamp/en-tete.pdf", 'output', @final_file @data_to_send = File.open( @final_file).read end send_data @data_to_send, :filename =>"#{@p_document.d_number}.pdf" , :type => 'application/pdf',:disposition => (params[:inline] ? 'inline' : "attachment") else render :layout => false end end end