Ruby Ruportʵ¼ù—ÖÐÎÄPDF±¨±íÖ®PRAWN
FPDFÄÜÖ§³ÖPDFµÄÖÐÎÄ´òÓ¡£¬È»¶øÈ´´æÔÚ²»ÉٵIJ»ÈçÒâÖ®´¦£¬¾ÝÎÒĿǰµÄʹÓã¬×ܽá³ö¼¸µã£º
1£©FPDFÌṩµÄPdf_Chinese×ÖÌ壬½«GBÕâÖÖ×ÖÌåдÈëÁË´úÂëÖУ¬ÈôÎÒÃÇÏ£ÍûÒýÈëÆäËûµÄÖÐÎÄ×ÖÌ壬Ôò²»ÄÜ·½±ãµØÊ¹ÓÃ
2£©FPDFÊä³öµÄÊý×Ö²¢²»ÃÀ¹Û£¬²»ÈçRuport::Formatter::PDF×Ô´øµÄ×ÖÌå
3£©FPDFÌṩµÄ·½·¨²¢²»¶à£¬¶ÔÓÚÒ»°ãµÄ±¨±í´òÓ¡£¬ÓõÄ×î¶àµÄÒ²ÐíÊÇ Cell·½·¨£¬µ«Èç¹ûÁ¬Ò»¸öÆÕͨµÄ±¨±í´òÓ¡¶¼ÐèÒªÄܹý´úÂë¿ØÖÆ»»ÐС¢»Ö±Ïß¡¢Ð´µ¥Ôª¸ñ£¬ÄǾÍÌ«²»·½±ãÁË
PrawnÒ²ÊǺôÉù½Ð¸ßµÄÒ»ÖÖRuby PDF±¨±í¹¤¾ß£¬¶ÔÓÚËüºÍ FPDF µ½µ×˸üÓÅÐ㣬Õâ¾ÍÒªÒòÈ˶øÒìÁË£¬FPDFÊÇÓÃPHP±àдµÄPDF¿âµÄÒÆÖ²£¬¶øPRAWNÔò²»ÊÇ Prawn£ºÊ¹ÓÃRubyÉú³ÉPDF¸ü¼ò½Ý ÖÐÓмòµ¥µÄ½éÉÜ
ÏÂÃæÀ´¿´¿´PRAWNÊÇÈçºÎʵÏÖPDFµÄ´òÓ¡µÄ£¨»ù±¾µÄʵÏֲο¼ Ruby Ruportʵ¼ù—¼òµ¥±¨±íϵͳ£©
Ò»¡¢°²×°Prawn
gem install prawn
¶þ¡¢ÐÞ¸Äenviroment.rb
Ìí¼ÓÈçÏÂÒýÓãº
require "prawn"
require 'prawn/layout'
Èý¡¢ÒýÈëºÏÊʵÄÖÐÎÄ×ÖÌå
PrawnÖ§³ÖÍⲿÒýÈëÖÐÎÄ×ÖÌ壬ÀýÈç“¿¬Ìå”
´ÓC:\Windows\FontsϽ«±¾»úÖ§³ÖµÄ×ÖÌåÎļþ(*.ttf)¸´ÖƵ½
%RUBY_HOME%\lib\ruby\gems\1.8\gems\prawn-core-0.8.4\data\fonts
ÔÚ´úÂëÖÐͨ¹ý
@pdf_writer.font"#{::Prawn::BASEDIR}/data/fonts/simkai.ttf"
Ö¸¶¨ÐèÒªÒýÓõÄ×ÖÌå
ËÄ¡¢ÐÞ¸ÄReportOutputController.rb
Ìæ»»Pdf<Ruport::Formatter::PDFΪÈçÏ´úÂ룺
class Ruport::Formatter::PRAWN< Ruport::Formatter::PDF
def pdf_writer
unless @pdf_writer
@pdf_writer = ::Prawn::Document.new
@pdf_writer.font"#{::Prawn::BASEDIR}/data/fonts/simkai.ttf"
end
return @pdf_writer
end
def render_pdf
output<<pdf_writer.render
end
end
class Pdf<Ruport::Formatter::PRAWN
renders :pdf, :for => ReportOutputController
build :data_sheet do
eval(options[:outputContent])
end
end
Îå¡¢±£´ærepoert_templates
¶ÔÓÚtemplate_contentµÄÄÚÈݱ£´æÎªÈçÏ£º
pdf_writer.text ("²úÆ·Áбí",
:align=>:center,:size=>15)
pdf_writer.image ("public/images/ruport.jpg",
:at => [0,730],
:height=>50,
:width=>100)
pheader=%w[Àà±ð Ãû³Æ ¼Û¸ñ]
pdata=[]
for i in 0..data.length-1 do
temp=[data[
Ïà¹ØÎĵµ£º
require 'open-uri'
$NAME_CHARS= (?a..?z).to_a+(?0..?9).to_a
def is_name_used(name)
str=open('http://passport.csdn.net/UserExist.aspx?UserName='+name)
str=str.read
#str=str.encode('GBK','utf-8')
return true if str[/Red/]
end
def enum_names(len=2)
return if len<2
f=File.open(' ......
Watir Óï·¨£¨Web Application Testing in Ruby)
# watirµÄ°²×°
watieµÄ°²×°Çë²é¿´ -> Ruby libraryµÄ°²×°
# ʹÓÃWatir¹¤¾ß£¬ÐèÒªÔڽű¾ÖмÓÉÏ
require 'watir'
# ´´½¨Ò»¸öIEµÄʵÀý
ie = Watir::IE.new
»òÕßÔÚ´´½¨µÄͬʱֱ½Óתµ½Ò³Ãæ
ie = Watir::IE.start('http://www.text.com/')
WatirʹÓÃstart·½·¨ ......
ÓÐÒ»¸öȫеÄÏîÄ¿£¬ÒòΪ¿¼Âǵ½½«À´µÄÊý¾ÝÀ©Õ¹ÐÔÄÜ£¬ËùÒÔ¿¼ÂÇÓÃCassandra×öÊý¾Ý´æ´¢£¬Ç°¶ËÓÃLighttpd + FastCGI + Rails¡£ÔÚʹÓÃCassandraµÄʱºò£¬¾õµÃÓÐһЩ¶«Î÷¿ÉÄÜ´ó¼Ò¶¼ÐèÒª£¬¾ÍдÁËÒ»¸ö¼òµ¥µÄÖ¸ÄÏ¡£ÒòΪÄÚÈݱȽϳ¤£¨16Ò³£©£¬¾ÍŪÁ˸öPDFÎļþ¸ø´ó¼ÒÏÂÔØ¡£
Cassandra in Action with Twitter's Ruby Client.pdf
Èç¹ûÏÂÔ ......
±¾ÎÄת×Ô:
http://hi.baidu.com/24xinhui/blog/item/9f52dd34382e11325ab5f553.html
ruby-Óï·¨
2009Äê06ÔÂ20ÈÕ ÐÇÆÚÁù ÉÏÎç 00:21
http://www.blogjava.net/xxllnnn/archive/2009/01/18/251762.html
http://www.cnblogs.com/cnblogsfans/archive/2009/01/24/1380804.html
__setobj__ £¨2009-7-14£©
&nbs ......
ת×Ô http://zhujg.javaeye.com/blog/355040
Ê×ÏÈ °²×° cygwin
cygwin Òª°²×°µÄ²å¼þÊÇ
ĬÈϵÄ+ make + gcc + libiconv
+ openssl
cygwinÏÂÐèÒª±àÒëÔÎļþ
µ½ruby-lang(http://ruby-lang.org/)
ÏÂÔØruby-1.9.1-p0.tar.gz
tar xvf ruby-1.9.1-p0.tar.gz
cd
ruby-1.9.1-p0
./configure
make && make in ......