码迷,mamicode.com
首页 > Web开发 > 详细

ruby on rails 中使用phantomjs 生成pdf

时间:2016-07-31 17:43:52      阅读:196      评论:0      收藏: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

标签:

原文地址:http://www.cnblogs.com/limx/p/5723245.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!