2013-08-20 2 views
1

pdf를 제작하여 파일로 보내거나 더 나은 방법으로 imagemagick 및 wicked_pdf를 사용하여 브라우저의 이미지로 렌더링하려고합니다.rails : pdf를 만들고 이미지로 렌더링

무언가를 보낼 수는 있지만 OS에 의해 이미지로 인식되지 않습니다. PDF를 문자열이 제대로 생성됩니다, 그래서 문제가이 내 컨트롤러의 코드

이미지 부분에 가정 :

format.jpg do 
    @format = :pdf 

    pdfstr = render_to_string 'generated_graphics/tag.erb', :pdf => "tag", :layout => nil, :page_height => '38mm', :page_width => '129mm' 

    file = Tempfile.new('foo') 
    file.write pdfstr 
    file.close 

    require 'RMagick' 
    pdf = Magick::ImageList.new(file.path) 
    send_data pdf.write("myimage.jpg"), :type => 'image/jpg' 
    end 
+0

잘 모르겠습니다. 왜 당신은 PDF보다는 심상으로 pdf를 보내고 싶은가? – ejosafat

+0

pdf를 이미지로 보내지 않고 이미지로 변환하여 보냅니다. –

+0

'Magick :: Image.read (file.path)'가 저에게 효과적입니다. 그러나, 나는 당신의 함의를 정말로 이해하지 못합니다. 최종 결과물이 HTML 템플릿의 JPEG 파일이면 'WickedPdf'를 사용할 필요가 없습니다. @iwiznia가 제안한대로 단순히'IMGKit'을 사용하십시오. 또한 'WickedPdf'를 사용하여 즉석에서 생성하는 PDF 파일이 없습니다. – j03w

답변

1

당신의 목표는 당신이 건너 뛸 수 있다고 생각 이미지를 가지고있는 경우 pdf는 완전히 pdf로 변환 한 다음 이미지로 변환하는 의미는 없습니다. IMGKit을 보시면 html 문자열에서 이미지를 생성 할 수 있습니다.

+0

하지만 이미 PDF가 있습니다. –

+0

음, pdf를 이미지로 변환하는 방법을 잘 모르겠지만 이미 생성하고있는 pdf와 IMGKit으로 생성 한 이미지를 모두 가질 수 있습니다 – iwiznia

4

루비 용 imagemagick 및 rmagick 플러그인을 살펴보십시오. 이렇게하면 jpeg로 PDF를 포함하여 모든 종류의 이미지 변환을 수행 할 수 있습니다.

http://rmagick.rubyforge.org/

편집 :

검증되지 않은 샘플 코드 :

require 'RMagick' 

pdf = Magick::ImageList.new("doc.pdf") 
pdf.write("myimage.jpg") 

doc.pdf 3 페이지,이 출력해야 3 개 이미지가있는 경우 : myimage.jpg.0 myimage.jpg.1 myimage.jpg.2

도큐멘트 on this page의 끝 부분을 살펴보고 비슷한 예를 보여줍니다. h 다중 프레임 gif가 여러 PNG로 변환 됨

+0

+1 [길이] (http : //studio.imagemagick.org/RMagick/doc/ilist.html#length) 및 [montage] (http://studio.imagemagick.org/RMagick/doc/ilist.html#montage) 옵션을 사용하여 단일 이미지를 만듭니다. , 예. 'pdf = Magick :: ImageList.new ('doc.pdf'); m = pdf.montage; m.tile = "1x # {pdf.length}"; m.write ('doc.pdf.montage.jpg')'. 그것은 또한 테스트되지 않은 코드입니다. –

관련 문제