2011-10-11 6 views
6

Ruby on Rails에서 Ubuntu 11.04를 사용하여 응용 프로그램을 개발하고 있습니다. 애플 리케이션에서 나는 PDF 문서를 생성해야합니다. 그래서 wicked_pdf와 wkhtmltopdf-binary gem을 으로 사용하고 있습니다.wkhtmltopdf RuntimeError (wkhtmltopdf 알 수없는 위치)

내 시스템의 개발 환경에서 모든 것이 잘 동작합니다. 하지만 내가 그 나에게 다음과 같은 오류주는 날에 PDF 파일 생성 할 때, Phusion 승객을 사용하여에 CentOS 5.6에 생산에 응용 프로그램을 배포하면 :

RuntimeError에 (알 수없는 wkhtmltopdf의 위치)

을 Ruby1.9.2.p136을 사용하고 있습니다. 레일 3.1.1

어떤 도움을 많이 주시면 감사하겠습니다 .... 감사.

답변

9

정적 wkhtmltopdf 바이너리를 사용합니까? 나는 그것을 here을 다운로드 /path/to/rails_app/bin

에 extraced과 같이 레일에 추가 :

#config/initializers/wicked_pdf.rb 
WickedPdf.config = { 
    :exe_path => Rails.root.join('bin', 'wkhtmltopdf-i386').to_s, 
} 
+0

i386에서 amd64로 변경되었으며 이는 Heroku에도 적용되었습니다. –

8

를 맥 OS 용 - 당신은 대체가있다 사제

$ brew tap homebrew/boneyard # the wkhtmltopdf formula is now inactive but still available in the boneyard repository 
$ brew install wkhtmltopdf 
+0

더 이상 사용할 수 없습니다 :'오류 : wkhtmltopdf에 사용할 수있는 수식이 없습니다 .' –

+0

다시 시도하십시오.하지만 처음에는 boneyard를 설치하십시오. $ Brew tap homebrew/boneyard 양조 공식 wkhtmltopdf는 비활성 상태이지만 여전히 boneyard 저장소 아래에 있습니다. – Hannes

10

에 의해 wkhtmltopdf를 설치해야합니다 x를 Gemfile을 통해 바이너리를 설치하십시오.

은 그냥 다음 행을 추가합니다

gem 'wkhtmltopdf-binary' 

리눅스-I386, AMD64 및 다윈에 대한 바이너리 지원을 추가해야한다고. OS X 요세미티에 대한

4

솔루션

는 맥 OS X 10.10 (요세미티) 작업을 얻으려면, wkhtmltopdf-binary 보석을 설치 한 다음 config/initializers/wicked_pdf.rb에 넣어 :

module WickedPdfHelper 
    if Rails.env.development? 
    if RbConfig::CONFIG['host_os'] =~ /linux/ 
     executable = RbConfig::CONFIG['host_cpu'] == 'x86_64' ? 'wkhtmltopdf_linux_x64' : 'wkhtmltopdf_linux_386' 
    elsif RbConfig::CONFIG['host_os'] =~ /darwin/ 
     executable = 'wkhtmltopdf_darwin_386' 
    else 
     raise 'Invalid platform. Must be running linux or intel-based Mac OS.' 
    end 

    WickedPdf.config = { exe_path: "#{Gem.bin_path('wkhtmltopdf-binary').match(/(.+)\/.+/).captures.first}/#{executable}" } 
    end 
end 

시 : 이 솔루션은 Linux에서도 작동합니다.

+1

좋아요! 이것은 나를 위해 일했다. 왜 이것이 지금 필요한지 당신은 생각하십니까? – nathanvda

+0

@nathanvda 잘 모르겠습니다. 그러나 나는 또한 알고 싶다. –

+0

mac osx의 경우, @ben에서와 같은 방식으로 바이너리 파일이있는 경로를 설정하고 올바른 이름을 입력해야합니다 (예 : Rails.root.join ('/ usr/local/bin', 'wkhtmltopdf ') .to_s, – yozzz

0

비슷한 문제가있었습니다.

WickedPdf.config = { 
    exe_path: '/usr/local/bin/wkhtmltopdf' 
} 
0

MAC OSX : readme에 명시된 바와 같이

, 내가 가진 초기화를 만들어

brew install wkhtmltopdf 

이가 설치할 수있게된다

brew install Caskroom/cask/wkhtmltopdf 

다음 config/initializers/wicked_pdf.rb

WickedPdf.config = { 
    exe_path: '/usr/local/bin/wkhtmltopdf' 
}