2015-04-18 20 views
5

Tôi đang sử dụng đá quý wicked_pdf để chuyển đổi HTML sang PDF. Theo các mô tả trong Github, tôi đã cài đặt mọi thứ một cách chính xác. Nhưng tôi nhận được một lỗi runtime -Đường dẫn WKHTMLTOPDF trong ứng dụng ROR

RuntimeError (đường dẫn không hợp wkhtmltopdf của:/usr/local/bin/wkhtmltopdf): app/controllers/orders_controller.rb: 46: trong `tạo

`44 @count = Item.count(:qty) 
45 @temp = Item.where(:received => true).count() 
46 render :pdf => "Bill" , 
47 :template => 'orders/create.pdf.erb', # Excluding ".pdf" extension. 
48 page_height: 100, 
49 page_width: 80` 

và wkhtmltopdf được cài đặt trong hệ thống của tôi tại/usr/local/bin/wkhtmltopdf

Nó được chỉ định rằng đường dẫn cho wkhtmltopdf phải là nơi mà nó đã được cài đặt.

Tôi không thể tìm ra vấn đề là gì.

Trả lời

2

Trong nguồn của wkhtmltopdf có vẻ như tất cả những gì nó đang làm đang chạy File.exists? trên con đường đó:

https://github.com/mileszs/wicked_pdf/blob/56aa1a195d65eaaf33fbd0254e1e7df99ce1fd1c/lib/wicked_pdf.rb#L41

Vì vậy, chúng ta phải kiểm tra lại giả định rằng wkhtmltopdf được cài đặt một cách chính xác tại /usr/local/bin/wkhtmltopdf

Ông có thể cho một chút thêm thông tin? Chỉ cần xác minh, đầu ra là gì của which wkhtmltopdf

Và khi bạn chạy wkhtmltopdf -V trong bảng điều khiển, bạn sẽ nhận được gì?

Bạn có thể thử chỉ định đường dẫn trong cấu hình (trong trình khởi tạo như đã đề cập trong readme wkhtmltopdf) để xem liệu điều đó có tạo ra sự khác biệt hay không.

Và cuối cùng bạn có thể di chuyển tệp thực thi sang một thư mục khác, sau đó chỉ định trong trình khởi tạo để xem nó có thể liên quan đến quyền thư mục hay không.

+0

Output trong đó wkhtmltopdf là -/usr/local/bin/wkhtmltopdf và wkhtmltopdf -V là wkhtmltopdf 0.9. 6 – Niyanta

+0

Hmm, bạn có thể hiểu được. Tôi nghĩ rằng như là một nỗ lực gỡ lỗi cuối cùng, bạn có thể thử chỉ định đường dẫn một cách rõ ràng và/hoặc di chuyển tệp thực thi đến một vị trí khác. –

2

Bạn đã thử xác định đường dẫn trong trình khởi tạo chưa? ({rails.root} /config/initializers/wicked_pdf.rb) ví dụ:

WICKED_PDF = { 
    :exe_path => '/usr/local/bin/wkhtmltopdf-amd64'#should be whatever your version is called 
} 
Các vấn đề liên quan