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 (/)
Đ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
@ 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? –
Nếu tôi có thời gian tối nay, tôi sẽ thử. – cmw2379