2010-08-12 37 views
5

Tôi đã thiết lập PDFKit trong ứng dụng Rails 3 của mình, sử dụng RVM (phải sao chép thủ công tệp nhị phân wkhtmltopdf). Khi tôi cố gắng làm cho phiên bản PDF của một trang, tôi nhận được lỗi này:Rails 3 - lệnh wkhtmltopdf không thành công khi sử dụng PDFKit để tạo tài liệu PDF

 
RuntimeError in AgenciesController#show 

command failed: ["lib/wkhtmltopdf/wkhtmltopdf", "--disable-smart-shrinking", "--page-size", "Letter", "--margin-top", "0.75in", "--margin-right", "0.75in", "--margin-bottom", "0.75in", "--margin-left", "0.75in", "--encoding", "UTF-8", "--quiet", "\n.......\n", "-"] 

Sau đây là trong applicaition.rb tôi:

 
    config.middleware.use "PDFKit::Middleware" 
    PDFKit.configure do |config| 
    config.wkhtmltopdf = 'lib/wkhtmltopdf/wkhtmltopdf' 

    end 

Một ý tưởng tại sao điều này đang xảy ra? Làm thế nào tôi có thể sửa chữa nó?

Trong giao diện điều khiển, tôi nhận thấy thông điệp này:

 
(sometimes it will work just to ignore this error with --ignore-load-errors) 

ở đâu để tôi gọi tắc đó? wkhtmltopdf dường như hoạt động tốt trên dòng lệnh, tôi có thể thực hiện một số việc như "./wkhtmltopdf http://www.google.com google.pdf" và tạo tệp PDF.

Nhờ sự giúp đỡ của bạn,

Peter

+0

Tôi đã thử config.wkhtmltopdf với đường dẫn tuyệt đối, khởi động lại máy chủ nhưng gặp lỗi tương tự. – futureshocked

+0

Bạn đã cố gắng khắc phục sự cố chưa? Tôi đã lưu trữ các tệp thi hành trên 'my_app_path/lib/wkhtmltopdf' Giống như bạn đã nói nó hoạt động từ thiết bị đầu cuối. Nhưng không hoạt động khi tôi chạy máy chủ Webrick trên chế độ sản xuất. Bất kỳ trợ giúp sẽ được đánh giá cao. Cảm ơn – TheMouseMan

+0

Không, tôi đã từ bỏ phương pháp này vì nó không làm việc cho những gì tôi đã cố gắng làm, và đi đến Prawn thay vào đó (https://github.com/prawnpdf/prawn). – futureshocked

Trả lời

5

Đánh giá từ các mã nguồn, bạn có thể thiết lập tùy chọn trên pdfkit. Tôi nghĩ rằng đây sẽ làm việc:

PDFKit.configure do |config| 
    config.default_options[:ignore_load_errors] = true 
end 

(tôi đã không kiểm tra nó mặc dù)

+1

Đã hoạt động để ứng dụng không đổ vỡ khi tôi tải trang có tệp .pdf. Tuy nhiên, trang PDF sẽ bị trống. Điều gì có thể gây ra điều đó? – futureshocked

+0

Tôi đoán rằng 'wkhtmltopdf' không thành công. Bạn không chắc chắn phải làm gì về điều đó. – troelskn

1

tôi đã sử dụng hack này.

config.wkhtmltopdf = `which wkhtmltopdf`.gsub(/\n/, '') 

lệnh nào trả về một dòng mới ở cuối.

0

Vì bạn đã cài đặt wkhtmltopdf và có vẻ như nó đang hoạt động, có thể cho wicked_pdf một shot. Nó đang làm việc tuyệt vời cho tôi trong ứng dụng Ruby 1.9 Rails 3 của tôi. Nó chỉ là dễ dàng, nhưng cung cấp cho bạn một chút kiểm soát nhiều hơn những gì có thể nhận được kết xuất như là một pdf bằng cách bạn rõ ràng sử dụng render :pdf => 'my_template' khi bạn muốn có một pdf. Tất nhiên, bạn có thể đặt nó bên trong một khối responds_to nếu bạn muốn.

ps Trong trường hợp tôi không rõ ràng, wicked_pdf cũng sử dụng wkhtmltopdf.

1

tôi đã phải đối mặt với vấn đề tương tự trên ubuntu os của tôi. Nhưng sau đó cài đặt lại wkhtmltopdf bằng cách sử dụng hướng dẫn trong https://github.com/pdfkit/pdfkit/wiki/Installing-WKHTMLTOPDF.

Tải xuống tệp nhị phân từ http://code.google.com/p/wkhtmltopdf/downloads/detail?name=wkhtmltopdf-0.9.9-static-i386.tar.bz2&can=2&q= và đặt nó vào thư mục/usr/local/bin/đã giải quyết vấn đề cho tôi.

4

Tôi đã tìm kiếm trên Google và tìm câu trả lời trên blog.

Giải pháp là đây:

Cài đặt phụ thuộc

$sudo aptitude install openssl build-essential xorg libssl-dev 

Đối với 64bits OS Run từng người một lệnh sau:

$ sudo wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.9.9-static-amd64.tar.bz2 
$ sudo tar xvjf wkhtmltopdf-0.9.9-static-amd64.tar.bz2 
$ sudo mv wkhtmltopdf-amd64 /usr/local/bin/wkhtmltopdf 
$ sudo chmod +x /usr/local/bin/wkhtmltopdf 

Cuối cùng, đi đến đường ray của bạn app/config/initializer thư mục và tạo tập tin mới pdfkit.rb và dán mã sau vào mã:

PDFKit.configure do |config| 
    config.wkhtmltopdf = '/usr/local/bin/wkhtmltopdf' if Rails.env.production? 
end 

Vậy đó. Bây giờ tập tin pdf của bạn sẽ được tải xuống. Ngoài ra, hãy truy cập để biết thêm thông tin: http://www.stormconsultancy.co.uk/blog/development/generating-pdfs-in-rails-with-pdfkit-and-deploying-to-a-server/

Cảm ơn.

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