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

  

时间: 2024-08-11 01:33:53

ruby on rails 中使用phantomjs 生成pdf的相关文章

ruby on rails 中使用pdfkit生成pdf

说是使用pdfkit,其实做工作的还是wkhtmltopdf. 一.新建项目 rails new mypdf --skip-bundle 进入项目:cd mypdf,打开Gemfile:vim Gemfile 修改source为https://ruby.taobao.com 添加:gem 'pdfkit' 运行bundle install 二.配置 在项目目录下的config/initializers里加上pdfkit.rb文件,修改内容为: PDFKit.configure do |confi

ruby on rails 中使用phantomjs,并使用cookie

一.新建项目 rails new app --skip-bundle 完成后修改Gemfile文件:vim Gemfile 把source 修改成taobao或者ruby-china的源. 在这个文件里加入:gem 'phantomjs' 然后运行:bundle install 这样项目就新建完成了. phantomjs需要单独下载,如果不下载,这个gem运行的时候会自动下载,可能会比较慢. 二.生成pdf 创建一个controller在头部加上require 'phantomjs' 在form

理解ruby on rails中的ActiveRecord::Relation

ActiveRecord::Relation是rails3中添加的.rails2中的finders, named_scope, with_scope 等用法,在rails3统一为一种Relation用法. 以下是返回ActiveRecord::Relation的方法: bind create_with distinct eager_load extending from group having includes joins limit lock none offset order preloa

Ruby On Rails中REST API使用示例——基于云平台+云服务打造自己的在线翻译工具

做为一个程序员可能在学习技术,了解行业新动态,解决问题时经常需要阅读英文的内容:而像我这样的英文小白就只能借助翻译工具才能理解个大概:不禁经常感慨,英文对学习计算机相关知识太重要了!最近发现IBM的云平台Blumemix,并且提供语言翻译的服务,感觉不错,就拿来研究学习一下:这里就分享一下我的研究学习过程,如何使用Ruby On Rails调用REST API打造自己的在线翻译工具,并演示如何把它发布到云平台上,让每个人都可以通过网络访问使用它. 应用效果展示 您可以通过点击效果图片的链接访问它

Elasticsearch 的_msearch介绍及在ruby on rails 中的使用

一.基本介绍 _msearch就是multi search API使用的末端,它可以在一个相同的api中去执行多个查询请求. 请求的格式类似于大部API的格式,它的请求格式如下: header\n body\n header\n body\n header可以包含要查询的索引(可以是多个索引),可选的映射类型,还有search_type, preference和routing. body可以包含指定的搜索请求(包括:query.aggregations.from.size等等). 例子见官网:h

在C#.NET中,如何生成PDF文件?主要有以下几个途径

1.使用.NET文件流技术:若通过.NET的文件流技术生成PDF文件,必须对PDF文件的语法很清楚,例如BT表示实体内容开始:ET表示实体内容结束:TD表示换行等等.我们可以从Adobe的官方网站上下载PDF的语法说明文档,但文档几乎有1000页.如果熟悉好语法以后再编程,花费的时间肯定很长,而且生成的PDF文档不一定能满足要求.有关C# 代码参见附件.有关PDF文件的语法详见:http://partners.adobe.com/public/developer/en/pdf/PDFRefere

在HTML中优雅的生成PDF

代码 Html代码 <html> <head> <meta charset="UTF-8"> <script type="text/javascript" src="http://myxdoc.sohuapps.com/xdoc.js"></script> </head> <body style="height:100%; margin:0; overflow

json格式在ruby和rails中的注意事项

#虚拟网络拓扑的json数据 def topodata #@vnic = Vnic.all #flash.now[:notice] = 'Message sent!' #flash.now[:alert] = 'Message sent!' simple_json = { nodes: [{ name: 'bob', age: "22", awesome: "true" }, { name: 'bob', age: 22, awesome:true }], link

Ruby on Rails 中你使用了Kaminari 后,千万不要再引入will_pagination 这个Gem 了

今日做开发的时候发现的这个问题 发现无论怎样配置都不能使用Kaminari 的Per 这个功能,分页大小也固定在了30 最开始还以为是Ransack 这个Gem 影响的,上网搜了很久发现没有 最后仔细检查,原来是Gemfile 里面包含了will_pagination    把它删除之后,一切恢复正常