File: example022_controller.rb

package info (click to toggle)
ruby-rbpdf 1.21.3%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 16,488 kB
  • sloc: ruby: 138,259; makefile: 12
file content (132 lines) | stat: -rw-r--r-- 4,243 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# coding: UTF-8
#============================================================+
# Begin       : 2008-03-04
# Last Update : 2010-05-20
#
# Description : Example 022 for RBPDF class
#               CMYK colors
#
# Author: Jun NAITOH
# License: LGPL 2.1 or later
#============================================================+

require("example_common.rb")

class Example022Controller < ApplicationController
  def index
    # create new PDF document
    pdf = RBPDF.new(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false)
    
    # set document information
    pdf.set_creator(PDF_CREATOR)
    pdf.set_author(PDF_AUTHOR)
    pdf.set_title('RBPDF Example 022')
    pdf.set_subject('RBPDF Tutorial')
    pdf.set_keywords('RBPDF, PDF, example, test, guide')
    
    # set default header data
    pdf.set_header_data(PDF_HEADER_LOGO, PDF_HEADER_LOGO_WIDTH, PDF_HEADER_TITLE + ' 022', PDF_HEADER_STRING)
    
    # set header and footer fonts
    pdf.set_header_font([PDF_FONT_NAME_MAIN, '', PDF_FONT_SIZE_MAIN])
    pdf.set_footer_font([PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA])
    
    # set default monospaced font
    pdf.set_default_monospaced_font(PDF_FONT_MONOSPACED)
    
    # set margins
    pdf.set_margins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT)
    pdf.set_header_margin(PDF_MARGIN_HEADER)
    pdf.set_footer_margin(PDF_MARGIN_FOOTER)
    
    # set auto page breaks
    pdf.set_auto_page_break(true, PDF_MARGIN_BOTTOM)
    
    # set image scale factor
    pdf.set_image_scale(PDF_IMAGE_SCALE_RATIO)
    
    # set some language-dependent strings
    pdf.set_language_array($l)
    
    # ---------------------------------------------------------
    
    # check also the following methods:
    # set_draw_colorArray()
    # set_fill_colorArray()
    # set_text_colorArray()
    
    # set font
    pdf.set_font('helvetica', 'B', 18)
    
    # add a page
    pdf.add_page()
    
    pdf.write(0, 'Example of CMYK, RGB and Grayscale colours', '', 0, 'L', true, 0, false, false, 0)
    
    # define style for border
    border_style = {'all' => {'width' => 2, 'cap' => 'square', 'join' => 'miter', 'dash' => 0, 'phase' => 0}}
    
    # --- CMYK ------------------------------------------------
    
    pdf.set_draw_color(50, 0, 0, 0)
    pdf.set_fill_color(100, 0, 0, 0)
    pdf.set_text_color(100, 0, 0, 0)
    pdf.rect(30, 60, 30, 30, 'DF', border_style)
    pdf.text(30, 92, 'Cyan')
    
    pdf.set_draw_color(0, 50, 0, 0)
    pdf.set_fill_color(0, 100, 0, 0)
    pdf.set_text_color(0, 100, 0, 0)
    pdf.rect(70, 60, 30, 30, 'DF', border_style)
    pdf.text(70, 92, 'Magenta')
    
    pdf.set_draw_color(0, 0, 50, 0)
    pdf.set_fill_color(0, 0, 100, 0)
    pdf.set_text_color(0, 0, 100, 0)
    pdf.rect(110, 60, 30, 30, 'DF', border_style)
    pdf.text(110, 92, 'Yellow')
    
    pdf.set_draw_color(0, 0, 0, 50)
    pdf.set_fill_color(0, 0, 0, 100)
    pdf.set_text_color(0, 0, 0, 100)
    pdf.rect(150, 60, 30, 30, 'DF', border_style)
    pdf.text(150, 92, 'Black')
    
    # --- RGB -------------------------------------------------
    
    pdf.set_draw_color(255, 127, 127)
    pdf.set_fill_color(255, 0, 0)
    pdf.set_text_color(255, 0, 0)
    pdf.rect(30, 110, 30, 30, 'DF', border_style)
    pdf.text(30, 142, 'Red')
    
    pdf.set_draw_color(127, 255, 127)
    pdf.set_fill_color(0, 255, 0)
    pdf.set_text_color(0, 255, 0)
    pdf.rect(70, 110, 30, 30, 'DF', border_style)
    pdf.text(70, 142, 'Green')
    
    pdf.set_draw_color(127, 127, 255)
    pdf.set_fill_color(0, 0, 255)
    pdf.set_text_color(0, 0, 255)
    pdf.rect(110, 110, 30, 30, 'DF', border_style)
    pdf.text(110, 142, 'Blue')
    
    # --- GRAY ------------------------------------------------
    
    pdf.set_draw_color(191)
    pdf.set_fill_color(127)
    pdf.set_text_color(127)
    pdf.rect(30, 160, 30, 30, 'DF', border_style)
    pdf.text(30, 192, 'Gray')
    
    # ---------------------------------------------------------
    
    # Close and output PDF document
    send_data pdf.output(), :type => "application/pdf", :disposition => "inline"
  end
end

#============================================================+
# END OF FILE
#============================================================+