• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

Still_Walking

  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

ruby on rails 中使用phantomjs 生成pdf

ruby on rails 中使用phantomjs 生成pdf

一、新建项目

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

  

posted on 2016-07-31 16:55  limanxian  阅读(279)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3