prawn 0.11.1 → 0.12.0
Sign up to get free protection for your applications and to get access to all the features.
- data/GPLv2 +340 -0
- data/GPLv3 +674 -0
- data/README.md +96 -0
- data/Rakefile +0 -12
- data/examples/example_helper.rb +3 -0
- data/lib/prawn.rb +1 -1
- data/lib/prawn/core/page.rb +4 -2
- data/lib/prawn/core/pdf_object.rb +7 -7
- data/lib/prawn/core/text/formatted/arranger.rb +2 -1
- data/lib/prawn/core/text/formatted/line_wrap.rb +2 -1
- data/lib/prawn/core/text/formatted/wrap.rb +5 -1
- data/lib/prawn/document.rb +135 -112
- data/lib/prawn/document/bounding_box.rb +51 -5
- data/lib/prawn/document/column_box.rb +0 -19
- data/lib/prawn/document/internals.rb +1 -0
- data/lib/prawn/document/snapshot.rb +3 -0
- data/lib/prawn/font.rb +4 -3
- data/lib/prawn/font/afm.rb +11 -2
- data/lib/prawn/font/ttf.rb +15 -0
- data/lib/prawn/images.rb +1 -1
- data/lib/prawn/table.rb +23 -7
- data/lib/prawn/table/cell.rb +31 -9
- data/lib/prawn/table/cell/text.rb +2 -2
- data/prawn.gemspec +5 -6
- data/spec/bounding_box_spec.rb +157 -0
- data/spec/data/curves.pdf +66 -0
- data/spec/document_spec.rb +59 -4
- data/spec/extensions/mocha.rb +1 -3
- data/spec/font_spec.rb +23 -0
- data/spec/formatted_text_box_spec.rb +40 -0
- data/spec/images_spec.rb +7 -0
- data/spec/object_store_spec.rb +3 -3
- data/spec/snapshot_spec.rb +33 -0
- data/spec/table_spec.rb +75 -0
- data/spec/template_spec.rb +11 -5
- data/spec/text_spacing_spec.rb +18 -0
- data/spec/text_spec.rb +32 -0
- metadata +217 -283
- data/HACKING +0 -50
- data/README +0 -141
- data/examples/bounding_box/bounding_boxes.rb +0 -44
- data/examples/bounding_box/indentation.rb +0 -35
- data/examples/bounding_box/stretched_nesting.rb +0 -68
- data/examples/general/background.rb +0 -24
- data/examples/general/canvas.rb +0 -16
- data/examples/general/float.rb +0 -12
- data/examples/general/margin.rb +0 -37
- data/examples/general/measurement_units.rb +0 -52
- data/examples/general/metadata-info.rb +0 -17
- data/examples/general/multi_page_layout.rb +0 -19
- data/examples/general/outlines.rb +0 -67
- data/examples/general/page_geometry.rb +0 -32
- data/examples/general/page_numbering.rb +0 -40
- data/examples/general/page_templates.rb +0 -20
- data/examples/general/repeaters.rb +0 -48
- data/examples/general/stamp.rb +0 -42
- data/examples/general/templates.rb +0 -14
- data/examples/graphics/basic_images.rb +0 -24
- data/examples/graphics/curves.rb +0 -12
- data/examples/graphics/hexagon.rb +0 -14
- data/examples/graphics/image_fit.rb +0 -16
- data/examples/graphics/image_flow.rb +0 -38
- data/examples/graphics/image_position.rb +0 -18
- data/examples/graphics/line.rb +0 -33
- data/examples/graphics/polygons.rb +0 -17
- data/examples/graphics/rounded_polygons.rb +0 -20
- data/examples/graphics/rounded_rectangle.rb +0 -21
- data/examples/graphics/ruport_style_helpers.rb +0 -20
- data/examples/graphics/stroke_bounds.rb +0 -21
- data/examples/graphics/stroke_cap_and_join.rb +0 -46
- data/examples/graphics/stroke_dash.rb +0 -43
- data/examples/graphics/transformations.rb +0 -53
- data/examples/graphics/transparency.rb +0 -27
- data/examples/grid/bounding_boxes.rb +0 -22
- data/examples/grid/column_gutter_grid.rb +0 -21
- data/examples/grid/multi_boxes.rb +0 -52
- data/examples/grid/show_grid.rb +0 -14
- data/examples/grid/simple_grid.rb +0 -21
- data/examples/m17n/chinese_text_wrapping.rb +0 -18
- data/examples/m17n/euro.rb +0 -16
- data/examples/m17n/utf8.rb +0 -14
- data/examples/security/hello_foo.rb +0 -9
- data/examples/table/borders.rb +0 -25
- data/examples/table/cell.rb +0 -13
- data/examples/table/checkerboard.rb +0 -23
- data/examples/table/inline_format_table.rb +0 -13
- data/examples/table/multi_page_table.rb +0 -10
- data/examples/table/simple_table.rb +0 -25
- data/examples/table/subtable.rb +0 -13
- data/examples/table/widths.rb +0 -21
- data/examples/text/alignment.rb +0 -19
- data/examples/text/character_spacing.rb +0 -13
- data/examples/text/dfont.rb +0 -49
- data/examples/text/family_based_styling.rb +0 -25
- data/examples/text/font_size.rb +0 -34
- data/examples/text/inline_format.rb +0 -104
- data/examples/text/kerning.rb +0 -31
- data/examples/text/rendering_mode.rb +0 -21
- data/examples/text/rotated.rb +0 -99
- data/examples/text/shaped_text_box.rb +0 -32
- data/examples/text/simple_text.rb +0 -18
- data/examples/text/simple_text_ttf.rb +0 -18
- data/examples/text/span.rb +0 -30
- data/examples/text/text_box.rb +0 -90
- data/examples/text/text_box_returning_excess.rb +0 -52
- data/examples/text/text_flow.rb +0 -68
@@ -1,17 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# Demonstrates how to set metadata properties via the info option
|
4
|
-
# It allows one to specify no standard properties
|
5
|
-
#
|
6
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
7
|
-
%w[.. example_helper]))
|
8
|
-
|
9
|
-
Prawn::Document.generate "metadata-info.pdf",
|
10
|
-
:info => {
|
11
|
-
:Title => "My title", :Author => "John Doe", :Subject => "My Subject",
|
12
|
-
:Keywords => "test metadata ruby pdf dry", :Creator => "ACME Soft App",
|
13
|
-
:Producer => "Prawn", :CreationDate => Time.now, :Grok => "Test Property"
|
14
|
-
} do
|
15
|
-
text "This is a test of setting metadata properties via the info option"
|
16
|
-
text "It allows one to specify no standard properties like 'Grok'"
|
17
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# This demonstrates that Prawn can modify page size, margins and layout for
|
4
|
-
# each individual page, via Document#start_new_page()
|
5
|
-
#
|
6
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
7
|
-
%w[.. example_helper]))
|
8
|
-
|
9
|
-
Prawn::Document.generate("multi-layout.pdf", :page_layout => :landscape) do |pdf|
|
10
|
-
pdf.text "This is on a landscaped page"
|
11
|
-
pdf.start_new_page(:layout => :portrait)
|
12
|
-
pdf.text "This is on a portrait page"
|
13
|
-
pdf.start_new_page(:size => "LEGAL")
|
14
|
-
pdf.text "This is on legal paper size"
|
15
|
-
pdf.start_new_page(:left_margin => 150, :right_margin => 150)
|
16
|
-
pdf.text "This page has very wide left and right margins, causing a squeeze"
|
17
|
-
pdf.start_new_page(:margin => 300, :right_margin => 0)
|
18
|
-
pdf.text "This page has even wider margins on all sides except for the right side, where it's 0"
|
19
|
-
end
|
@@ -1,67 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# This example demonstrates the use of the the outlines option for a new document
|
4
|
-
# it sets an initial outline item with a title
|
5
|
-
#
|
6
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
7
|
-
%w[.. example_helper]))
|
8
|
-
|
9
|
-
Prawn::Document.generate('outlines.pdf') do
|
10
|
-
text "Page 1. This is the first Chapter. "
|
11
|
-
start_new_page
|
12
|
-
text "Page 2. More in the first Chapter. "
|
13
|
-
start_new_page
|
14
|
-
text "Page 3. This is the second Chapter. It has a subsection. "
|
15
|
-
start_new_page
|
16
|
-
text "Page 4. More in the second Chapter. "
|
17
|
-
outline.section 'Preface' do
|
18
|
-
outline.page :title => 'Preface'
|
19
|
-
end
|
20
|
-
outline.define do
|
21
|
-
section 'Chapter 1', :destination => 1, :closed => true do
|
22
|
-
page :destination => 1, :title => 'Page 1'
|
23
|
-
page :destination => 2, :title => 'Page 2'
|
24
|
-
end
|
25
|
-
section 'Chapter 2', :destination => 3 do
|
26
|
-
section 'Chapter 2 Subsection' do
|
27
|
-
page :title => 'Page 3'
|
28
|
-
end
|
29
|
-
page :destination => 4, :title => 'Page 4'
|
30
|
-
end
|
31
|
-
end
|
32
|
-
start_new_page
|
33
|
-
text "Page 5. Appendix"
|
34
|
-
start_new_page
|
35
|
-
text "Page 6. More in the Appendix"
|
36
|
-
outline.section 'Appendix', :destination => 5 do
|
37
|
-
outline.page :destination => 5, :title => 'Page 5'
|
38
|
-
outline.page :destination => 6, :title => 'Page 6'
|
39
|
-
end
|
40
|
-
go_to_page 4
|
41
|
-
start_new_page
|
42
|
-
text "inserted before the Appendix"
|
43
|
-
outline.update do
|
44
|
-
insert_section_after 'Chapter 2' do
|
45
|
-
page :destination => page_number, :title => "Pre-Appendix"
|
46
|
-
end
|
47
|
-
end
|
48
|
-
go_to_page 7
|
49
|
-
start_new_page
|
50
|
-
text "One last page"
|
51
|
-
outline.insert_section_after 'Page 6' do
|
52
|
-
outline.page :destination => page_number, :title => "Inserted after 6"
|
53
|
-
end
|
54
|
-
outline.add_subsection_to 'Chapter 1', :first do
|
55
|
-
outline.section 'Inserted subsection', :destination => 1 do
|
56
|
-
outline.page :destination => 1, :title => "Page 1 again"
|
57
|
-
end
|
58
|
-
end
|
59
|
-
start_new_page
|
60
|
-
text "Really this is the last page."
|
61
|
-
outline.update do
|
62
|
-
page :destination => page_number, :title => "Last Page"
|
63
|
-
end
|
64
|
-
start_new_page
|
65
|
-
text "OK, I lied; this is the very last page."
|
66
|
-
outline.page :destination => page_number, :title => "Very Last Page"
|
67
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# This demonstrates basic page layout and landscape options for Prawn
|
4
|
-
# documents. The style used here is a bit out of date, see
|
5
|
-
# multi_page_layout.rb for a more modern example.
|
6
|
-
#
|
7
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
8
|
-
%w[.. example_helper]))
|
9
|
-
|
10
|
-
def pdf(*options)
|
11
|
-
Prawn::Document.new(*options)
|
12
|
-
end
|
13
|
-
|
14
|
-
# defaults to portrait and US letter
|
15
|
-
portrait_letter = pdf
|
16
|
-
portrait_letter.render_file "portrait_letter.pdf"
|
17
|
-
|
18
|
-
landscape_letter = pdf(:page_layout => :landscape)
|
19
|
-
landscape_letter.render_file "landscape_letter.pdf"
|
20
|
-
|
21
|
-
portrait_legal = pdf(:page_size => "LEGAL")
|
22
|
-
portrait_legal.render_file "portrait_legal.pdf"
|
23
|
-
|
24
|
-
landscape_legal = pdf(:page_size => "LEGAL", :page_layout => :landscape)
|
25
|
-
landscape_legal.render_file "landscape_legal.pdf"
|
26
|
-
|
27
|
-
portrait_a4 = pdf(:page_size => "A4")
|
28
|
-
portrait_a4.render_file "portrait_a4.pdf"
|
29
|
-
|
30
|
-
landscape_a4 = pdf(:page_size => "A4", :page_layout => :landscape)
|
31
|
-
landscape_a4.render_file("landscape_a4.pdf")
|
32
|
-
|
@@ -1,40 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# This example demonstrates how to add a "page k of n"
|
4
|
-
# template to your documents.
|
5
|
-
#
|
6
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
7
|
-
%w[.. example_helper]))
|
8
|
-
|
9
|
-
Prawn::Document.generate("page_with_numbering.pdf") do
|
10
|
-
text "Hai"
|
11
|
-
start_new_page
|
12
|
-
text "bai"
|
13
|
-
start_new_page
|
14
|
-
text "-- Hai again"
|
15
|
-
number_pages "<page> in a total of <total>", :at => [bounds.right - 100, 20],
|
16
|
-
:width => 150,
|
17
|
-
:page_filter => :all
|
18
|
-
end
|
19
|
-
|
20
|
-
Prawn::Document.generate("page_with_numbering_extra_options.pdf") do
|
21
|
-
text "Hai"
|
22
|
-
start_new_page :layout => :landscape
|
23
|
-
text "bai"
|
24
|
-
start_new_page :layout => :portrait
|
25
|
-
text "-- Hai again"
|
26
|
-
number_pages "<page> in a total of <total>", :at => [bounds.right - 150, 20],
|
27
|
-
:width => 150,
|
28
|
-
:align => :right,
|
29
|
-
:page_filter => :odd,
|
30
|
-
:start_count_at => 12,
|
31
|
-
:total_pages => 15
|
32
|
-
|
33
|
-
number_pages "<page> in a total of <total>", :at => [bounds.left + 50, 20],
|
34
|
-
:width => 150,
|
35
|
-
:align => :left,
|
36
|
-
:page_filter => :even,
|
37
|
-
:start_count_at => 13,
|
38
|
-
:total_pages => 15,
|
39
|
-
:color => "FF0000"
|
40
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# This sample demonstrates the use of the :template option when using #start_new_page to add a
|
4
|
-
# new page. Only one page of the template is currently imported for the template and which page of
|
5
|
-
# the pdf template is used can be specified with the :template_page option which defaults to 1.
|
6
|
-
|
7
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
8
|
-
%w[.. example_helper]))
|
9
|
-
|
10
|
-
filename = "#{Prawn::BASEDIR}/data/pdfs/multipage_template.pdf"
|
11
|
-
|
12
|
-
Prawn::Document.generate("page_template.pdf") do
|
13
|
-
text "This is the first page and content is brand new", :size => 18, :align => :center
|
14
|
-
start_new_page(:template => filename, :template_page => 2)
|
15
|
-
move_down 20
|
16
|
-
text "Here is some content that has been added to the page template", :size => 18, :align => :center
|
17
|
-
start_new_page(:template => filename, :template_page => 3)
|
18
|
-
move_down 20
|
19
|
-
text "Here is content that has been added to page 3 of the template", :size => 18, :align => :center
|
20
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# This example demonstrates how to make use of Prawn's repeating element
|
4
|
-
# support. Note that all repeated elements are generated using XObjects, so
|
5
|
-
# they should be pretty efficient.
|
6
|
-
#
|
7
|
-
#
|
8
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
9
|
-
%w[.. example_helper]))
|
10
|
-
|
11
|
-
Prawn::Document.generate("repeat.pdf", :skip_page_creation => true) do
|
12
|
-
|
13
|
-
repeat :all do
|
14
|
-
draw_text "ALLLLLL", :at => bounds.top_left
|
15
|
-
end
|
16
|
-
|
17
|
-
repeat :odd do
|
18
|
-
draw_text "ODD", :at => [0,0]
|
19
|
-
end
|
20
|
-
|
21
|
-
repeat :even do
|
22
|
-
draw_text "EVEN", :at => [0,0]
|
23
|
-
end
|
24
|
-
|
25
|
-
repeat [1,2] do
|
26
|
-
draw_text "[1,2]", :at => [100,0]
|
27
|
-
end
|
28
|
-
|
29
|
-
repeat 2..4 do
|
30
|
-
draw_text "2..4", :at => [200,0]
|
31
|
-
end
|
32
|
-
|
33
|
-
repeat(lambda { |pg| pg % 3 == 0 }) do
|
34
|
-
draw_text "Every third", :at => [250, 20]
|
35
|
-
end
|
36
|
-
|
37
|
-
repeat(:all, :dynamic => true) do
|
38
|
-
draw_text page_number, :at => [500, 0]
|
39
|
-
end
|
40
|
-
|
41
|
-
10.times do
|
42
|
-
start_new_page
|
43
|
-
draw_text "A wonderful page", :at => [400,400]
|
44
|
-
end
|
45
|
-
|
46
|
-
end
|
47
|
-
|
48
|
-
|
data/examples/general/stamp.rb
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# Demonstrate use of stamps
|
4
|
-
#
|
5
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
6
|
-
%w[.. example_helper]))
|
7
|
-
|
8
|
-
Prawn::Document.generate("stamp.pdf", :skip_page_creation => true) do
|
9
|
-
|
10
|
-
create_stamp("odd_page_template") do
|
11
|
-
draw_text "This is the odd page template",
|
12
|
-
:at => [0, bounds.top - font.height]
|
13
|
-
draw_text "This is also in the odd page template", :at => [0, 0]
|
14
|
-
end
|
15
|
-
|
16
|
-
create_stamp("even_page_template") do
|
17
|
-
draw_text "This is the even page template",
|
18
|
-
:at => [0, bounds.top - font.height]
|
19
|
-
draw_text "This is also in the even page template", :at => [0, 0]
|
20
|
-
end
|
21
|
-
|
22
|
-
start_new_page
|
23
|
-
stamp("odd_page_template")
|
24
|
-
|
25
|
-
create_stamp("MyStamp") do
|
26
|
-
fill_color("ff0000")
|
27
|
-
fill_circle([0, 0], 20)
|
28
|
-
fill_color("000000")
|
29
|
-
fill_circle([10, 10], 20)
|
30
|
-
end
|
31
|
-
|
32
|
-
10.times do |i|
|
33
|
-
10.times do |j|
|
34
|
-
stamp_at("MyStamp", [100 + j * 50, bounds.top - 100 - i * 50])
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
4.times do |i|
|
39
|
-
start_new_page
|
40
|
-
stamp("#{i % 2 == 0 ? 'even' : 'odd'}_page_template")
|
41
|
-
end
|
42
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# This sample demonstrates the use of the :template option when generating
|
4
|
-
# a new Document. The template PDF file is imported into a new document.
|
5
|
-
|
6
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
7
|
-
%w[.. example_helper]))
|
8
|
-
|
9
|
-
filename = "#{Prawn::BASEDIR}/reference_pdfs/curves.pdf"
|
10
|
-
|
11
|
-
Prawn::Document.generate("template.pdf", :template => filename) do
|
12
|
-
text "Previous pages and content imported", :size => 18, :align => :center
|
13
|
-
text "This page and content is brand new", :size => 18, :align => :center
|
14
|
-
end
|
@@ -1,24 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# Demonstrates basic image embedding and positioning functionality.
|
4
|
-
# For positioning images alongside flowing text, see the image_flow.rb
|
5
|
-
# example.
|
6
|
-
#
|
7
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
8
|
-
%w[.. example_helper]))
|
9
|
-
|
10
|
-
Prawn::Document.generate("basic_images.pdf", :page_layout => :landscape) do
|
11
|
-
stef = "#{Prawn::BASEDIR}/data/images/stef.jpg"
|
12
|
-
image stef, :at => [75, 75]
|
13
|
-
|
14
|
-
stef = "#{Prawn::BASEDIR}/data/images/stef.jpg"
|
15
|
-
image stef, :at => [500, 400], :width => 200, :height => 200
|
16
|
-
|
17
|
-
draw_text "Please enjoy the pigs", :size => 36, :at => [200,15]
|
18
|
-
|
19
|
-
ruport = "#{Prawn::BASEDIR}/data/images/ruport.png"
|
20
|
-
image ruport, :at => [400,200], :width => 150
|
21
|
-
|
22
|
-
ruport = "#{Prawn::BASEDIR}/data/images/ruport_transparent.png"
|
23
|
-
image ruport, :at => [50,525]
|
24
|
-
end
|
data/examples/graphics/curves.rb
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# Demonstrates simple curve and circle usage
|
4
|
-
#
|
5
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
6
|
-
%w[.. example_helper]))
|
7
|
-
|
8
|
-
pdf = Prawn::Document.new
|
9
|
-
pdf.move_to [100,100]
|
10
|
-
pdf.stroke_curve_to [50,50], :bounds => [[60,90], [60, 90]]
|
11
|
-
pdf.fill_circle [200,200], 10
|
12
|
-
pdf.render_file "curves.pdf"
|
@@ -1,14 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# Draws and fills a Hexagon using Document#polygon
|
4
|
-
#
|
5
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
6
|
-
%w[.. example_helper]))
|
7
|
-
|
8
|
-
pdf = Prawn::Document.new
|
9
|
-
|
10
|
-
pdf.fill_color "ff0000"
|
11
|
-
pdf.fill_polygon [100, 250], [200, 300], [300, 250],
|
12
|
-
[300, 150], [200, 100], [100, 150]
|
13
|
-
|
14
|
-
pdf.render_file "hexagon.pdf"
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# Demonstrates fitting an image within a rectangular width and height.
|
4
|
-
# The image will be scaled down to fit within the box, while preserving
|
5
|
-
# the aspect ratio.
|
6
|
-
#
|
7
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
8
|
-
%w[.. example_helper]))
|
9
|
-
|
10
|
-
Prawn::Document.generate("image_fit.pdf", :page_layout => :landscape) do
|
11
|
-
|
12
|
-
pigs = "#{Prawn::BASEDIR}/data/images/pigs.jpg"
|
13
|
-
stroke_rectangle [50,450], 200, 200
|
14
|
-
image pigs, :at => [50,450], :fit => [200,200]
|
15
|
-
|
16
|
-
end
|
@@ -1,38 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# Demonstrates automated flowing and positioning of images, as well as
|
4
|
-
# aligining images along the x-axis via the :position argument. This is
|
5
|
-
# useful when used in combination with flowing text, where the exact final
|
6
|
-
# position of the image is not known ahead of time.
|
7
|
-
#
|
8
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
9
|
-
%w[.. example_helper]))
|
10
|
-
|
11
|
-
Prawn::Document.generate("image-flow.pdf", :page_layout => :landscape) do
|
12
|
-
self.font_size = 8
|
13
|
-
stef = "#{Prawn::BASEDIR}/data/images/stef.jpg"
|
14
|
-
|
15
|
-
text "Image at default position with no arguments"
|
16
|
-
|
17
|
-
move_down 10
|
18
|
-
|
19
|
-
image stef
|
20
|
-
|
21
|
-
text "Centered image flowing"
|
22
|
-
|
23
|
-
image stef, :position => :center
|
24
|
-
|
25
|
-
text "Right aligned image flowing"
|
26
|
-
|
27
|
-
image stef, :position => :right
|
28
|
-
|
29
|
-
text "Explicitly left aligned image flowing"
|
30
|
-
|
31
|
-
move_down 10
|
32
|
-
|
33
|
-
image stef, :position => :left
|
34
|
-
|
35
|
-
text "Flowing image at x=50"
|
36
|
-
|
37
|
-
image stef, :position => 50
|
38
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# Demonstrates vertical and horizontal positioning of images.
|
4
|
-
#
|
5
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
6
|
-
%w[.. example_helper]))
|
7
|
-
|
8
|
-
Prawn::Document.generate("image_position.pdf", :page_layout => :landscape) do
|
9
|
-
|
10
|
-
dice = "#{Prawn::BASEDIR}/data/images/dice.png"
|
11
|
-
|
12
|
-
image dice, :scale => 0.2, :position => :left, :vposition => :top
|
13
|
-
image dice, :scale => 0.2, :position => :right, :vposition => :top
|
14
|
-
image dice, :scale => 0.2, :position => :center, :vposition => :top
|
15
|
-
image dice, :scale => 0.2, :position => :center, :vposition => :center
|
16
|
-
image dice, :scale => 0.2, :position => :center, :vposition => :bottom
|
17
|
-
|
18
|
-
end
|
data/examples/graphics/line.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# The very first Prawn example. Here for nostalgia's sake.
|
4
|
-
#
|
5
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
6
|
-
%w[.. example_helper]))
|
7
|
-
|
8
|
-
pdf = Prawn::Document.new
|
9
|
-
pdf.line_width = 10
|
10
|
-
|
11
|
-
[[100,741,100,641],
|
12
|
-
[100,691,150,691],
|
13
|
-
[150,741,150,641],
|
14
|
-
[200,741,200,641],
|
15
|
-
[100,600,100,500],
|
16
|
-
[100,600,150,550],
|
17
|
-
[100,550,150,550],
|
18
|
-
[175,600,175,500],
|
19
|
-
[175,600,225,550],
|
20
|
-
[175,550,225,550],
|
21
|
-
[175,550,225,500],
|
22
|
-
[275,600,250,500],
|
23
|
-
[275,600,300,500],
|
24
|
-
[250,550,300,550],
|
25
|
-
[315,600,350,500],
|
26
|
-
[350,500,365,550],
|
27
|
-
[365,550,380,500],
|
28
|
-
[380,500,415,600],
|
29
|
-
[430,600,430,500],
|
30
|
-
[430,600,465,500],
|
31
|
-
[465,600,465,500]].each { |points| pdf.stroke_line(*points) }
|
32
|
-
|
33
|
-
pdf.render_file "lines.pdf"
|