美文网首页我爱编程
ruby on rails 中使用phantomjs 生成pdf

ruby on rails 中使用phantomjs 生成pdf

作者: limx | 来源:发表于2016-07-31 16:55 被阅读0次

    一、新建项目

    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样式里的背景和背景图片。

    相关文章

      网友评论

        本文标题:ruby on rails 中使用phantomjs 生成pdf

        本文链接:https://www.haomeiwen.com/subject/sotxsttx.html