100 lines
2.4 KiB
Plaintext
100 lines
2.4 KiB
Plaintext
|
= RFPDF Template Plugin
|
|||
|
|
|||
|
A template plugin allowing the inclusion of ERB-enabled RFPDF template files.
|
|||
|
|
|||
|
== Example .rb method Usage
|
|||
|
|
|||
|
In the controller, something like:
|
|||
|
|
|||
|
def mypdf
|
|||
|
pdf = FPDF.new()
|
|||
|
|
|||
|
#
|
|||
|
# Chinese
|
|||
|
#
|
|||
|
pdf.extend(PDF_Chinese)
|
|||
|
pdf.AddPage
|
|||
|
pdf.AddBig5Font
|
|||
|
pdf.SetFont('Big5','',18)
|
|||
|
pdf.Write(5, '²{®É®ð·Å 18 C Àã«× 83 %')
|
|||
|
icBig5 = Iconv.new('Big5', 'UTF-8')
|
|||
|
pdf.Write(15, icBig5.iconv("宋体 should be working"))
|
|||
|
send_data pdf.Output, :filename => "something.pdf", :type => "application/pdf"
|
|||
|
end
|
|||
|
|
|||
|
== Example .rfdf Usage
|
|||
|
|
|||
|
In the controller, something like:
|
|||
|
|
|||
|
def mypdf
|
|||
|
@options_for_rfpdf ||= {}
|
|||
|
@options_for_rfpdf[:file_name] = "nice_looking.pdf"
|
|||
|
end
|
|||
|
|
|||
|
In the layout (make sure this is the only item in the layout):
|
|||
|
<%= @content_for_layout %>
|
|||
|
|
|||
|
In the view (mypdf.rfpdf):
|
|||
|
|
|||
|
<%
|
|||
|
pdf = FPDF.new()
|
|||
|
#
|
|||
|
# Chinese
|
|||
|
#
|
|||
|
pdf.extend(PDF_Chinese)
|
|||
|
pdf.AddPage
|
|||
|
pdf.AddBig5Font
|
|||
|
pdf.SetFont('Big5','',18)
|
|||
|
pdf.Write(5, '²{®É®ð·Å 18 C Àã«× 83 %')
|
|||
|
icBig5 = Iconv.new('Big5', 'UTF-8')
|
|||
|
pdf.Write(15, icBig5.iconv("宋体 should be working"))
|
|||
|
|
|||
|
#
|
|||
|
# Japanese
|
|||
|
#
|
|||
|
pdf.extend(PDF_Japanese)
|
|||
|
pdf.AddSJISFont();
|
|||
|
pdf.AddPage();
|
|||
|
pdf.SetFont('SJIS','',18);
|
|||
|
pdf.Write(5,'9ÉñåéÇÃåˆäJÉeÉXÉgÇåoǃPHP 3.0ÇÕ1998îN6åéÇ…åˆéÆÇ…ÉäÉäÅ[ÉXÇ≥ÇÍNjǵÇΩÅB');
|
|||
|
icSJIS = Iconv.new('SJIS', 'UTF-8')
|
|||
|
pdf.Write(15, icSJIS.iconv("これはテキストである should be working"))
|
|||
|
|
|||
|
#
|
|||
|
# Korean
|
|||
|
#
|
|||
|
pdf.extend(PDF_Korean)
|
|||
|
pdf.AddUHCFont();
|
|||
|
pdf.AddPage();
|
|||
|
pdf.SetFont('UHC','',18);
|
|||
|
pdf.Write(5,'PHP 3.0Àº 1998³â 6¿ù¿¡ °ø½ÄÀûÀ¸·Î ¸±¸®ÁîµÇ¾ú´Ù. °ø°³ÀûÀÎ Å×½ºÆ® ÀÌÈľà 9°³¿ù¸¸À̾ú´Ù.');
|
|||
|
icUHC = Iconv.new('UHC', 'UTF-8')
|
|||
|
pdf.Write(15, icUHC.iconv("이것은 원본 이다"))
|
|||
|
|
|||
|
#
|
|||
|
# English
|
|||
|
#
|
|||
|
pdf.AddPage();
|
|||
|
pdf.SetFont('Arial', '', 10)
|
|||
|
pdf.Write(5, "should be working")
|
|||
|
%>
|
|||
|
<%= pdf.Output() %>
|
|||
|
|
|||
|
|
|||
|
== Configuring
|
|||
|
|
|||
|
You can configure Rfpdf by using an @options_for_rfpdf hash in your controllers.
|
|||
|
|
|||
|
Here are a few options:
|
|||
|
|
|||
|
:filename (default: action_name.pdf)
|
|||
|
Filename of PDF to generate
|
|||
|
|
|||
|
Note: If you're using the same settings for @options_for_rfpdf often, you might want to
|
|||
|
put your assignment in a before_filter (perhaps overriding :filename, etc in your actions).
|
|||
|
|
|||
|
== Problems
|
|||
|
|
|||
|
Layouts and partials are currently not supported; just need
|
|||
|
to wrap the PDF generation differently.
|