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 (/)
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
@ cmw2379 Ho provato le soluzioni ma non ha funzionato. puoi pls clonare il repository e fare un tentativo? –
Se avrò un po 'di tempo stasera, farò un tentativo. – cmw2379