prawn-layout 0.3.2 → 0.7.1
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/README +1 -0
- data/Rakefile +6 -3
- data/lib/prawn/layout.rb +1 -1
- data/lib/prawn/layout/page.rb +0 -40
- data/lib/prawn/table/cell.rb +15 -13
- metadata +31 -309
- data/examples/page_layout/flowing_text_with_header_and_footer.rb +0 -36
- data/spec/page_layout_spec.rb +0 -41
- data/vendor/prawn-core/COPYING +0 -340
- data/vendor/prawn-core/HACKING +0 -46
- data/vendor/prawn-core/LICENSE +0 -56
- data/vendor/prawn-core/README +0 -142
- data/vendor/prawn-core/Rakefile +0 -75
- data/vendor/prawn-core/bench/afm_text_bench.rb +0 -18
- data/vendor/prawn-core/bench/png_type_6.rb +0 -15
- data/vendor/prawn-core/bench/ttf_text_bench.rb +0 -19
- data/vendor/prawn-core/bugs/canvas_sets_y_to_0.rb +0 -15
- data/vendor/prawn-core/bugs/png_barcode_issue.rb +0 -11
- data/vendor/prawn-core/bugs/resolved/canvas_sets_y_to_0.rb +0 -15
- data/vendor/prawn-core/data/encodings/win_ansi.txt +0 -29
- data/vendor/prawn-core/data/fonts/Action Man.dfont +0 -0
- data/vendor/prawn-core/data/fonts/Activa.ttf +0 -0
- data/vendor/prawn-core/data/fonts/Chalkboard.ttf +0 -0
- data/vendor/prawn-core/data/fonts/Courier-Bold.afm +0 -342
- data/vendor/prawn-core/data/fonts/Courier-BoldOblique.afm +0 -342
- data/vendor/prawn-core/data/fonts/Courier-Oblique.afm +0 -342
- data/vendor/prawn-core/data/fonts/Courier.afm +0 -342
- data/vendor/prawn-core/data/fonts/DejaVuSans.ttf +0 -0
- data/vendor/prawn-core/data/fonts/Dustismo_Roman.ttf +0 -0
- data/vendor/prawn-core/data/fonts/Helvetica-Bold.afm +0 -2827
- data/vendor/prawn-core/data/fonts/Helvetica-BoldOblique.afm +0 -2827
- data/vendor/prawn-core/data/fonts/Helvetica-Oblique.afm +0 -3051
- data/vendor/prawn-core/data/fonts/Helvetica.afm +0 -3051
- data/vendor/prawn-core/data/fonts/MustRead.html +0 -19
- data/vendor/prawn-core/data/fonts/Symbol.afm +0 -213
- data/vendor/prawn-core/data/fonts/Times-Bold.afm +0 -2588
- data/vendor/prawn-core/data/fonts/Times-BoldItalic.afm +0 -2384
- data/vendor/prawn-core/data/fonts/Times-Italic.afm +0 -2667
- data/vendor/prawn-core/data/fonts/Times-Roman.afm +0 -2419
- data/vendor/prawn-core/data/fonts/ZapfDingbats.afm +0 -225
- data/vendor/prawn-core/data/fonts/comicsans.ttf +0 -0
- data/vendor/prawn-core/data/fonts/gkai00mp.ttf +0 -0
- data/vendor/prawn-core/data/images/16bit.alpha +0 -0
- data/vendor/prawn-core/data/images/16bit.dat +0 -0
- data/vendor/prawn-core/data/images/16bit.png +0 -0
- data/vendor/prawn-core/data/images/arrow.png +0 -0
- data/vendor/prawn-core/data/images/arrow2.png +0 -0
- data/vendor/prawn-core/data/images/barcode_issue.png +0 -0
- data/vendor/prawn-core/data/images/dice.alpha +0 -0
- data/vendor/prawn-core/data/images/dice.dat +0 -0
- data/vendor/prawn-core/data/images/dice.png +0 -0
- data/vendor/prawn-core/data/images/dice_interlaced.png +0 -0
- data/vendor/prawn-core/data/images/fractal.jpg +0 -0
- data/vendor/prawn-core/data/images/letterhead.jpg +0 -0
- data/vendor/prawn-core/data/images/page_white_text.alpha +0 -0
- data/vendor/prawn-core/data/images/page_white_text.dat +0 -0
- data/vendor/prawn-core/data/images/page_white_text.png +0 -0
- data/vendor/prawn-core/data/images/pigs.jpg +0 -0
- data/vendor/prawn-core/data/images/rails.dat +0 -0
- data/vendor/prawn-core/data/images/rails.png +0 -0
- data/vendor/prawn-core/data/images/ruport.png +0 -0
- data/vendor/prawn-core/data/images/ruport_data.dat +0 -0
- data/vendor/prawn-core/data/images/ruport_transparent.png +0 -0
- data/vendor/prawn-core/data/images/ruport_type0.png +0 -0
- data/vendor/prawn-core/data/images/stef.jpg +0 -0
- data/vendor/prawn-core/data/images/tru256.bmp +0 -0
- data/vendor/prawn-core/data/images/web-links.dat +0 -1
- data/vendor/prawn-core/data/images/web-links.png +0 -0
- data/vendor/prawn-core/data/shift_jis_text.txt +0 -1
- data/vendor/prawn-core/examples/bounding_box/bounding_boxes.rb +0 -43
- data/vendor/prawn-core/examples/bounding_box/indentation.rb +0 -34
- data/vendor/prawn-core/examples/bounding_box/russian_boxes.rb +0 -36
- data/vendor/prawn-core/examples/bounding_box/stretched_nesting.rb +0 -67
- data/vendor/prawn-core/examples/column_box/column_box_example.rb +0 -43
- data/vendor/prawn-core/examples/example_helper.rb +0 -3
- data/vendor/prawn-core/examples/general/background.rb +0 -23
- data/vendor/prawn-core/examples/general/canvas.rb +0 -15
- data/vendor/prawn-core/examples/general/margin.rb +0 -36
- data/vendor/prawn-core/examples/general/measurement_units.rb +0 -51
- data/vendor/prawn-core/examples/general/metadata-info.rb +0 -16
- data/vendor/prawn-core/examples/general/multi_page_layout.rb +0 -18
- data/vendor/prawn-core/examples/general/page_geometry.rb +0 -31
- data/vendor/prawn-core/examples/general/page_numbering.rb +0 -15
- data/vendor/prawn-core/examples/general/stamp.rb +0 -45
- data/vendor/prawn-core/examples/graphics/basic_images.rb +0 -23
- data/vendor/prawn-core/examples/graphics/cmyk.rb +0 -12
- data/vendor/prawn-core/examples/graphics/curves.rb +0 -11
- data/vendor/prawn-core/examples/graphics/hexagon.rb +0 -13
- data/vendor/prawn-core/examples/graphics/image_fit.rb +0 -15
- data/vendor/prawn-core/examples/graphics/image_flow.rb +0 -37
- data/vendor/prawn-core/examples/graphics/image_position.rb +0 -17
- data/vendor/prawn-core/examples/graphics/line.rb +0 -32
- data/vendor/prawn-core/examples/graphics/png_types.rb +0 -22
- data/vendor/prawn-core/examples/graphics/polygons.rb +0 -16
- data/vendor/prawn-core/examples/graphics/remote_images.rb +0 -12
- data/vendor/prawn-core/examples/graphics/ruport_style_helpers.rb +0 -19
- data/vendor/prawn-core/examples/graphics/stroke_bounds.rb +0 -20
- data/vendor/prawn-core/examples/graphics/stroke_cap_and_join.rb +0 -45
- data/vendor/prawn-core/examples/graphics/stroke_dash.rb +0 -42
- data/vendor/prawn-core/examples/graphics/transparency.rb +0 -26
- data/vendor/prawn-core/examples/m17n/chinese_text_wrapping.rb +0 -19
- data/vendor/prawn-core/examples/m17n/euro.rb +0 -15
- data/vendor/prawn-core/examples/m17n/sjis.rb +0 -28
- data/vendor/prawn-core/examples/m17n/utf8.rb +0 -13
- data/vendor/prawn-core/examples/m17n/win_ansi_charset.rb +0 -54
- data/vendor/prawn-core/examples/text/alignment.rb +0 -18
- data/vendor/prawn-core/examples/text/dfont.rb +0 -48
- data/vendor/prawn-core/examples/text/family_based_styling.rb +0 -24
- data/vendor/prawn-core/examples/text/font_calculations.rb +0 -91
- data/vendor/prawn-core/examples/text/font_size.rb +0 -33
- data/vendor/prawn-core/examples/text/kerning.rb +0 -30
- data/vendor/prawn-core/examples/text/simple_text.rb +0 -17
- data/vendor/prawn-core/examples/text/simple_text_ttf.rb +0 -17
- data/vendor/prawn-core/examples/text/span.rb +0 -29
- data/vendor/prawn-core/examples/text/text_box.rb +0 -25
- data/vendor/prawn-core/examples/text/text_box_returning_excess.rb +0 -51
- data/vendor/prawn-core/examples/text/text_flow.rb +0 -67
- data/vendor/prawn-core/lib/prawn/byte_string.rb +0 -7
- data/vendor/prawn-core/lib/prawn/compatibility.rb +0 -38
- data/vendor/prawn-core/lib/prawn/core.rb +0 -85
- data/vendor/prawn-core/lib/prawn/document.rb +0 -534
- data/vendor/prawn-core/lib/prawn/document/annotations.rb +0 -65
- data/vendor/prawn-core/lib/prawn/document/bounding_box.rb +0 -390
- data/vendor/prawn-core/lib/prawn/document/column_box.rb +0 -102
- data/vendor/prawn-core/lib/prawn/document/destinations.rb +0 -92
- data/vendor/prawn-core/lib/prawn/document/internals.rb +0 -180
- data/vendor/prawn-core/lib/prawn/document/page_geometry.rb +0 -153
- data/vendor/prawn-core/lib/prawn/document/snapshot.rb +0 -71
- data/vendor/prawn-core/lib/prawn/document/span.rb +0 -55
- data/vendor/prawn-core/lib/prawn/document/text.rb +0 -184
- data/vendor/prawn-core/lib/prawn/document/text/box.rb +0 -90
- data/vendor/prawn-core/lib/prawn/document/text/wrapping.rb +0 -62
- data/vendor/prawn-core/lib/prawn/encoding.rb +0 -121
- data/vendor/prawn-core/lib/prawn/errors.rb +0 -61
- data/vendor/prawn-core/lib/prawn/font.rb +0 -297
- data/vendor/prawn-core/lib/prawn/font/afm.rb +0 -202
- data/vendor/prawn-core/lib/prawn/font/dfont.rb +0 -34
- data/vendor/prawn-core/lib/prawn/font/ttf.rb +0 -329
- data/vendor/prawn-core/lib/prawn/graphics.rb +0 -264
- data/vendor/prawn-core/lib/prawn/graphics/cap_style.rb +0 -35
- data/vendor/prawn-core/lib/prawn/graphics/color.rb +0 -141
- data/vendor/prawn-core/lib/prawn/graphics/dash.rb +0 -69
- data/vendor/prawn-core/lib/prawn/graphics/join_style.rb +0 -35
- data/vendor/prawn-core/lib/prawn/graphics/transparency.rb +0 -56
- data/vendor/prawn-core/lib/prawn/images.rb +0 -339
- data/vendor/prawn-core/lib/prawn/images/jpg.rb +0 -46
- data/vendor/prawn-core/lib/prawn/images/png.rb +0 -219
- data/vendor/prawn-core/lib/prawn/literal_string.rb +0 -14
- data/vendor/prawn-core/lib/prawn/measurement_extensions.rb +0 -46
- data/vendor/prawn-core/lib/prawn/measurements.rb +0 -71
- data/vendor/prawn-core/lib/prawn/name_tree.rb +0 -166
- data/vendor/prawn-core/lib/prawn/object_store.rb +0 -63
- data/vendor/prawn-core/lib/prawn/pdf_object.rb +0 -81
- data/vendor/prawn-core/lib/prawn/reference.rb +0 -72
- data/vendor/prawn-core/lib/prawn/stamp.rb +0 -87
- data/vendor/prawn-core/meta/Rakefile +0 -62
- data/vendor/prawn-core/meta/lib/prawn.rb +0 -2
- data/vendor/prawn-core/reference_pdfs/alignment.pdf +0 -229
- data/vendor/prawn-core/reference_pdfs/background.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/basic_images.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/bounding_boxes.pdf +0 -128
- data/vendor/prawn-core/reference_pdfs/canvas.pdf +0 -78
- data/vendor/prawn-core/reference_pdfs/chinese_flow.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/cmyk.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/column_box.pdf +0 -3671
- data/vendor/prawn-core/reference_pdfs/curves.pdf +0 -62
- data/vendor/prawn-core/reference_pdfs/dfont.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/euro.pdf +0 -75
- data/vendor/prawn-core/reference_pdfs/family_style.pdf +0 -286
- data/vendor/prawn-core/reference_pdfs/flow.pdf +0 -964
- data/vendor/prawn-core/reference_pdfs/font_calculations.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/font_size.pdf +0 -142
- data/vendor/prawn-core/reference_pdfs/hexagon.pdf +0 -61
- data/vendor/prawn-core/reference_pdfs/image-flow.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/image_fit.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/image_position.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/indentation.pdf +0 -124
- data/vendor/prawn-core/reference_pdfs/kerning.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/landscape_a4.pdf +0 -52
- data/vendor/prawn-core/reference_pdfs/landscape_legal.pdf +0 -52
- data/vendor/prawn-core/reference_pdfs/landscape_letter.pdf +0 -52
- data/vendor/prawn-core/reference_pdfs/lines.pdf +0 -116
- data/vendor/prawn-core/reference_pdfs/margin.pdf +0 -3850
- data/vendor/prawn-core/reference_pdfs/measurement_units.pdf +0 -4667
- data/vendor/prawn-core/reference_pdfs/metadata-info.pdf +0 -88
- data/vendor/prawn-core/reference_pdfs/multi-layout.pdf +0 -209
- data/vendor/prawn-core/reference_pdfs/page_with_numbering.pdf +0 -156
- data/vendor/prawn-core/reference_pdfs/png_types.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/portrait_a4.pdf +0 -52
- data/vendor/prawn-core/reference_pdfs/portrait_legal.pdf +0 -52
- data/vendor/prawn-core/reference_pdfs/portrait_letter.pdf +0 -52
- data/vendor/prawn-core/reference_pdfs/pretty_polygons.pdf +0 -122
- data/vendor/prawn-core/reference_pdfs/remote_images.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/ruport.pdf +0 -101
- data/vendor/prawn-core/reference_pdfs/russian_boxes.pdf +0 -2780
- data/vendor/prawn-core/reference_pdfs/simple_text.pdf +0 -136
- data/vendor/prawn-core/reference_pdfs/simple_text_ttf.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/sjis.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/span.pdf +0 -1975
- data/vendor/prawn-core/reference_pdfs/stamp.pdf +0 -696
- data/vendor/prawn-core/reference_pdfs/stretched_nesting.pdf +0 -200
- data/vendor/prawn-core/reference_pdfs/stroke_bounds.pdf +0 -135
- data/vendor/prawn-core/reference_pdfs/stroke_cap_and_join.pdf +0 -80
- data/vendor/prawn-core/reference_pdfs/stroke_dash.pdf +0 -457
- data/vendor/prawn-core/reference_pdfs/text_box.pdf +0 -315
- data/vendor/prawn-core/reference_pdfs/text_box_returning_excess.pdf +0 -271
- data/vendor/prawn-core/reference_pdfs/transparency.pdf +0 -347
- data/vendor/prawn-core/reference_pdfs/utf8.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/win-ansi.pdf +0 -6172
- data/vendor/prawn-core/spec/annotations_spec.rb +0 -90
- data/vendor/prawn-core/spec/bounding_box_spec.rb +0 -185
- data/vendor/prawn-core/spec/destinations_spec.rb +0 -15
- data/vendor/prawn-core/spec/document_spec.rb +0 -231
- data/vendor/prawn-core/spec/font_spec.rb +0 -273
- data/vendor/prawn-core/spec/graphics_spec.rb +0 -209
- data/vendor/prawn-core/spec/images_spec.rb +0 -79
- data/vendor/prawn-core/spec/jpg_spec.rb +0 -25
- data/vendor/prawn-core/spec/measurement_units_spec.rb +0 -23
- data/vendor/prawn-core/spec/name_tree_spec.rb +0 -112
- data/vendor/prawn-core/spec/object_store_spec.rb +0 -42
- data/vendor/prawn-core/spec/pdf_object_spec.rb +0 -122
- data/vendor/prawn-core/spec/png_spec.rb +0 -236
- data/vendor/prawn-core/spec/reference_spec.rb +0 -82
- data/vendor/prawn-core/spec/snapshot_spec.rb +0 -115
- data/vendor/prawn-core/spec/span_spec.rb +0 -45
- data/vendor/prawn-core/spec/spec_helper.rb +0 -20
- data/vendor/prawn-core/spec/stamp_spec.rb +0 -98
- data/vendor/prawn-core/spec/stroke_styles_spec.rb +0 -152
- data/vendor/prawn-core/spec/text_box_spec.rb +0 -109
- data/vendor/prawn-core/spec/text_spec.rb +0 -185
- data/vendor/prawn-core/spec/transparency_spec.rb +0 -61
- data/vendor/prawn-core/vendor/pdf-inspector/README +0 -18
- data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector.rb +0 -26
- data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/extgstate.rb +0 -18
- data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/graphics.rb +0 -119
- data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/page.rb +0 -25
- data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/text.rb +0 -31
- data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/xobject.rb +0 -19
- data/vendor/prawn-core/vendor/ttfunk/data/fonts/DejaVuSans.ttf +0 -0
- data/vendor/prawn-core/vendor/ttfunk/data/fonts/comicsans.ttf +0 -0
- data/vendor/prawn-core/vendor/ttfunk/example.rb +0 -45
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk.rb +0 -102
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/directory.rb +0 -17
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/encoding/mac_roman.rb +0 -88
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/encoding/windows_1252.rb +0 -69
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/reader.rb +0 -44
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/resource_file.rb +0 -78
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset.rb +0 -18
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/base.rb +0 -141
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/mac_roman.rb +0 -46
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/unicode.rb +0 -48
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/unicode_8bit.rb +0 -63
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/windows_1252.rb +0 -51
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset_collection.rb +0 -72
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table.rb +0 -46
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap.rb +0 -34
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/format00.rb +0 -54
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/format04.rb +0 -126
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/subtable.rb +0 -79
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf.rb +0 -64
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf/compound.rb +0 -81
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf/simple.rb +0 -37
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/head.rb +0 -44
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/hhea.rb +0 -41
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/hmtx.rb +0 -47
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/kern.rb +0 -79
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/kern/format0.rb +0 -62
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/loca.rb +0 -43
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/maxp.rb +0 -40
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/name.rb +0 -119
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/os2.rb +0 -78
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post.rb +0 -91
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format10.rb +0 -43
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format20.rb +0 -35
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format25.rb +0 -23
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format30.rb +0 -17
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format40.rb +0 -17
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/simple.rb +0 -14
- data/vendor/prawn-core/www/index.html +0 -196
- data/vendor/prawn-core/www/media/bounding_boxes.pdf +0 -146
- data/vendor/prawn-core/www/media/bounding_boxes.png +0 -0
- data/vendor/prawn-core/www/media/bounding_boxes_out.png +0 -0
- data/vendor/prawn-core/www/media/fancy_table.pdf +0 -350
- data/vendor/prawn-core/www/media/image.pdf +0 -0
- data/vendor/prawn-core/www/media/images.png +0 -0
- data/vendor/prawn-core/www/media/prawn_logo.png +0 -0
- data/vendor/prawn-core/www/media/tables.png +0 -0
- data/vendor/prawn-core/www/media/utf8.pdf +0 -0
- data/vendor/prawn-core/www/media/utf8.png +0 -0
- data/vendor/prawn-core/www/prawn-Chinese.html +0 -113
- data/vendor/prawn-core/www/prawn.css +0 -86
- data/vendor/prawn-core/www/twilight.css +0 -266
@@ -1,264 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
# graphics.rb : Implements PDF drawing primitives
|
4
|
-
#
|
5
|
-
# Copyright April 2008, Gregory Brown. All Rights Reserved.
|
6
|
-
#
|
7
|
-
# This is free software. Please see the LICENSE and COPYING files for details.
|
8
|
-
|
9
|
-
require "prawn/graphics/color"
|
10
|
-
require "prawn/graphics/dash"
|
11
|
-
require "prawn/graphics/cap_style"
|
12
|
-
require "prawn/graphics/join_style"
|
13
|
-
require "prawn/graphics/transparency"
|
14
|
-
|
15
|
-
module Prawn
|
16
|
-
|
17
|
-
# Implements the drawing facilities for Prawn::Document.
|
18
|
-
# Use this to draw the most beautiful imaginable things.
|
19
|
-
#
|
20
|
-
# This file lifts and modifies several of PDF::Writer's graphics functions
|
21
|
-
# ruby-pdf.rubyforge.org
|
22
|
-
#
|
23
|
-
module Graphics
|
24
|
-
|
25
|
-
include Color
|
26
|
-
include Dash
|
27
|
-
include CapStyle
|
28
|
-
include JoinStyle
|
29
|
-
include Transparency
|
30
|
-
|
31
|
-
#######################################################################
|
32
|
-
# Low level drawing operations must translate to absolute coords! #
|
33
|
-
#######################################################################
|
34
|
-
|
35
|
-
# Moves the drawing position to a given point. The point can be
|
36
|
-
# specified as a tuple or a flattened argument list
|
37
|
-
#
|
38
|
-
# pdf.move_to [100,50]
|
39
|
-
# pdf.move_to(100,50)
|
40
|
-
#
|
41
|
-
def move_to(*point)
|
42
|
-
x,y = translate(point)
|
43
|
-
add_content("%.3f %.3f m" % [ x, y ])
|
44
|
-
end
|
45
|
-
|
46
|
-
# Draws a line from the current drawing position to the specified point.
|
47
|
-
# The destination may be described as a tuple or a flattened list:
|
48
|
-
#
|
49
|
-
# pdf.line_to [50,50]
|
50
|
-
# pdf.line_to(50,50)
|
51
|
-
#
|
52
|
-
def line_to(*point)
|
53
|
-
x,y = translate(point)
|
54
|
-
add_content("%.3f %.3f l" % [ x, y ])
|
55
|
-
end
|
56
|
-
|
57
|
-
# Draws a Bezier curve from the current drawing position to the
|
58
|
-
# specified point, bounded by two additional points.
|
59
|
-
#
|
60
|
-
# pdf.curve_to [100,100], :bounds => [[90,90],[75,75]]
|
61
|
-
#
|
62
|
-
def curve_to(dest,options={})
|
63
|
-
options[:bounds] or raise Prawn::Errors::InvalidGraphicsPath,
|
64
|
-
"Bounding points for bezier curve must be specified "+
|
65
|
-
"as :bounds => [[x1,y1],[x2,y2]]"
|
66
|
-
|
67
|
-
curve_points = (options[:bounds] << dest).map { |e| translate(e) }
|
68
|
-
add_content("%.3f %.3f %.3f %.3f %.3f %.3f c" %
|
69
|
-
curve_points.flatten )
|
70
|
-
end
|
71
|
-
|
72
|
-
# Draws a rectangle given <tt>point</tt>, <tt>width</tt> and
|
73
|
-
# <tt>height</tt>. The rectangle is bounded by its upper-left corner.
|
74
|
-
#
|
75
|
-
# pdf.rectangle [300,300], 100, 200
|
76
|
-
#
|
77
|
-
def rectangle(point,width,height)
|
78
|
-
x,y = translate(point)
|
79
|
-
add_content("%.3f %.3f %.3f %.3f re" % [ x, y - height, width, height ])
|
80
|
-
end
|
81
|
-
|
82
|
-
###########################################################
|
83
|
-
# Higher level functions: May use relative coords #
|
84
|
-
###########################################################
|
85
|
-
|
86
|
-
# Sets line thickness to the <tt>width</tt> specified.
|
87
|
-
#
|
88
|
-
def line_width=(width)
|
89
|
-
@line_width = width
|
90
|
-
add_content("#{width} w")
|
91
|
-
end
|
92
|
-
|
93
|
-
# When called without an argument, returns the current line thickness.
|
94
|
-
# When called with an argument, sets the line thickness to the specified
|
95
|
-
# value (in PDF points)
|
96
|
-
#
|
97
|
-
# pdf.line_width #=> 1
|
98
|
-
# pdf.line_width(5)
|
99
|
-
# pdf.line_width #=> 5
|
100
|
-
#
|
101
|
-
def line_width(width=nil)
|
102
|
-
if width
|
103
|
-
self.line_width = width
|
104
|
-
else
|
105
|
-
(defined?(@line_width) && @line_width) || 1
|
106
|
-
end
|
107
|
-
end
|
108
|
-
|
109
|
-
# Draws a line from one point to another. Points may be specified as
|
110
|
-
# tuples or flattened argument list:
|
111
|
-
#
|
112
|
-
# pdf.line [100,100], [200,250]
|
113
|
-
# pdf.line(100,100,200,250)
|
114
|
-
#
|
115
|
-
def line(*points)
|
116
|
-
x0,y0,x1,y1 = points.flatten
|
117
|
-
move_to(x0, y0)
|
118
|
-
line_to(x1, y1)
|
119
|
-
end
|
120
|
-
|
121
|
-
# Draws a horizontal line from <tt>x1</tt> to <tt>x2</tt> at the
|
122
|
-
# current <tt>y</tt> position, or the position specified by the :at option.
|
123
|
-
#
|
124
|
-
# # draw a line from [25, 75] to [100, 75]
|
125
|
-
# horizontal_line 25, 100, :at => 75
|
126
|
-
#
|
127
|
-
def horizontal_line(x1,x2,options={})
|
128
|
-
if options[:at]
|
129
|
-
y1 = options[:at]
|
130
|
-
else
|
131
|
-
y1 = y - bounds.absolute_bottom
|
132
|
-
end
|
133
|
-
|
134
|
-
line(x1,y1,x2,y1)
|
135
|
-
end
|
136
|
-
|
137
|
-
# Draws a horizontal line from the left border to the right border of the
|
138
|
-
# bounding box at the current <tt>y</tt> position.
|
139
|
-
#
|
140
|
-
def horizontal_rule
|
141
|
-
horizontal_line(bounds.left, bounds.right)
|
142
|
-
end
|
143
|
-
|
144
|
-
# Draws a vertical line at the x cooordinate given by :at from y1 to y2.
|
145
|
-
#
|
146
|
-
# # draw a line from [25, 100] to [25, 300]
|
147
|
-
# vertical_line 100, 300, :at => 25
|
148
|
-
#
|
149
|
-
def vertical_line(y1,y2,params)
|
150
|
-
line(params[:at],y1,params[:at],y2)
|
151
|
-
end
|
152
|
-
|
153
|
-
# Draws a Bezier curve between two points, bounded by two additional
|
154
|
-
# points
|
155
|
-
#
|
156
|
-
# pdf.curve [50,100], [100,100], :bounds => [[90,90],[75,75]]
|
157
|
-
#
|
158
|
-
def curve(origin,dest, options={})
|
159
|
-
move_to(*origin)
|
160
|
-
curve_to(dest,options)
|
161
|
-
end
|
162
|
-
|
163
|
-
# This constant is used to approximate a symmetrical arc using a cubic
|
164
|
-
# Bezier curve.
|
165
|
-
#
|
166
|
-
KAPPA = 4.0 * ((Math.sqrt(2) - 1.0) / 3.0)
|
167
|
-
|
168
|
-
# Draws a circle of radius <tt>:radius</tt> with the centre-point at <tt>point</tt>
|
169
|
-
# as a complete subpath. The drawing point will be moved to the
|
170
|
-
# centre-point upon completion of the drawing the circle.
|
171
|
-
#
|
172
|
-
# pdf.circle_at [100,100], :radius => 25
|
173
|
-
#
|
174
|
-
def circle_at(point, options)
|
175
|
-
x,y = point
|
176
|
-
ellipse_at [x, y], options[:radius]
|
177
|
-
end
|
178
|
-
|
179
|
-
# Draws an ellipse of +x+ radius <tt>r1</tt> and +y+ radius <tt>r2</tt>
|
180
|
-
# with the centre-point at <tt>point</tt> as a complete subpath. The
|
181
|
-
# drawing point will be moved to the centre-point upon completion of the
|
182
|
-
# drawing the ellipse.
|
183
|
-
#
|
184
|
-
# # draws an ellipse with x-radius 25 and y-radius 50
|
185
|
-
# pdf.ellipse_at [100,100], 25, 50
|
186
|
-
#
|
187
|
-
def ellipse_at(point, r1, r2 = r1)
|
188
|
-
x, y = point
|
189
|
-
l1 = r1 * KAPPA
|
190
|
-
l2 = r2 * KAPPA
|
191
|
-
|
192
|
-
move_to(x + r1, y)
|
193
|
-
|
194
|
-
# Upper right hand corner
|
195
|
-
curve_to [x, y + r2],
|
196
|
-
:bounds => [[x + r1, y + l1], [x + l2, y + r2]]
|
197
|
-
|
198
|
-
# Upper left hand corner
|
199
|
-
curve_to [x - r1, y],
|
200
|
-
:bounds => [[x - l2, y + r2], [x - r1, y + l1]]
|
201
|
-
|
202
|
-
# Lower left hand corner
|
203
|
-
curve_to [x, y - r2],
|
204
|
-
:bounds => [[x - r1, y - l1], [x - l2, y - r2]]
|
205
|
-
|
206
|
-
# Lower right hand corner
|
207
|
-
curve_to [x + r1, y],
|
208
|
-
:bounds => [[x + l2, y - r2], [x + r1, y - l1]]
|
209
|
-
|
210
|
-
move_to(x, y)
|
211
|
-
end
|
212
|
-
|
213
|
-
# Draws a polygon from the specified points.
|
214
|
-
#
|
215
|
-
# # draws a snazzy triangle
|
216
|
-
# pdf.polygon [100,100], [100,200], [200,200]
|
217
|
-
#
|
218
|
-
def polygon(*points)
|
219
|
-
move_to points[0]
|
220
|
-
(points[1..-1] << points[0]).each do |point|
|
221
|
-
line_to(*point)
|
222
|
-
end
|
223
|
-
end
|
224
|
-
|
225
|
-
# Strokes and closes the current path. See Graphic::Color for color details
|
226
|
-
#
|
227
|
-
def stroke
|
228
|
-
yield if block_given?
|
229
|
-
add_content "S"
|
230
|
-
end
|
231
|
-
|
232
|
-
# Draws and strokes a rectangle represented by the current bounding box
|
233
|
-
#
|
234
|
-
def stroke_bounds
|
235
|
-
stroke_rectangle bounds.top_left, bounds.width, bounds.height
|
236
|
-
end
|
237
|
-
|
238
|
-
# Fills and closes the current path. See Graphic::Color for color details
|
239
|
-
#
|
240
|
-
def fill
|
241
|
-
yield if block_given?
|
242
|
-
add_content "f"
|
243
|
-
end
|
244
|
-
|
245
|
-
# Fills, strokes, and closes the current path. See Graphic::Color for color details
|
246
|
-
#
|
247
|
-
def fill_and_stroke
|
248
|
-
yield if block_given?
|
249
|
-
add_content "b"
|
250
|
-
end
|
251
|
-
|
252
|
-
private
|
253
|
-
|
254
|
-
def translate(*point)
|
255
|
-
x,y = point.flatten
|
256
|
-
[@bounding_box.absolute_left + x, @bounding_box.absolute_bottom + y]
|
257
|
-
end
|
258
|
-
|
259
|
-
def translate!(point)
|
260
|
-
point.replace(translate(point))
|
261
|
-
end
|
262
|
-
|
263
|
-
end
|
264
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
# cap_style.rb : Implements stroke cap styling
|
4
|
-
#
|
5
|
-
# Contributed by Daniel Nelson. October, 2009
|
6
|
-
#
|
7
|
-
# This is free software. Please see the LICENSE and COPYING files for details.
|
8
|
-
#
|
9
|
-
module Prawn
|
10
|
-
module Graphics
|
11
|
-
module CapStyle
|
12
|
-
# Sets the cap_style for stroked lines and curves
|
13
|
-
#
|
14
|
-
|
15
|
-
CAP_STYLES = { :butt => 0, :round => 1, :projecting_square => 2 }
|
16
|
-
|
17
|
-
# style is one of :butt, :round, or :projecting_square
|
18
|
-
def cap_style(style=nil)
|
19
|
-
return @cap_style || :butt if style.nil?
|
20
|
-
|
21
|
-
@cap_style = style
|
22
|
-
|
23
|
-
write_stroke_cap_style
|
24
|
-
end
|
25
|
-
|
26
|
-
alias_method :cap_style=, :cap_style
|
27
|
-
|
28
|
-
private
|
29
|
-
|
30
|
-
def write_stroke_cap_style
|
31
|
-
add_content "#{CAP_STYLES[@cap_style]} J"
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,141 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
# color.rb : Implements color handling
|
4
|
-
#
|
5
|
-
# Copyright June 2008, Gregory Brown. All Rights Reserved.
|
6
|
-
#
|
7
|
-
# This is free software. Please see the LICENSE and COPYING files for details.
|
8
|
-
#
|
9
|
-
module Prawn
|
10
|
-
module Graphics
|
11
|
-
module Color
|
12
|
-
|
13
|
-
# Sets the fill color.
|
14
|
-
#
|
15
|
-
# If a single argument is provided, it should be a 6 digit HTML color
|
16
|
-
# code.
|
17
|
-
#
|
18
|
-
# pdf.fill_color "f0ffc1"
|
19
|
-
#
|
20
|
-
# If 4 arguments are provided, the color is assumed to be a CMYK value
|
21
|
-
# Values range from 0 - 100.
|
22
|
-
#
|
23
|
-
# pdf.fill_color 0, 99, 95, 0
|
24
|
-
#
|
25
|
-
def fill_color(*color)
|
26
|
-
return @fill_color if color.empty?
|
27
|
-
@fill_color = process_color(*color)
|
28
|
-
set_fill_color
|
29
|
-
end
|
30
|
-
|
31
|
-
alias_method :fill_color=, :fill_color
|
32
|
-
|
33
|
-
# Sets the line stroking color. 6 digit HTML color codes are used.
|
34
|
-
#
|
35
|
-
# If a single argument is provided, it should be a 6 digit HTML color
|
36
|
-
# code.
|
37
|
-
#
|
38
|
-
# pdf.stroke_color "f0ffc1"
|
39
|
-
#
|
40
|
-
# If 4 arguments are provided, the color is assumed to be a CMYK value
|
41
|
-
# Values range from 0 - 100.
|
42
|
-
#
|
43
|
-
# pdf.stroke_color 0, 99, 95, 0
|
44
|
-
#
|
45
|
-
def stroke_color(*color)
|
46
|
-
return @stroke_color if color.empty?
|
47
|
-
@stroke_color = process_color(*color)
|
48
|
-
set_stroke_color
|
49
|
-
end
|
50
|
-
|
51
|
-
alias_method :stroke_color=, :stroke_color
|
52
|
-
|
53
|
-
# Provides the following shortcuts:
|
54
|
-
#
|
55
|
-
# stroke_some_method(*args) #=> some_method(*args); stroke
|
56
|
-
# fill_some_method(*args) #=> some_method(*args); fill
|
57
|
-
# fill_and_stroke_some_method(*args) #=> some_method(*args); fill_and_stroke
|
58
|
-
#
|
59
|
-
def method_missing(id,*args,&block)
|
60
|
-
case(id.to_s)
|
61
|
-
when /^fill_and_stroke_(.*)/
|
62
|
-
send($1,*args,&block); fill_and_stroke
|
63
|
-
when /^stroke_(.*)/
|
64
|
-
send($1,*args,&block); stroke
|
65
|
-
when /^fill_(.*)/
|
66
|
-
send($1,*args,&block); fill
|
67
|
-
else
|
68
|
-
super
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
module_function
|
73
|
-
|
74
|
-
# Converts RGB value array to hex string suitable for use with fill_color
|
75
|
-
# and stroke_color
|
76
|
-
#
|
77
|
-
# >> Prawn::Graphics::Color.rgb2hex([255,120,8])
|
78
|
-
# => "ff7808"
|
79
|
-
#
|
80
|
-
def rgb2hex(rgb)
|
81
|
-
rgb.map { |e| "%02x" % e }.join
|
82
|
-
end
|
83
|
-
|
84
|
-
# Converts hex string into RGB value array:
|
85
|
-
#
|
86
|
-
# >> Prawn::Graphics::Color.hex2rgb("ff7808")
|
87
|
-
# => [255, 120, 8]
|
88
|
-
#
|
89
|
-
def hex2rgb(hex)
|
90
|
-
r,g,b = hex[0..1], hex[2..3], hex[4..5]
|
91
|
-
[r,g,b].map { |e| e.to_i(16) }
|
92
|
-
end
|
93
|
-
|
94
|
-
private
|
95
|
-
|
96
|
-
def process_color(*color)
|
97
|
-
case(color.size)
|
98
|
-
when 1
|
99
|
-
color[0]
|
100
|
-
when 4
|
101
|
-
color
|
102
|
-
else
|
103
|
-
raise ArgumentError, 'wrong number of arguments supplied'
|
104
|
-
end
|
105
|
-
end
|
106
|
-
|
107
|
-
def set_fill_color
|
108
|
-
case @fill_color
|
109
|
-
when String
|
110
|
-
r,g,b = hex2rgb(@fill_color)
|
111
|
-
add_content "%.3f %.3f %.3f rg" %
|
112
|
-
[r / 255.0, g / 255.0, b / 255.0]
|
113
|
-
when Array
|
114
|
-
c,m,y,k = *@fill_color
|
115
|
-
add_content "%.3f %.3f %.3f %.3f k" %
|
116
|
-
[c / 100.0, m / 100.0, y / 100.0, k / 100.0]
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
def set_stroke_color
|
121
|
-
case @stroke_color
|
122
|
-
when String
|
123
|
-
r,g,b = hex2rgb(@stroke_color)
|
124
|
-
add_content "%.3f %.3f %.3f RG" %
|
125
|
-
[r / 255.0, g / 255.0, b / 255.0]
|
126
|
-
when Array
|
127
|
-
c,m,y,k = *@stroke_color
|
128
|
-
add_content "%.3f %.3f %.3f %.3f K" %
|
129
|
-
[c / 100.0, m / 100.0, y / 100.0, k / 100.0]
|
130
|
-
end
|
131
|
-
end
|
132
|
-
|
133
|
-
def update_colors
|
134
|
-
@fill_color ||= "000000"
|
135
|
-
@stroke_color ||= "000000"
|
136
|
-
set_fill_color
|
137
|
-
set_stroke_color
|
138
|
-
end
|
139
|
-
end
|
140
|
-
end
|
141
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
# dash.rb : Implements stroke dashing
|
4
|
-
#
|
5
|
-
# Contributed by Daniel Nelson. October, 2009
|
6
|
-
#
|
7
|
-
# This is free software. Please see the LICENSE and COPYING files for details.
|
8
|
-
#
|
9
|
-
module Prawn
|
10
|
-
module Graphics
|
11
|
-
module Dash
|
12
|
-
|
13
|
-
# Sets the dash pattern for stroked lines and curves
|
14
|
-
#
|
15
|
-
# length is the length of the dash. If options is not present,
|
16
|
-
# or options[:space] is nil, then length is also the length of
|
17
|
-
# the space between dashes
|
18
|
-
#
|
19
|
-
# options may contain :space and :phase
|
20
|
-
# :space is the space between the dashes
|
21
|
-
# :phase is where in the cycle to begin dashing. For
|
22
|
-
# example, a phase of 0 starts at the beginning of
|
23
|
-
# the dash; whereas, if the phase is equal to the
|
24
|
-
# length of the dash, then stroking will begin at
|
25
|
-
# the beginning of the space. Default is 0
|
26
|
-
#
|
27
|
-
# integers or floats may be used for length and the options
|
28
|
-
#
|
29
|
-
# dash units are in PDF points ( 1/72 in )
|
30
|
-
#
|
31
|
-
def dash(length=nil, options={})
|
32
|
-
return @dash || undash_hash if length.nil?
|
33
|
-
|
34
|
-
@dash = { :dash => length,
|
35
|
-
:space => options[:space] || length,
|
36
|
-
:phase => options[:phase] || 0 }
|
37
|
-
|
38
|
-
write_stroke_dash
|
39
|
-
end
|
40
|
-
|
41
|
-
alias_method :dash=, :dash
|
42
|
-
|
43
|
-
# Restores solid stroking
|
44
|
-
def undash
|
45
|
-
@dash = undash_hash
|
46
|
-
write_stroke_dash
|
47
|
-
end
|
48
|
-
|
49
|
-
# Returns true iff the stroke is dashed
|
50
|
-
def dashed?
|
51
|
-
dash != undash_hash
|
52
|
-
end
|
53
|
-
|
54
|
-
private
|
55
|
-
|
56
|
-
def undash_hash
|
57
|
-
{ :dash => nil, :space => nil, :phase => 0 }
|
58
|
-
end
|
59
|
-
|
60
|
-
def write_stroke_dash
|
61
|
-
if @dash[:dash].nil?
|
62
|
-
add_content "[] 0 d"
|
63
|
-
return
|
64
|
-
end
|
65
|
-
add_content "[#{@dash[:dash]} #{@dash[:space]}] #{@dash[:phase]} d"
|
66
|
-
end
|
67
|
-
end
|
68
|
-
end
|
69
|
-
end
|