2012-03-18 26 views
5

Tôi đang cố gắng sử dụng PDFKit.Làm thế nào để cài đặt PDFKit? (Đường ray 3.2.1 và PDFKit 0.5.2)

Có vẻ khá đơn giản vì vậy tôi đang cố gắng theo dõi Ryan's Rails cast.

Vì vậy, tôi đã thêm ngọc để GemFile tôi và cập nhật của tôi application.rb với:

config.middleware.use "PDFKit::Middleware" 

Sau đó tôi cài đặt wkhtmltopdf trên linux với:

apt-get install wkhtmltopdf 

Và tôi chắc chắn rằng nó hoạt động:

[[email protected]]%wkhtmltopdf www.google.com gogole.pdf 
Loading page (1/2) 
Printing pages (2/2)            
Done 

Mọi thứ có vẻ tốt cho đến khi tôi cố gắng thêm .pdf trên một trong các trang của tôi ...

Trang web vẫn ở trạng thái tải mãi mãi. Khi tôi dừng máy chủ với một Ctrl - C trong giao diện điều khiển, tôi nhận được lỗi sau:

RuntimeError (command failed: "/usr/bin/wkhtmltopdf" "--page-size" "Letter" "--margin-top" "0.75in" "--margin-right" "0.75in" "--margin-bottom" "0.75in" "--margin-left" "0.75in" "--encoding" "UTF-8" "--print-media-type" "--quiet" "-" "-"): 
    pdfkit (0.5.2) lib/pdfkit/pdfkit.rb:71:in `to_pdf' 
    pdfkit (0.5.2) lib/pdfkit/middleware.rb:21:in `call' 

Tôi đang làm gì sai?

+0

Tôi nghĩ bạn đang sử dụng 'Webrick' làm máy chủ web HTTP. Bạn có thể thử sử dụng 'Thin' không? –

+1

@nash: Cảm ơn bạn đã cho tôi thấy Thin (Tôi thường sử dụng mongrel nhưng tôi đã thực sự sử dụng Webrick, xấu hổ với tôi: p). Dù sao nó làm điều tương tự với Thin: ( –

Trả lời

0

Ok như vậy,

Took một vài giờ googling nhưng cuối cùng tôi đã tìm thấy giải pháp trong một câu hỏi stackoverflow khác: pdfkit not rendering correctly in rails 3.1

Cảm ơn bạn đã giúp đỡ.

0

Gần đây tôi đã chơi với PDFKit và làm cho ứng dụng này hoạt động trong ứng dụng đường ray của tôi và gặp phải sự cố tương tự.
Ba bước bạn cần là:

  1. Bạn sẽ cần phải đặt gem "pdfkit" trong GemFile của bạn.
  2. Đặt config.middleware.use PDFKit :: Middleware trong application.rb tệp mà bạn đã có.
  3. Hãy thử đặt mã sau vào pdfkit.rb tệp dưới 'config/initializers' thư mục.

    PDFKit.configure do | config |

    config.wkhtmltopdf = 'C: \ software \ tiện ích \ wkhtmltopdf \ wkhtmltopdf.exe' #Path vào thư mục cài đặt của bạn wkhtmltppdf

    config.root_url = "http: // localhost" # Chỉ sử dụng nếu bên ngoài của bạn tên máy chủ không khả dụng trên máy chủ.

    cuối

+0

Cảm ơn bạn, tôi đã thử giải pháp của bạn nhưng con đường của tôi đã được chính xác! –

0

Tôi cũng đã theo dõi Ryan's Rails cast.

PDFkit phụ thuộc vào wkhtmltopdf.rb. Mọi phiên bản> 0.9.9 đã khiến quy trình tạo PDF bị treo ngay trước khi hoàn thành, yêu cầu Ctrl - C. Tôi sử dụng OS X 10.6.8, không phải Linux. Tuy nhiên, hãy thử:

wkhtmltopdf --version 

Nếu nó> 0.9.9, sau đó quay lại 0.9.9. Giải quyết vấn đề của tôi. Đã cho tôi giờ để tìm ra.

0

Chúng tôi có một vấn đề liên quan ở đây: PDF Generation hangs using PDFKit and wkhtmotopdf

Trích dẫn các giải pháp từ Beerlington:

Try removing any javascript include tags from your HTML and see if that at least lets the PDF render. If that works, then you at least have a starting point.

tôi đã cố gắng đó và đó làm việc cho tôi.

Tôi nghĩ rằng nó phải làm với các nội dung như javascript và bảng định kiểu có đường dẫn tương đối.

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