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]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值