prawn 2.1.0 → 2.2.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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +2 -0
- data.tar.gz.sig +0 -0
- data/Gemfile +1 -9
- data/Rakefile +12 -22
- data/lib/prawn.rb +29 -48
- data/lib/prawn/document.rb +148 -123
- data/lib/prawn/document/bounding_box.rb +33 -26
- data/lib/prawn/document/column_box.rb +5 -7
- data/lib/prawn/document/internals.rb +6 -6
- data/lib/prawn/document/span.rb +20 -17
- data/lib/prawn/encoding.rb +65 -67
- data/lib/prawn/errors.rb +10 -7
- data/lib/prawn/font.rb +78 -62
- data/lib/prawn/font/afm.rb +93 -66
- data/lib/prawn/font/dfont.rb +2 -10
- data/lib/prawn/font/ttc.rb +34 -0
- data/lib/prawn/font/ttf.rb +73 -65
- data/lib/prawn/font_metric_cache.rb +9 -8
- data/lib/prawn/graphics.rb +110 -70
- data/lib/prawn/graphics/blend_mode.rb +7 -8
- data/lib/prawn/graphics/cap_style.rb +2 -4
- data/lib/prawn/graphics/color.rb +23 -26
- data/lib/prawn/graphics/dash.rb +22 -12
- data/lib/prawn/graphics/join_style.rb +8 -4
- data/lib/prawn/graphics/patterns.rb +185 -96
- data/lib/prawn/graphics/transformation.rb +11 -9
- data/lib/prawn/graphics/transparency.rb +15 -13
- data/lib/prawn/grid.rb +20 -20
- data/lib/prawn/image_handler.rb +4 -6
- data/lib/prawn/images.rb +22 -15
- data/lib/prawn/images/image.rb +0 -1
- data/lib/prawn/images/jpg.rb +26 -22
- data/lib/prawn/images/png.rb +60 -57
- data/lib/prawn/measurement_extensions.rb +8 -9
- data/lib/prawn/measurements.rb +14 -15
- data/lib/prawn/outline.rb +96 -78
- data/lib/prawn/repeater.rb +12 -10
- data/lib/prawn/security.rb +66 -48
- data/lib/prawn/security/arcfour.rb +1 -3
- data/lib/prawn/soft_mask.rb +23 -25
- data/lib/prawn/stamp.rb +16 -12
- data/lib/prawn/text.rb +59 -45
- data/lib/prawn/text/box.rb +9 -8
- data/lib/prawn/text/formatted.rb +4 -6
- data/lib/prawn/text/formatted/arranger.rb +51 -30
- data/lib/prawn/text/formatted/box.rb +112 -88
- data/lib/prawn/text/formatted/fragment.rb +10 -15
- data/lib/prawn/text/formatted/line_wrap.rb +118 -61
- data/lib/prawn/text/formatted/parser.rb +134 -110
- data/lib/prawn/text/formatted/wrap.rb +42 -32
- data/lib/prawn/transformation_stack.rb +3 -4
- data/lib/prawn/utilities.rb +6 -21
- data/lib/prawn/version.rb +1 -3
- data/lib/prawn/view.rb +4 -2
- data/manual/basic_concepts/adding_pages.rb +4 -7
- data/manual/basic_concepts/basic_concepts.rb +29 -22
- data/manual/basic_concepts/creation.rb +8 -11
- data/manual/basic_concepts/cursor.rb +2 -5
- data/manual/basic_concepts/measurement.rb +3 -6
- data/manual/basic_concepts/origin.rb +3 -6
- data/manual/basic_concepts/other_cursor_helpers.rb +9 -12
- data/manual/basic_concepts/view.rb +20 -16
- data/manual/bounding_box/bounding_box.rb +27 -24
- data/manual/bounding_box/bounds.rb +9 -12
- data/manual/bounding_box/canvas.rb +2 -5
- data/manual/bounding_box/creation.rb +4 -7
- data/manual/bounding_box/indentation.rb +12 -15
- data/manual/bounding_box/nesting.rb +22 -17
- data/manual/bounding_box/russian_boxes.rb +8 -9
- data/manual/bounding_box/stretchy.rb +10 -13
- data/manual/contents.rb +26 -22
- data/manual/cover.rb +22 -20
- data/manual/document_and_page_options/background.rb +9 -13
- data/manual/document_and_page_options/document_and_page_options.rb +23 -20
- data/manual/document_and_page_options/metadata.rb +16 -16
- data/manual/document_and_page_options/page_margins.rb +16 -20
- data/manual/document_and_page_options/page_size.rb +11 -12
- data/manual/document_and_page_options/print_scaling.rb +15 -15
- data/manual/example_helper.rb +2 -4
- data/manual/graphics/blend_mode.rb +10 -9
- data/manual/graphics/circle_and_ellipse.rb +2 -5
- data/manual/graphics/color.rb +5 -9
- data/manual/graphics/common_lines.rb +5 -8
- data/manual/graphics/fill_and_stroke.rb +2 -5
- data/manual/graphics/fill_rules.rb +7 -10
- data/manual/graphics/gradients.rb +25 -21
- data/manual/graphics/graphics.rb +49 -43
- data/manual/graphics/helper.rb +10 -9
- data/manual/graphics/line_width.rb +5 -7
- data/manual/graphics/lines_and_curves.rb +5 -8
- data/manual/graphics/polygon.rb +4 -8
- data/manual/graphics/rectangle.rb +2 -5
- data/manual/graphics/rotate.rb +4 -7
- data/manual/graphics/scale.rb +12 -15
- data/manual/graphics/soft_masks.rb +1 -4
- data/manual/graphics/stroke_cap.rb +3 -6
- data/manual/graphics/stroke_dash.rb +9 -12
- data/manual/graphics/stroke_join.rb +2 -5
- data/manual/graphics/translate.rb +7 -10
- data/manual/graphics/transparency.rb +5 -8
- data/manual/how_to_read_this_manual.rb +4 -6
- data/manual/images/absolute_position.rb +4 -7
- data/manual/images/fit.rb +5 -8
- data/manual/images/horizontal.rb +6 -9
- data/manual/images/images.rb +25 -23
- data/manual/images/plain_image.rb +3 -6
- data/manual/images/scale.rb +7 -10
- data/manual/images/vertical.rb +10 -13
- data/manual/images/width_and_height.rb +8 -11
- data/manual/layout/boxes.rb +3 -6
- data/manual/layout/content.rb +5 -8
- data/manual/layout/layout.rb +16 -16
- data/manual/layout/simple_grid.rb +4 -7
- data/manual/outline/add_subsection_to.rb +18 -21
- data/manual/outline/insert_section_after.rb +13 -16
- data/manual/outline/outline.rb +19 -17
- data/manual/outline/sections_and_pages.rb +15 -18
- data/manual/repeatable_content/alternate_page_numbering.rb +19 -17
- data/manual/repeatable_content/page_numbering.rb +15 -16
- data/manual/repeatable_content/repeatable_content.rb +23 -19
- data/manual/repeatable_content/repeater.rb +12 -15
- data/manual/repeatable_content/stamp.rb +12 -15
- data/manual/security/encryption.rb +7 -10
- data/manual/security/permissions.rb +17 -14
- data/manual/security/security.rb +17 -16
- data/manual/table.rb +2 -4
- data/manual/text/alignment.rb +14 -17
- data/manual/text/color.rb +10 -11
- data/manual/text/column_box.rb +5 -8
- data/manual/text/fallback_fonts.rb +23 -21
- data/manual/text/font.rb +9 -12
- data/manual/text/font_size.rb +11 -14
- data/manual/text/font_style.rb +4 -7
- data/manual/text/formatted_callbacks.rb +23 -21
- data/manual/text/formatted_text.rb +31 -25
- data/manual/text/free_flowing_text.rb +18 -21
- data/manual/text/inline.rb +16 -19
- data/manual/text/kerning_and_character_spacing.rb +12 -15
- data/manual/text/leading.rb +5 -8
- data/manual/text/line_wrapping.rb +33 -17
- data/manual/text/paragraph_indentation.rb +11 -14
- data/manual/text/positioned_text.rb +13 -16
- data/manual/text/registering_families.rb +16 -19
- data/manual/text/rendering_and_color.rb +7 -10
- data/manual/text/right_to_left_text.rb +24 -19
- data/manual/text/rotation.rb +26 -23
- data/manual/text/single_usage.rb +6 -9
- data/manual/text/text.rb +56 -52
- data/manual/text/text_box_excess.rb +18 -17
- data/manual/text/text_box_extensions.rb +16 -15
- data/manual/text/text_box_overflow.rb +15 -18
- data/manual/text/utf8.rb +9 -12
- data/manual/text/win_ansi_charset.rb +18 -19
- data/prawn.gemspec +37 -27
- data/spec/extensions/encoding_helpers.rb +0 -2
- data/spec/manual_spec.rb +33 -0
- data/spec/prawn/document/bounding_box_spec.rb +546 -0
- data/spec/prawn/document/column_box_spec.rb +73 -0
- data/spec/prawn/document/security_spec.rb +173 -0
- data/spec/prawn/document_annotations_spec.rb +74 -0
- data/spec/prawn/document_destinations_spec.rb +13 -0
- data/spec/prawn/document_grid_spec.rb +96 -0
- data/spec/prawn/document_reference_spec.rb +25 -0
- data/spec/prawn/document_span_spec.rb +34 -0
- data/spec/prawn/document_spec.rb +751 -0
- data/spec/prawn/font_metric_cache_spec.rb +52 -0
- data/spec/prawn/font_spec.rb +513 -0
- data/spec/prawn/graphics/blend_mode_spec.rb +61 -0
- data/spec/prawn/graphics/transparency_spec.rb +79 -0
- data/spec/prawn/graphics_spec.rb +817 -0
- data/spec/prawn/graphics_stroke_styles_spec.rb +227 -0
- data/spec/{image_handler_spec.rb → prawn/image_handler_spec.rb} +13 -15
- data/spec/prawn/images/jpg_spec.rb +18 -0
- data/spec/prawn/images/png_spec.rb +281 -0
- data/spec/prawn/images_spec.rb +170 -0
- data/spec/prawn/measurements_extensions_spec.rb +22 -0
- data/spec/prawn/outline_spec.rb +408 -0
- data/spec/prawn/repeater_spec.rb +163 -0
- data/spec/prawn/soft_mask_spec.rb +72 -0
- data/spec/prawn/stamp_spec.rb +168 -0
- data/spec/prawn/text/box_spec.rb +1113 -0
- data/spec/prawn/text/formatted/arranger_spec.rb +464 -0
- data/spec/prawn/text/formatted/box_spec.rb +825 -0
- data/spec/prawn/text/formatted/fragment_spec.rb +341 -0
- data/spec/prawn/text/formatted/line_wrap_spec.rb +491 -0
- data/spec/prawn/text/formatted/parser_spec.rb +667 -0
- data/spec/prawn/text_draw_text_spec.rb +147 -0
- data/spec/prawn/text_rendering_mode_spec.rb +42 -0
- data/spec/prawn/text_spacing_spec.rb +93 -0
- data/spec/prawn/text_spec.rb +601 -0
- data/spec/prawn/text_with_inline_formatting_spec.rb +33 -0
- data/spec/{transformation_stack_spec.rb → prawn/transformation_stack_spec.rb} +21 -20
- data/spec/prawn/view_spec.rb +45 -0
- data/spec/spec_helper.rb +16 -16
- metadata +96 -151
- metadata.gz.sig +1 -0
- data/data/images/16bit.alpha +0 -0
- data/data/images/16bit.color +0 -0
- data/data/images/16bit.png +0 -0
- data/data/images/arrow.png +0 -0
- data/data/images/arrow2.png +0 -0
- data/data/images/blend_modes_bottom_layer.jpg +0 -0
- data/data/images/blend_modes_top_layer.jpg +0 -0
- data/data/images/dice.alpha +0 -0
- data/data/images/dice.color +0 -0
- data/data/images/dice.png +0 -0
- data/data/images/dice_interlaced.png +0 -0
- data/data/images/fractal.jpg +0 -0
- data/data/images/indexed_color.dat +0 -0
- data/data/images/indexed_color.png +0 -0
- data/data/images/indexed_transparency.png +0 -0
- data/data/images/indexed_transparency_alpha.dat +0 -0
- data/data/images/indexed_transparency_color.dat +0 -0
- data/data/images/letterhead.jpg +0 -0
- data/data/images/license.md +0 -8
- data/data/images/page_white_text.alpha +0 -0
- data/data/images/page_white_text.color +0 -0
- data/data/images/page_white_text.png +0 -0
- data/data/images/pigs.jpg +0 -0
- data/data/images/prawn.png +0 -0
- data/data/images/ruport.png +0 -0
- data/data/images/ruport_data.dat +0 -0
- data/data/images/ruport_transparent.png +0 -0
- data/data/images/ruport_type0.png +0 -0
- data/data/images/stef.jpg +0 -0
- data/data/images/tru256.bmp +0 -0
- data/data/images/web-links.dat +0 -1
- data/data/images/web-links.png +0 -0
- data/data/pdfs/complex_template.pdf +0 -0
- data/data/pdfs/contains_ttf_font.pdf +0 -0
- data/data/pdfs/encrypted.pdf +0 -0
- data/data/pdfs/form.pdf +1 -819
- data/data/pdfs/hexagon.pdf +0 -61
- data/data/pdfs/indirect_reference.pdf +0 -86
- data/data/pdfs/multipage_template.pdf +0 -127
- data/data/pdfs/nested_pages.pdf +0 -118
- data/data/pdfs/page_without_mediabox.pdf +0 -193
- data/data/pdfs/resources_as_indirect_object.pdf +0 -83
- data/data/pdfs/two_hexagons.pdf +0 -90
- data/data/pdfs/version_1_6.pdf +0 -61
- data/data/shift_jis_text.txt +0 -1
- data/spec/acceptance/png_spec.rb +0 -35
- data/spec/annotations_spec.rb +0 -67
- data/spec/blend_mode_spec.rb +0 -71
- data/spec/bounding_box_spec.rb +0 -501
- data/spec/column_box_spec.rb +0 -59
- data/spec/destinations_spec.rb +0 -13
- data/spec/document_spec.rb +0 -738
- data/spec/font_metric_cache_spec.rb +0 -52
- data/spec/font_spec.rb +0 -475
- data/spec/formatted_text_arranger_spec.rb +0 -452
- data/spec/formatted_text_box_spec.rb +0 -716
- data/spec/formatted_text_fragment_spec.rb +0 -299
- data/spec/graphics_spec.rb +0 -705
- data/spec/grid_spec.rb +0 -95
- data/spec/images_spec.rb +0 -167
- data/spec/inline_formatted_text_parser_spec.rb +0 -568
- data/spec/jpg_spec.rb +0 -23
- data/spec/line_wrap_spec.rb +0 -366
- data/spec/measurement_units_spec.rb +0 -22
- data/spec/outline_spec.rb +0 -409
- data/spec/png_spec.rb +0 -257
- data/spec/reference_spec.rb +0 -25
- data/spec/repeater_spec.rb +0 -154
- data/spec/security_spec.rb +0 -151
- data/spec/soft_mask_spec.rb +0 -78
- data/spec/span_spec.rb +0 -43
- data/spec/stamp_spec.rb +0 -179
- data/spec/stroke_styles_spec.rb +0 -208
- data/spec/text_at_spec.rb +0 -142
- data/spec/text_box_spec.rb +0 -1042
- data/spec/text_rendering_mode_spec.rb +0 -45
- data/spec/text_spacing_spec.rb +0 -93
- data/spec/text_spec.rb +0 -543
- data/spec/text_with_inline_formatting_spec.rb +0 -35
- data/spec/transparency_spec.rb +0 -91
- data/spec/view_spec.rb +0 -42
data/manual/cover.rb
CHANGED
@@ -1,38 +1,40 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
1
|
# Prawn manual how to read this manual page.
|
4
|
-
#
|
5
2
|
|
6
|
-
require_relative
|
3
|
+
require_relative 'example_helper'
|
7
4
|
|
8
5
|
filename = File.basename(__FILE__).gsub('.rb', '.pdf')
|
9
6
|
Prawn::ManualBuilder::Example.generate(filename) do
|
10
7
|
move_down 200
|
11
8
|
|
12
9
|
image "#{Prawn::DATADIR}/images/prawn.png",
|
13
|
-
|
14
|
-
|
10
|
+
scale: 0.9,
|
11
|
+
at: [10, cursor]
|
15
12
|
|
16
|
-
formatted_text_box(
|
17
|
-
|
18
|
-
|
19
|
-
|
13
|
+
formatted_text_box(
|
14
|
+
[{ text: "Prawn\n", styles: [:bold], size: 100 }],
|
15
|
+
at: [170, cursor - 50]
|
16
|
+
)
|
20
17
|
|
21
|
-
formatted_text_box(
|
22
|
-
|
23
|
-
|
24
|
-
|
18
|
+
formatted_text_box(
|
19
|
+
[{ text: 'by example', font: 'Courier', size: 60 }],
|
20
|
+
at: [170, cursor - 160]
|
21
|
+
)
|
25
22
|
|
26
23
|
if Dir.exist?("#{Prawn::BASEDIR}/.git")
|
27
24
|
commit = `git show --pretty=%h`
|
28
25
|
git_commit = "git commit: #{commit.lines.first}"
|
29
26
|
else
|
30
|
-
git_commit =
|
27
|
+
git_commit = ''
|
31
28
|
end
|
32
29
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
30
|
+
unless ENV['CI']
|
31
|
+
formatted_text_box(
|
32
|
+
[{
|
33
|
+
text: "Last Update: #{Time.now.strftime('%Y-%m-%d')}\n" \
|
34
|
+
"Prawn Version: #{Prawn::VERSION}\n#{git_commit}",
|
35
|
+
size: 12
|
36
|
+
}],
|
37
|
+
at: [390, cursor - 620]
|
38
|
+
)
|
39
|
+
end
|
38
40
|
end
|
@@ -1,27 +1,23 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
1
|
# Pass an image path to the <code>:background</code> option and it will be used
|
4
2
|
# as the background for all pages.
|
5
3
|
# This option can only be used on document creation.
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
|
5
|
+
require_relative '../example_helper'
|
6
|
+
|
7
|
+
filename = File.basename(__FILE__).gsub('.rb', '.pdf')
|
9
8
|
|
10
9
|
img = "#{Prawn::DATADIR}/images/letterhead.jpg"
|
11
10
|
|
12
|
-
Prawn::Document.generate(
|
13
|
-
|
14
|
-
:margin => 100
|
15
|
-
) do
|
16
|
-
text "My report caption", :size => 18, :align => :right
|
11
|
+
Prawn::Document.generate(filename, background: img, margin: 100) do
|
12
|
+
text 'My report caption', size: 18, align: :right
|
17
13
|
|
18
14
|
move_down font.height * 2
|
19
15
|
|
20
|
-
text
|
21
|
-
|
16
|
+
text 'Here is my text explaning this report. ' * 20,
|
17
|
+
size: 12, align: :left, leading: 2
|
22
18
|
|
23
19
|
move_down font.height
|
24
20
|
|
25
21
|
text "I'm using a soft background. " * 40,
|
26
|
-
|
22
|
+
size: 12, align: :left, leading: 2
|
27
23
|
end
|
@@ -1,29 +1,32 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
1
|
# Examples for stamps and repeaters.
|
4
|
-
#
|
5
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
6
|
-
%w[.. example_helper]))
|
7
2
|
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
p.example
|
14
|
-
p.example
|
15
|
-
p.example
|
3
|
+
require_relative '../example_helper'
|
4
|
+
|
5
|
+
filename = File.basename(__FILE__).gsub('.rb', '.pdf')
|
6
|
+
Prawn::ManualBuilder::Example.generate(filename, page_size: 'FOLIO') do
|
7
|
+
package 'document_and_page_options' do |p|
|
8
|
+
p.example 'page_size', eval_source: false, full_source: true
|
9
|
+
p.example 'page_margins', eval_source: false, full_source: true
|
10
|
+
p.example 'background', eval_source: false, full_source: true
|
11
|
+
p.example 'metadata', eval_source: false, full_source: true
|
12
|
+
p.example 'print_scaling', eval_source: false, full_source: true
|
16
13
|
|
17
14
|
p.intro do
|
18
|
-
prose
|
15
|
+
prose <<-END
|
16
|
+
So far we've already seen how to create new documents and start new
|
17
|
+
pages. This chapter expands on the previous examples by showing other
|
18
|
+
options avialable. Some of the options are only available when creating
|
19
|
+
new documents.
|
19
20
|
|
20
|
-
|
21
|
+
The examples show:
|
22
|
+
END
|
21
23
|
|
22
|
-
list(
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
24
|
+
list(
|
25
|
+
'How to configure page size',
|
26
|
+
'How to configure page margins',
|
27
|
+
'How to use a background image',
|
28
|
+
'How to add metadata to the generated PDF'
|
29
|
+
)
|
27
30
|
end
|
28
31
|
end
|
29
32
|
end
|
@@ -1,23 +1,23 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
1
|
# To set the document metadata just pass a hash to the <code>:info</code>
|
4
2
|
# option when creating new documents.
|
5
|
-
# The keys in the example below are arbitrary, so you may add whatever keys you
|
6
|
-
#
|
7
|
-
|
8
|
-
|
3
|
+
# The keys in the example below are arbitrary, so you may add whatever keys you
|
4
|
+
# want.
|
5
|
+
|
6
|
+
require_relative '../example_helper'
|
7
|
+
|
8
|
+
filename = File.basename(__FILE__).gsub('.rb', '.pdf')
|
9
9
|
|
10
10
|
info = {
|
11
|
-
:
|
12
|
-
:
|
13
|
-
:
|
14
|
-
:
|
15
|
-
:
|
16
|
-
:
|
17
|
-
:
|
11
|
+
Title: 'My title',
|
12
|
+
Author: 'John Doe',
|
13
|
+
Subject: 'My Subject',
|
14
|
+
Keywords: 'test metadata ruby pdf dry',
|
15
|
+
Creator: 'ACME Soft App',
|
16
|
+
Producer: 'Prawn',
|
17
|
+
CreationDate: Time.now
|
18
18
|
}
|
19
19
|
|
20
|
-
Prawn::Document.generate(
|
21
|
-
text
|
22
|
-
text
|
20
|
+
Prawn::Document.generate(filename, info: info) do
|
21
|
+
text 'This is a test of setting metadata properties via the info option.'
|
22
|
+
text 'While the keys are arbitrary, the above example sets common attributes.'
|
23
23
|
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
1
|
# The default margin for pages is 0.5 inch but you can change that with the
|
4
2
|
# <code>:margin</code> option or if you'd like to have different margins you
|
5
3
|
# can use the <code>:left_margin</code>, <code>:right_margin</code>,
|
@@ -7,32 +5,30 @@
|
|
7
5
|
#
|
8
6
|
# These options are available both for starting new pages and creating new
|
9
7
|
# documents.
|
10
|
-
#
|
11
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
12
|
-
%w[.. example_helper]))
|
13
8
|
|
14
|
-
|
15
|
-
|
16
|
-
)
|
17
|
-
|
9
|
+
require_relative '../example_helper'
|
10
|
+
|
11
|
+
filename = File.basename(__FILE__).gsub('.rb', '.pdf')
|
12
|
+
Prawn::Document.generate(filename, margin: 100) do
|
13
|
+
text '100 pts margins.'
|
18
14
|
stroke_bounds
|
19
15
|
|
20
|
-
start_new_page(:
|
21
|
-
text
|
16
|
+
start_new_page(left_margin: 300)
|
17
|
+
text '300 pts margin on the left.'
|
22
18
|
stroke_bounds
|
23
19
|
|
24
|
-
start_new_page(:
|
25
|
-
text
|
26
|
-
|
27
|
-
|
20
|
+
start_new_page(top_margin: 300)
|
21
|
+
text '300 pts margin both on the top and on the left. Notice that whenever ' \
|
22
|
+
'you set an option for a new page it will remain the default for the ' \
|
23
|
+
'following pages.'
|
28
24
|
stroke_bounds
|
29
25
|
|
30
|
-
start_new_page(:
|
31
|
-
text
|
32
|
-
|
26
|
+
start_new_page(margin: 50)
|
27
|
+
text '50 pts margins. Using the margin option will reset previous specific ' \
|
28
|
+
'calls to left, right, top and bottom margins.'
|
33
29
|
stroke_bounds
|
34
30
|
|
35
|
-
start_new_page(:
|
36
|
-
text
|
31
|
+
start_new_page(margin: [50, 100, 150, 200])
|
32
|
+
text 'There is also the shorthand CSS like syntax used here.'
|
37
33
|
stroke_bounds
|
38
34
|
end
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
1
|
# Prawn comes with support for most of the common page sizes so you'll only need
|
4
2
|
# to provide specific values if your intended format is not supported. To see a
|
5
3
|
# list with all supported sizes take a look at PDF::Core::PageGeometry
|
@@ -11,23 +9,24 @@
|
|
11
9
|
# You may also define the orientation of the page to be either portrait
|
12
10
|
# (default) or landscape. Use <code>:page_layout</code> when creating new
|
13
11
|
# documents and <code>:layout</code> when starting new pages.
|
14
|
-
#
|
15
|
-
require File.expand_path(File.join(File.dirname(__FILE__),
|
16
|
-
%w[.. example_helper]))
|
17
12
|
|
18
|
-
|
19
|
-
|
20
|
-
|
13
|
+
require_relative '../example_helper'
|
14
|
+
|
15
|
+
filename = File.basename(__FILE__).gsub('.rb', '.pdf')
|
16
|
+
Prawn::Document.generate(
|
17
|
+
filename,
|
18
|
+
page_size: 'EXECUTIVE',
|
19
|
+
page_layout: :landscape
|
21
20
|
) do
|
22
|
-
text
|
21
|
+
text 'EXECUTIVE landscape page.'
|
23
22
|
|
24
23
|
custom_size = [275, 326]
|
25
24
|
|
26
|
-
[
|
27
|
-
start_new_page(:
|
25
|
+
['A4', 'TABLOID', 'B7', custom_size].each do |size|
|
26
|
+
start_new_page(size: size, layout: :portrait)
|
28
27
|
text "#{size} portrait page."
|
29
28
|
|
30
|
-
start_new_page(:
|
29
|
+
start_new_page(size: size, layout: :landscape)
|
31
30
|
text "#{size} landscape page."
|
32
31
|
end
|
33
32
|
end
|
@@ -1,20 +1,20 @@
|
|
1
|
-
#
|
2
|
-
#
|
3
|
-
#
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
7
|
-
# Default value: <code>AppDefault</code>.
|
8
|
-
#
|
9
|
-
# Note: If the print dialog is suppressed and its parameters are provided directly by the application, the value of this entry should still be used.
|
1
|
+
# (Optional; PDF 1.6) The page scaling option to be selected when a print dialog
|
2
|
+
# is displayed for this document. Valid values are <code>None</code>, which
|
3
|
+
# indicates that the print dialog should reflect no page scaling, and
|
4
|
+
# <code>AppDefault</code>, which indicates that applications should use the
|
5
|
+
# current print scaling. If this entry has an unrecognized value, applications
|
6
|
+
# should use the current print scaling. Default value: <code>AppDefault</code>.
|
10
7
|
#
|
8
|
+
# Note: If the print dialog is suppressed and its parameters are provided
|
9
|
+
# directly by the application, the value of this entry should still be used.
|
11
10
|
|
12
|
-
|
13
|
-
%w[.. example_helper]))
|
11
|
+
require_relative '../example_helper'
|
14
12
|
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
filename = File.basename(__FILE__).gsub('.rb', '.pdf')
|
14
|
+
Prawn::Document.generate(
|
15
|
+
filename,
|
16
|
+
page_layout: :landscape, print_scaling: :none
|
18
17
|
) do
|
19
|
-
text
|
18
|
+
text 'When you print this document, the scale to fit in print preview '\
|
19
|
+
'should be disabled by default.'
|
20
20
|
end
|
data/manual/example_helper.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
1
|
# Blend modes can be used to change the way two layers (images, graphics,
|
4
2
|
# text, etc.) are blended together. The <code>blend_mode</code> method
|
5
3
|
# accepts a single blend mode or an array of blend modes. PDF viewers should
|
@@ -8,9 +6,8 @@
|
|
8
6
|
# Valid blend modes in v1.4 of the PDF spec include :Normal, :Multiply, :Screen,
|
9
7
|
# :Overlay, :Darken, :Lighten, :ColorDodge, :ColorBurn, :HardLight, :SoftLight,
|
10
8
|
# :Difference, :Exclusion, :Hue, :Saturation, :Color, and :Luminosity.
|
11
|
-
|
12
|
-
|
13
|
-
%w[.. example_helper]))
|
9
|
+
|
10
|
+
require_relative '../example_helper'
|
14
11
|
|
15
12
|
filename = File.basename(__FILE__).gsub('.rb', '.pdf')
|
16
13
|
Prawn::ManualBuilder::Example.generate(filename) do
|
@@ -22,14 +19,18 @@ Prawn::ManualBuilder::Example.generate(filename) do
|
|
22
19
|
# https://commons.wikimedia.org/wiki/File:Blend_modes_1.-top-layer.jpg#/media/File:Blend_modes_1.-top-layer.jpg
|
23
20
|
top_layer = "#{Prawn::DATADIR}/images/blend_modes_top_layer.jpg"
|
24
21
|
|
25
|
-
blend_modes = [
|
22
|
+
blend_modes = [
|
23
|
+
:Normal, :Multiply, :Screen, :Overlay, :Darken, :Lighten, :ColorDodge,
|
24
|
+
:ColorBurn, :HardLight, :SoftLight, :Difference, :Exclusion, :Hue,
|
25
|
+
:Saturation, :Color, :Luminosity
|
26
|
+
]
|
26
27
|
blend_modes.each_with_index do |blend_mode, index|
|
27
28
|
x = index % 4 * 135
|
28
29
|
y = cursor - (index / 4 * 200)
|
29
30
|
|
30
|
-
image bottom_layer, :
|
31
|
+
image bottom_layer, at: [x, y], fit: [125, 125]
|
31
32
|
blend_mode(blend_mode) do
|
32
|
-
image top_layer, :
|
33
|
+
image top_layer, at: [x, y], fit: [125, 125]
|
33
34
|
end
|
34
35
|
|
35
36
|
y -= 130
|
@@ -44,6 +45,6 @@ Prawn::ManualBuilder::Example.generate(filename) do
|
|
44
45
|
y -= 30
|
45
46
|
|
46
47
|
fill_color '000000'
|
47
|
-
text_box blend_mode.to_s, :
|
48
|
+
text_box blend_mode.to_s, at: [x, y]
|
48
49
|
end
|
49
50
|
end
|
@@ -1,14 +1,11 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
1
|
# To define a <code>circle</code> all you need is the center point and the
|
4
2
|
# radius.
|
5
3
|
#
|
6
4
|
# To define an <code>ellipse</code> you provide the center point and two radii
|
7
5
|
# (or axes) values. If the second radius value is ommitted, both radii will be
|
8
6
|
# equal and you will end up drawing a circle.
|
9
|
-
|
10
|
-
|
11
|
-
%w[.. example_helper]))
|
7
|
+
|
8
|
+
require_relative '../example_helper'
|
12
9
|
|
13
10
|
filename = File.basename(__FILE__).gsub('.rb', '.pdf')
|
14
11
|
Prawn::ManualBuilder::Example.generate(filename) do
|
data/manual/graphics/color.rb
CHANGED
@@ -1,19 +1,15 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
1
|
# We can change the stroke and fill colors providing an HTML rgb 6 digit color
|
4
2
|
# code string ("AB1234") or 4 values for CMYK.
|
5
|
-
|
6
|
-
|
7
|
-
%w[.. example_helper]))
|
3
|
+
|
4
|
+
require_relative '../example_helper'
|
8
5
|
|
9
6
|
filename = File.basename(__FILE__).gsub('.rb', '.pdf')
|
10
7
|
Prawn::ManualBuilder::Example.generate(filename) do
|
11
8
|
stroke_axis
|
12
9
|
|
13
|
-
# Fill with Yellow using RGB
|
14
|
-
fill_color
|
15
|
-
fill_polygon [50, 150], [150, 200], [250, 150],
|
16
|
-
[250, 50], [150, 0], [50, 50]
|
10
|
+
# Fill with Yellow using RGB (Unlike css, there is no leading #)
|
11
|
+
fill_color 'FFFFCC'
|
12
|
+
fill_polygon [50, 150], [150, 200], [250, 150], [250, 50], [150, 0], [50, 50]
|
17
13
|
|
18
14
|
# Stroke with Purple using CMYK
|
19
15
|
stroke_color 50, 100, 0, 0
|
@@ -1,5 +1,3 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
1
|
# Prawn provides helpers for drawing some commonly used lines:
|
4
2
|
#
|
5
3
|
# <code>vertical_line</code> and <code>horizontal_line</code> do just what their
|
@@ -8,23 +6,22 @@
|
|
8
6
|
#
|
9
7
|
# <code>horizontal_rule</code> draws a horizontal line on the current bounding
|
10
8
|
# box from border to border, using the current y position.
|
11
|
-
|
12
|
-
|
13
|
-
%w[.. example_helper]))
|
9
|
+
|
10
|
+
require_relative '../example_helper'
|
14
11
|
|
15
12
|
filename = File.basename(__FILE__).gsub('.rb', '.pdf')
|
16
13
|
Prawn::ManualBuilder::Example.generate(filename) do
|
17
14
|
stroke_axis
|
18
15
|
|
19
|
-
stroke_color
|
16
|
+
stroke_color 'ff0000'
|
20
17
|
|
21
18
|
stroke do
|
22
19
|
# just lower the current y position
|
23
20
|
move_down 50
|
24
21
|
horizontal_rule
|
25
22
|
|
26
|
-
vertical_line 100, 300, :
|
23
|
+
vertical_line 100, 300, at: 50
|
27
24
|
|
28
|
-
horizontal_line 200, 500, :
|
25
|
+
horizontal_line 200, 500, at: 150
|
29
26
|
end
|
30
27
|
end
|