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[
Ïà¹ØÎĵµ£º
ǰÑÔ
ÔÚ¡¶RoutingµÄÔØÈë¡·ÖУ¬ÎÒ´óÖ½éÉÜÁËÒ»ÏÂRailsÖÐ×î¼òµ¥µÄrouteÊÇÈçºÎ¼ÓÔØµÄ¡£ÕâÆªÎÄÕ£¬ÎÒ½«À´½²Ò»½²RailsϵͳÖиüΪ¸´ÔÓµÄnamed routeºÍÓëRESTfulÏà¹ØµÄresourceÊÇÈçºÎ±»¼ÓÔØµÄ¡£ÎªÁ˲»Öظ´Ì«¶àµÄ±ÊÄ«£¬ÕâÆªÎÄÕ½«ÔÚǰÎĵĻù´¡ÉϽøÐУ¬Èç¹û·¢ÏÖµ¥¶À¿´´ËÎÄʱ£¬ÓÐÉÙÐíÔÆÀïÎíÀ½¨ÒéÏÈ¿´Ò»¿´ÎÒµÄǰƪÎÄÕ£ºR ......
Ruby ÀàµÄ¼Ì³Ð
¹Ø¼ü×Ö: Ruby ÀàµÄ¼Ì³Ð
Ò»¡¢ÆÕͨ·½Ê½µÄ¼Ì³Ð
RubyÖ»Ö§³Öµ¥¼Ì³Ð
ruby ´úÂë
class
Child < Father
......
end
ObjectÊÇËùÓÐÀàµÄÊ¼×æ£¬²¢ÇÒObjectµÄʵÀý·½·¨ ......
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·½·¨ ......
Prepare
1. Download 'OCI 1.x.x.rb' (it's VERY important - execution MUST be *.rb)
2. Download 'oci8lib.so'
Install
1. Copy 'OCI8.rb' to .../ruby/lib/ruby/site_ruby/1.8/DBD/OCI8
2. Copy 'oci8.rb' to .../ruby/lib/ruby/site_ruby/1.8
3. Copy 'oci8lib.so' to .../ruby/lib/ruby/site_ruby/1.8/i386-msv ......
ÓÐÒ»¸öȫеÄÏîÄ¿£¬ÒòΪ¿¼Âǵ½½«À´µÄÊý¾ÝÀ©Õ¹ÐÔÄÜ£¬ËùÒÔ¿¼ÂÇÓÃCassandra×öÊý¾Ý´æ´¢£¬Ç°¶ËÓÃLighttpd + FastCGI + Rails¡£ÔÚʹÓÃCassandraµÄʱºò£¬¾õµÃÓÐһЩ¶«Î÷¿ÉÄÜ´ó¼Ò¶¼ÐèÒª£¬¾ÍдÁËÒ»¸ö¼òµ¥µÄÖ¸ÄÏ¡£ÒòΪÄÚÈݱȽϳ¤£¨16Ò³£©£¬¾ÍŪÁ˸öPDFÎļþ¸ø´ó¼ÒÏÂÔØ¡£
Cassandra in Action with Twitter's Ruby Client.pdf
Èç¹ûÏÂÔ ......