我爱编程

ruby on rails 中使用phantomjs 生成pdf

2016-07-31  本文已影响0人  limx

一、新建项目

rails new app --skip-bundle

完成后修改Gemfile文件:vim Gemfile

把source 修改成taobao或者ruby-china的源。

在这个文件里加入:gem 'phantomjs'

然后运行:bundle install

这样项目就新建完成了。

二、生成pdf

创建一个controller在头部加上require 'phantomjs',在里面加入一个获取pdf的get方法:get_pdf

在这个方法里加入如下代码:

Phantomjs.base_dir = "/path/project_name/bin/phantomjs/" #phantomjs将要安装的目录

Phantomjs.run('/path/project_name/public/generate_pdf.js')

send_file("public/mypdf.pdf", :filename => "mypdf.pdf", :type => "application/pdf")

在generate_pdf.js加入如下代码:

var page = require('webpage').create();

page.open('http://www.baidu.com');

page.onLoadFinished = function() {

page.render('public/mypdf.pdf');

phantom.exit();

}

三、运行

启动服务:rails s

在地址栏里输入http://localhost:3000/controller/get_pdf

第一次请求这个方法,会安装phantomjs到/path/project_name/bin/phantomjs/这个目录。

等安装完成后,就可以看到保存要下的pdf了:

这样这成功了。

注意:这样导出的pdf不包含css样式里的背景和背景图片。

上一篇下一篇

猜你喜欢

热点阅读