2015-04-03 19 views
6

Tôi đang cố gắng chuyển đổi trang html hiển thị hình ảnh từ facebook cdn sang pdf bằng pdfkit. Tôi đang sử dụng đường ray 4.2, pdfkit 0.6.2 và wkhtmltopdf-binary 0.9.9.3.Bản định kiểu PDFkit * .css không được áp dụng

# 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) 

pdf đang được tạo và hình ảnh cdn facebook được hiển thị nhưng bảng định kiểu không được áp dụng. Tôi đang thiếu gì?

Tôi đã tạo ra một kho lưu trữ mẫu cho vấn đề trên đây: https://github.com/prasadsurase/topdf

FYI, các bootstrap.css và custom.css được đặt trong nhà cung cấp/tài sản và có phần mở rộng đã được đổi tên thành SCSS. Trong sass, các tài sản (phông chữ và hình ảnh) đã được giới thiệu bằng cách sử dụng 'font-path' và 'image-url' rails helper. Các tài sản được biên dịch trước và ứng dụng -.... css được sao chép vào pdf.css và các tài sản được chuyển từ đường dẫn gốc (/)

+0

Điều này có vẻ là sự cố đang chạy với Rails 3.1 và bộ công cụ PDF do đường dẫn Nội dung. Tôi tìm thấy một vấn đề tương tự ở đây mà hy vọng sẽ giúp một chút. http://stackoverflow.com/questions/8044659/pdfkit-does-not-style-pdfs – cmw2379

+0

@ cmw2379 Tôi đã thử các giải pháp nhưng nó không hoạt động. bạn có thể bắt chước bản repo và thử không? –

+0

Nếu tôi có thời gian tối nay, tôi sẽ thử. – cmw2379

Trả lời

0

Bootstrap có hoạt động đúng cho các trang khác trong ứng dụng của bạn không? - Mục đích là đảm bảo rằng bạn đã định cấu hình thẻ meta chính xác để bao gồm các tệp Bootstrap và bạn đang trỏ đến tệp Bootstrap (có vẻ như nằm trong/tmp?)

Ngoài ra, trên hệ điều hành nào bạn mã hóa? Tôi có thể khuyên bạn nên thay thế "#{Rails.root}/tmp/bootstrap.css" bằng Rails.root.join('tmp','bootstrap.css')

Hãy cho tôi biết nếu có sự trợ giúp này - hay không.

0

Chuyển sang đá quý wicked_pdf. Những người giúp đỡ tài sản được bao gồm làm việc tuyệt vời và đá quý thực sự được tổ chức và tài liệu tốt hơn.

+0

tôi đã vội vàng chuyển đến wicked_pdf một vài ngày sau khi đăng câu hỏi này. nó đã làm việc. cảm ơn. –

Các vấn đề liên quan