prawn 0.11.1 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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"
|