`
sunfengcheng
  • 浏览: 183798 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

rails 简单的生成PDF文档

阅读更多
[size=x-large][color=green]生成PDF文档
  你用一个应用程序, 它将产生一个报表, 一个回执单或者一些其他的输出, 你想让用户保存它们, 为了得到一致的格式以及方便的分发,用一个PDF文档进行输出。
  在rails 应用程序中使用 ruby FPDF来生成PDF 文档。
 首先在 http://brian.imxcc.com/fpdf/rfpdf153c.tar.gz. 下载 ruby FPDF .解压后移动到fpdf.rb 的文件目录下的lib下面。 
    在控制器里 包含进来。
app/controllers/reports_controller.rb:

class ReportsController < ApplicationController

  require 'fpdf'

  def index
  end

  def pdf_report

    # Data
    col_sizes = [40,20,20,20]
    data = [['Course','Exam 1','Exam 2','Final'],
            ['ENGLISH 101','90','87','B'],
            ['MUSIC 5A','97','100','A'],
            ['CALC 2','98','91','A'],
            ['SWIM','89','84','B'],
            ['HIST 110','91','81','B']]

    send_data pdf_report_card(col_sizes, data),
              :filename => "report.pdf", 
              :type => "application/pdf" 
  end

  private
    def pdf_report_card(col_sizes, data)

      pdf = FPDF.new

      pdf.AddPage
      pdf.SetFont('Arial','B')
      pdf.SetFontSize(10)
      pdf.SetFillColor(50,50,50)
      pdf.SetTextColor(255)
      pdf.SetDrawColor(0)
      pdf.SetLineWidth(0.2)

      # Table Header
      i = 0   
      col_sizes.each do
        pdf.Cell(col_sizes[i],7,data[0][i],1,0,'C',1)
        i += 1
      end
      pdf.Ln()

      pdf.SetFillColor(218,206,255)
      pdf.SetTextColor(0)
      pdf.SetFont('Arial')

      fill = 0
      # Table Data
      data[1..-1].each do |row|
          pdf.Cell(col_sizes[0],6,row[0],'LR',0,'L',fill)
          pdf.Cell(col_sizes[1],6,row[1],'LR',0,'L',fill)
          pdf.Cell(col_sizes[2],6,row[2],'LR',0,'L',fill)
          pdf.Cell(col_sizes[3],6,row[3],'LR',0,'C',fill)
          pdf.Ln()
          fill = (fill-1).abs % 2
      end

      # Bottom Table Border
      total = 0
      col_sizes.each {|x| total += x}
      pdf.Cell(total,0,'','T');

      pdf.Output
    end
end

在index.rhtml 简单的恶创建一个生成PDF报告连接。 
app/views/reports/index.rhtml:

<h1>Report</h1>

<%= link_to 'Make PDF', :action => 'pdf_report' %>
[/color][/size]
3
2
分享到:
评论

相关推荐

    使用RSpec 测试Rails 程序.pdf

    4. **生成器**:使用`rails generate rspec:install`命令来初始化RSpec,并创建必要的目录结构和初始文件。 #### 三、模型测试 - **分析模型测试**:了解模型的基本结构,包括属性、关联关系、验证规则等。 - **...

    在rails中 使用RSpec生产CHM文档

    总结来说,这个主题涵盖了Rails开发、RSpec测试、文档生成以及可能的文件转换技术。要深入学习这个话题,你需要熟悉Rails、RSpec的使用,理解CHM文件的结构,以及如何使用适当的工具和技术将代码行为测试和文档生成...

    ruby on rails 敏捷开发,3.1 pdf and epub format

    Ruby on Rails,简称Rails,是由David Heinemeier Hansson基于Ruby语言开发的一个开源Web应用程序框架,它遵循敏捷开发的理念,致力于提高开发效率和代码的可读性。在Rails 3.1版本中,引入了许多重要更新和改进,...

    Ruby On Rails中文教材(PDF)

    PDF文档通常包含详细的教程、实例代码和可能的练习题,旨在帮助学习者全面了解和掌握Ruby on Rails的核心概念和技术。 在Rails框架中,关键知识点包括: 1. **Ruby基础知识**:首先,理解Ruby语言的基本语法和特性...

    ruby on rails 3 tutorial.pdf

    《Ruby on Rails 3 Tutorial》是一本专门为初学者设计的指南,旨在帮助读者快速掌握Ruby on Rails这一强大的Web开发框架。Ruby on Rails(简称Rails)是基于Ruby语言的一个开源框架,它采用MVC(Model-View-...

    Ruby on Rails Bible.pdf

    根据提供的文件信息,“Ruby on Rails Bible.pdf”这本书涵盖了Ruby on Rails框架的基础知识、核心概念以及高级功能等内容。接下来,我们将从书中的章节标题入手,详细阐述各章节所涉及的重要知识点。 ### 引言 ...

    Ruby+for+Rails

    `rails generate migration AddColumnToBooks column:type`会生成一个新的迁移文件,然后通过`rails db:migrate`执行迁移,更新数据库。 7. **路由(Routing)** Rails的路由系统将URL映射到控制器的动作上,定义...

    Ruby-RailsErd为Rails应用程序生成实体关系图

    "Rails Erd"是一个Ruby gem,专门用于为Rails应用程序自动生成ERD,使得数据库设计和管理变得更加简单和直观。这个工具是由Voormedia开发的,版本号为0eb4577。 ERD是数据库设计的基础,它通过图形化方式展示了各个...

    java基础之rails命令大全.pdf

    - `rake doc:rails`: 生成 Rails 框架本身的 API 文档。 - `rake doc:plugins`: 为已安装的所有插件生成文档。 - **文档清理**: - `rake doc:clobber_app`: 删除应用程序的 API 文档。 - `rake doc:clobber_...

    Ruby on Rails的PDF生成器(来自HTML)插件-Ruby开发

    Wicked PDF Wicked PDF Ruby on Rails的PDF生成插件Wicked PDF使用shell实用程序wkhtmltopdf从HTML向用户提供PDF文件。 换句话说,而不是处理某种PDF生成的DSL Wicked PDF Ruby on Rails的PDF生成插件Wicked PDF使用...

    中文版rails教程

    1. **生成资源(Generating Resources)**:使用`rails generate`命令可以快速创建模型、控制器、视图等文件,如`rails generate scaffold Post title:string content:text`会生成一个名为Post的资源,包含相关的...

    wicked_pdf:Ruby on Rails的PDF生成器(来自HTML)插件

    Wicked PDF使用shell实用程序从HTML向用户提供PDF文件。 换句话说,您无需像通常那样处理PDF生成的DSL,而是只需像通常那样编写HTML视图,然后让Wicked PDF处理繁琐的工作。 Wicked PDF已经过验证,可以在Ruby 2.2...

    ruby on rails最新版

    在压缩包子文件的文件名称列表中仅列出“rails”,这可能是Rails框架的核心库文件,或者是包含了Rails框架的安装包。在实际的开发环境中,这样的压缩包通常还会包含数据库连接器(如pg或mysql2)、开发工具(如...

    Rails入门教程一(翻译).pdf

    **Rails入门教程一(翻译).pdf** Rails,全称为Ruby on Rails,是一个基于Ruby语言的开源Web应用程序框架,遵循MVC(Model-View-Controller)架构模式,用于构建数据库驱动的web应用。本教程是针对初学者设计的,...

    rails-exporter-源码.rar

    数据导出是 web 应用中常见的需求,例如生成 CSV、Excel 或 PDF 文件供用户下载。Exporter 类库通常包含一系列方法,用于格式化数据、生成文件并提供下载链接。Rails Exporter 可能会利用 ActiveRecord 查询数据,并...

    rails学习教程

    本“rails学习教程”PDF文档将涵盖以上所有内容,通过详尽的实例和解释,帮助你从新手到熟手,全面掌握Rails开发。无论是想从事Web开发职业,还是想要提升个人项目开发能力,这都是一份不可多得的学习资料。

    rails22cn.pdf

    根据提供的文件信息,可以看出这是一份关于 Ruby on Rails(简称 Rails)编程的书籍或资源列表。下面将基于这些信息来生成相关的知识点。 ### 关键词:Rails (Ruby on Rails) **1. Ruby on Rails 平台简介** - *...

    Ruby+on+Rails快速Web应用开发实战.pdf

    - **数据库配置**:在Rails中,数据库的配置通常涉及模型的生成,以及在配置文件中设置数据库连接参数。 ### MVC架构模式 - **MVC架构**:文档中提到的MVC是Rails的核心架构模式,它将应用程序分为三个主要的组件...

    ruby on rails社区网站开发源码

    2. **初始化项目**:使用`rails new`命令创建一个新的Rails应用,这个命令会生成一系列的目录和文件,包括基础的MVC结构。 3. **数据库配置**:Rails默认使用SQLite数据库,但也可以配置为使用MySQL、PostgreSQL等...

    Web开发敏捷之道--应用Rails进行敏捷Web开发 之 Depot代码。

    9. **tmp**:临时文件目录,存储运行时生成的文件,如缓存、session和pids(进程ID)。 10. **doc**:文档目录,可能包含API文档或其他开发者指南。 综上所述,这个压缩包提供的Depot项目是一个典型的Rails应用...

Global site tag (gtag.js) - Google Analytics