2012-09-24 4 views
4

에 SVG 작동하지 wkhtmltopdf 나는 레일에 루비 MAC OSX 10.7 내 로컬 컴퓨터에 PDF 파일을 생성하는 wicked_pdf 보석 및 wkhtmltopdf 0.9.9 라이브러리를 사용하여 3.2 응용 프로그램을 가지고있다. 5 라이온. 앱은 HTML 페이지 (SVG 이미지 포함)를 PDF 파일로 렌더링합니다. 이는 앱이 성취하고자하는 정확한 행동입니다.wicked_pdf, Heroku가

로컬에서는 OSX 용 11.0.0 버전의 버그로 인해 wkhtmltopdf 0.9.9를 사용해야했습니다. wkhtmltopdf-0.9.9 리눅스 정적 바이너리 (AMD64)와 SVG 렌더링이 붕괴 할 것 같다

문제는 응용 프로그램이 Heroku가에 생산에 푸시 할 때, 그것은 다른 바이너리를 사용한다는 것이다. PDF가 생성되었지만 SVG 이미지가 제대로 렌더링되지 않습니다. 그들은 단순히 이미지가 있어야하는 빈 또는 정사각형 "껍질"입니다.

wkhtmltopdf-heroku 보석을 사용했지만 "깨진 파이프"오류가 계속 발생했습니다.

이 문제와 관련된 오류 메시지는 없으며 Linux 버전의 어디에 문제가 있는지 알 수 없습니다. 거기에 어떤 아이디어가 있니? 이것은 config/initializers/wicked_pdf.rb 파일에서 우리의 코드

:

if Rails.env.staging? || Rails.env.production? 
    exe_path = Rails.root.join('bin', 'wkhtmltopdf-amd64').to_s 
else 
    exe_path = Rails.root.join('bin', 'wkhtmltopdf').to_s 
end 
+0

+1, 비슷한 문제가있다. 내가 추가 할 때 PDF 생성이 중단됩니다. 컨트롤러의 PDF 렌더링에 javscript_delay를 사용하면 'Broken Pipe'오류가 발생합니다. – ryan508

+0

우리가 포기했다. 대신 새우를 사용하기 시작했다. – wrburgess

+1

가치가있는 것을 위해, 나는 'wkhtmltopdf-binary'젬을 사용하여 heroku에서 SVG 렌더링을한다. 나는 'wkhtmltopdf-heroku'보석을 들여다 보았지만 'wkhtmltopdf-binary'보석은 Rails 3.2/heroku와 잘 작동하는 것으로 보입니다. 나는 새우를 사용해야한다는 것을 싫어한다. 진짜 고통처럼 보인다. – ryan508

답변

1

이 무거운 땜질 및 구성 – Base64로 인코딩 SVG 파일을 할 필요없이 작동하는 쉬운 방법 및 인라인을 포함하여 HTML :

<img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGF...> 

이 방법을 사용하여 CSS에 글꼴을 포함하지만 SVG 및 기타 이미지 형식에서도 사용할 수 있습니다.