2015-04-03 23 views
6

Sto provando a convertire una pagina html che visualizza le immagini da facebook cdn a pdf utilizzando pdfkit. Sto usando rail 4.2, pdfkit 0.6.2 e wkhtmltopdf-binary 0.9.9.3.PDFkit * .css fogli di stile non applicati

# Gemfile 
gem 'pdfkit' 
gem 'wkhtmltopdf-binary' 

# controller 
def generate_pdf 
    @booklet = Booklet.find params[:id] 
    @cover = Image.last 
    @images = @booklet.images.sort_by(&:uploaded_at) 
    respond_to do |format| 
    format.html 
    format.pdf do 
     html = render_to_string(layout: true , action: "generate_pdf.html.haml") 
     kit = PDFKit.new(html, page_size: 'A4', orientation: 'Landscape') 
     `sass vendor/assets/stylesheets/bootstrap.scss tmp/bootstrap.css` 
     `sass vendor/assets/stylesheets/custom.scss tmp/custom.css` 
     kit.stylesheets << "#{Rails.root}/tmp/bootstrap.css" 
     kit.stylesheets << "#{Rails.root}/tmp/custom.css" 
     pdf = kit.to_pdf 
     send_data pdf, filename: 'booklet.pdf', type: 'application/pdf' 
    end 
    end 
end 

# application.scss 
@import 'bootstrap';                                   
@import 'custom'; 

# config/application.rb 
require 'pdfkit' 
config.middleware.use PDFKit::Middleware 

# config/initializers/mime_types.rb 
Mime::Type.register "application/pdf", :pdf unless Mime::Type.lookup_by_extension(:pdf) 

Il pdf è sempre generato e vengono visualizzate le immagini facebook CDN ma i fogli di stile arent essere applied.What che mi manca?

ho creato un repository di esempio per il problema di cui sopra qui: https://github.com/prasadsurase/topdf

Cordiali saluti, il bootstrap.css e custom.css sono collocati in vendor/attività ed hanno le estensioni sono state rinominate per SCSS. In sass, le risorse (font e immagini) sono state indirizzate usando helper 'font-path' e 'image-url'. Le risorse sono state precompilate e l'applicazione -.... css è stata copiata in pdf.css e le risorse sono riferite dal percorso root (/)

+0

Questo sembra essere un problema in esecuzione con Rails 3.1 e i kit PDF a causa della pipeline Asset. Ho trovato un problema simile qui, spero che possa aiutare un po '. http://stackoverflow.com/questions/8044659/pdfkit-does-not-style-pdfs – cmw2379

+0

@ cmw2379 Ho provato le soluzioni ma non ha funzionato. puoi pls clonare il repository e fare un tentativo? –

+0

Se avrò un po 'di tempo stasera, farò un tentativo. – cmw2379

risposta

0

Il Bootstrap funziona correttamente per altre pagine nell'applicazione? - L'obiettivo è di assicurarsi di aver configurato correttamente i metatag per includere i file Bootstrap e di puntare ai file Bootstrap (che sembrano essere in/tmp?)

Inoltre, su quale sistema operativo sono stai scrivendo? Posso raccomandare di sostituire "#{Rails.root}/tmp/bootstrap.css" con Rails.root.join('tmp','bootstrap.css')

Fammi sapere se questi sono di aiuto o no.

0

Passa alla gemma wicked_pdf. Gli aiuti patrimoniali inclusi funzionano alla grande e la gemma è in realtà meglio organizzata e documentata.

+0

Ero di fretta quindi spostato su wicked_pdf un paio di giorni dopo aver postato questa domanda. ha funzionato. Grazie. –

Problemi correlati