Tôi có thể tải tập tin pdf với:tạo pdf treo trên đường ray 4 sử dụng PDFkit đá quý
curl google.com | wkhtmltopdf - test.pdf
nên nó có nghĩa là, lắp đặt wkhtmlpdf đã thành công.
Nhưng, khi tôi cố gắng tạo tệp pdf bằng cách truy cập http://localhost:3000/contacts/1.pdf
nó bị treo. Trong thanh trạng thái nó cho thấy: Waiting for localhost...
Rails máy chủ đầu ra:
Started GET "/contacts/1.pdf" for 127.0.0.1 at 2013-07-28 21:45:06 +0900
ActiveRecord::SchemaMigration Load (0.1ms) SELECT "schema_migrations".* FROM "schema_migrations"
Processing by ContactsController#show as HTML
Parameters: {"id"=>"1"}
Contact Load (0.3ms) SELECT "contacts".* FROM "contacts" WHERE "contacts"."id" = ? LIMIT 1 [["id", "1"]]
Rendered contacts/show.html.erb within layouts/application (1.4ms)
Completed 200 OK in 99ms (Views: 57.0ms | ActiveRecord: 0.7ms)
Gemfile:
gem 'pdfkit'
application.rb:
config.middleware.use "PDFKit::Middleware"
Theo PDFKit railscast này nên đủ để tạo tệp pdf chỉ bằng cách thêm .pdf
...
UPDATE:
show.html.erb:
<p id="notice"><%= notice %></p>
<p>
<strong>Name:</strong>
<%= @contact.name %>
</p>
<p>
<strong>Age:</strong>
<%= @contact.age %>
</p>
<%= link_to 'Edit', edit_contact_path(@contact) %> |
<%= link_to 'Back', contacts_path %>
layouts/application.html.erb:
<!DOCTYPE html>
<html>
<head>
<title>Pdftest</title>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
</head>
<body>
<%= yield %>
</body>
</html>
CẬP NHẬT 2:
Nhờ @Arman H đã giúp tôi tìm ra rằng tôi phải chỉ định đường dẫn tuyệt đối cho tài sản thay vì đường dẫn tương đối. Khi tôi loại bỏ các dòng sau tôi đã có thể tạo ra tập tin PDF:
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
Bây giờ, tôi không thể có được làm thế nào để thay thế này với một đường dẫn tuyệt đối . Có vẻ như đây là post là những gì tôi cần, nhưng tôi vẫn không thể hiểu được điều này sẽ như thế nào đối với trường hợp của tôi.
Mất bao lâu? Bạn có gặp bất kỳ lỗi nào từ 'wkhtmltopdf' trong bảng điều khiển Rails 'không? Đôi khi nó xuất hiện để treo, nhưng nó thực sự chỉ mất một thời gian dài để xử lý PDF. Bạn đã chạy nó bao lâu trước khi cắt yêu cầu? –
Sự cố ở trên tôi có trên Mac OS x. Bây giờ tôi đang có trên Linux Mint. Nó vẫn còn "Đang chờ localhost ..." trong 20 phút và có vẻ như điều này sẽ là vô tận. Tôi chỉ phải hủy máy chủ bằng Ctrl + c. – Askar
Khi tôi tắt máy chủ sau 40 phút, nó tạo ra tập tin pdf cho tôi. Tôi đã thử một lần nữa để tắt máy chủ sau 1 phút, trong trường hợp này nó cho thấy: lệnh không thành công:/usr/bin/wkhtmltopdf - thư kích thước trang --margin-top 0.75in --margin-right 0.75in --margin-bottom 0.75in --margin-left 0.75in --encoding UTF-8 --quiet - - – Askar