2014-10-21 2 views

ответ

1

Интересно, почему этот вопрос вниз проголосовали ...

Во всяком случае, я нашел способ сделать это. Здесь это на случай, если кто-то задается вопросом один и тот же день.

document = Nokogiri::XML(File.read(Rails.root.to_s+'/lib/label.xml')) 
template = Nokogiri::XSLT(File.open(Rails.root.to_s+'/lib/xsl_which_imports_more_xsl.xsl','rb')) 
html_document = template.transform(document) 

pdf = WickedPdf.new.pdf_from_string(html_document) 

save_path = Rails.root.join('public','filename.pdf') 
File.open(save_path, 'wb') do |file| 
    file << pdf 
end 

Wicked_pdf может быть в состоянии сделать это без Nokogiri, но таким образом он работал отлично, так что я не тратить больше времени на это.

1

Посмотрите на http://xmlgraphics.apache.org/fop/ Из рубина вы вызываете его, выполняя команду bash. Мы используем его во всех наших проектах Rails.

+0

Спасибо за комментарий. Я знал о fop, но, поскольку я бегу на Heroku, довольно сложно заставить его работать там. – Pod