prawn-layout 0.2.1 → 0.3.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/Rakefile +1 -1
- data/examples/example_helper.rb +5 -1
- data/examples/grid/bounding_boxes.rb +21 -0
- data/examples/grid/column_gutter_grid.rb +20 -0
- data/examples/grid/multi_boxes.rb +51 -0
- data/examples/grid/show_grid.rb +13 -0
- data/lib/prawn/layout.rb +1 -1
- data/lib/prawn/layout/grid.rb +36 -18
- data/lib/prawn/table.rb +20 -8
- data/lib/prawn/table/cell.rb +24 -15
- data/spec/spec_helper.rb +2 -1
- data/spec/table_spec.rb +32 -0
- data/vendor/prawn-core/COPYING +340 -0
- data/vendor/prawn-core/HACKING +46 -0
- data/vendor/prawn-core/LICENSE +56 -0
- data/vendor/prawn-core/README +142 -0
- data/vendor/prawn-core/Rakefile +75 -0
- data/vendor/prawn-core/bench/afm_text_bench.rb +18 -0
- data/vendor/prawn-core/bench/png_type_6.rb +15 -0
- data/vendor/prawn-core/bench/ttf_text_bench.rb +19 -0
- data/vendor/prawn-core/bugs/canvas_sets_y_to_0.rb +15 -0
- data/vendor/prawn-core/bugs/png_barcode_issue.rb +11 -0
- data/vendor/prawn-core/bugs/resolved/canvas_sets_y_to_0.rb +15 -0
- data/vendor/prawn-core/data/encodings/win_ansi.txt +29 -0
- 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 +342 -0
- data/vendor/prawn-core/data/fonts/Courier-BoldOblique.afm +342 -0
- data/vendor/prawn-core/data/fonts/Courier-Oblique.afm +342 -0
- data/vendor/prawn-core/data/fonts/Courier.afm +342 -0
- 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 +2827 -0
- data/vendor/prawn-core/data/fonts/Helvetica-BoldOblique.afm +2827 -0
- data/vendor/prawn-core/data/fonts/Helvetica-Oblique.afm +3051 -0
- data/vendor/prawn-core/data/fonts/Helvetica.afm +3051 -0
- data/vendor/prawn-core/data/fonts/MustRead.html +19 -0
- data/vendor/prawn-core/data/fonts/Symbol.afm +213 -0
- data/vendor/prawn-core/data/fonts/Times-Bold.afm +2588 -0
- data/vendor/prawn-core/data/fonts/Times-BoldItalic.afm +2384 -0
- data/vendor/prawn-core/data/fonts/Times-Italic.afm +2667 -0
- data/vendor/prawn-core/data/fonts/Times-Roman.afm +2419 -0
- data/vendor/prawn-core/data/fonts/ZapfDingbats.afm +225 -0
- 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 +1 -0
- data/vendor/prawn-core/data/images/web-links.png +0 -0
- data/vendor/prawn-core/data/shift_jis_text.txt +1 -0
- data/vendor/prawn-core/examples/bounding_box/bounding_boxes.rb +43 -0
- data/vendor/prawn-core/examples/bounding_box/indentation.rb +34 -0
- data/vendor/prawn-core/examples/bounding_box/russian_boxes.rb +36 -0
- data/vendor/prawn-core/examples/bounding_box/stretched_nesting.rb +67 -0
- data/vendor/prawn-core/examples/column_box/column_box_example.rb +43 -0
- data/vendor/prawn-core/examples/example_helper.rb +3 -0
- data/vendor/prawn-core/examples/general/background.rb +23 -0
- data/vendor/prawn-core/examples/general/canvas.rb +15 -0
- data/vendor/prawn-core/examples/general/margin.rb +36 -0
- data/vendor/prawn-core/examples/general/measurement_units.rb +51 -0
- data/vendor/prawn-core/examples/general/metadata-info.rb +16 -0
- data/vendor/prawn-core/examples/general/multi_page_layout.rb +18 -0
- data/vendor/prawn-core/examples/general/page_geometry.rb +31 -0
- data/vendor/prawn-core/examples/general/page_numbering.rb +15 -0
- data/vendor/prawn-core/examples/general/stamp.rb +45 -0
- data/vendor/prawn-core/examples/graphics/basic_images.rb +23 -0
- data/vendor/prawn-core/examples/graphics/cmyk.rb +12 -0
- data/vendor/prawn-core/examples/graphics/curves.rb +11 -0
- data/vendor/prawn-core/examples/graphics/hexagon.rb +13 -0
- data/vendor/prawn-core/examples/graphics/image_fit.rb +15 -0
- data/vendor/prawn-core/examples/graphics/image_flow.rb +37 -0
- data/vendor/prawn-core/examples/graphics/image_position.rb +17 -0
- data/vendor/prawn-core/examples/graphics/line.rb +32 -0
- data/vendor/prawn-core/examples/graphics/png_types.rb +22 -0
- data/vendor/prawn-core/examples/graphics/polygons.rb +16 -0
- data/vendor/prawn-core/examples/graphics/remote_images.rb +12 -0
- data/vendor/prawn-core/examples/graphics/ruport_style_helpers.rb +19 -0
- data/vendor/prawn-core/examples/graphics/stroke_bounds.rb +20 -0
- data/vendor/prawn-core/examples/graphics/stroke_cap_and_join.rb +45 -0
- data/vendor/prawn-core/examples/graphics/stroke_dash.rb +42 -0
- data/vendor/prawn-core/examples/graphics/transparency.rb +26 -0
- data/vendor/prawn-core/examples/m17n/chinese_text_wrapping.rb +19 -0
- data/vendor/prawn-core/examples/m17n/euro.rb +15 -0
- data/vendor/prawn-core/examples/m17n/sjis.rb +28 -0
- data/vendor/prawn-core/examples/m17n/utf8.rb +13 -0
- data/vendor/prawn-core/examples/m17n/win_ansi_charset.rb +54 -0
- data/vendor/prawn-core/examples/text/alignment.rb +18 -0
- data/vendor/prawn-core/examples/text/dfont.rb +48 -0
- data/vendor/prawn-core/examples/text/family_based_styling.rb +24 -0
- data/vendor/prawn-core/examples/text/font_calculations.rb +91 -0
- data/vendor/prawn-core/examples/text/font_size.rb +33 -0
- data/vendor/prawn-core/examples/text/kerning.rb +30 -0
- data/vendor/prawn-core/examples/text/simple_text.rb +17 -0
- data/vendor/prawn-core/examples/text/simple_text_ttf.rb +17 -0
- data/vendor/prawn-core/examples/text/span.rb +29 -0
- data/vendor/prawn-core/examples/text/text_box.rb +25 -0
- data/vendor/prawn-core/examples/text/text_box_returning_excess.rb +51 -0
- data/vendor/prawn-core/examples/text/text_flow.rb +67 -0
- data/vendor/prawn-core/lib/prawn/byte_string.rb +7 -0
- data/vendor/prawn-core/lib/prawn/compatibility.rb +38 -0
- data/vendor/prawn-core/lib/prawn/core.rb +85 -0
- data/vendor/prawn-core/lib/prawn/document.rb +534 -0
- data/vendor/prawn-core/lib/prawn/document/annotations.rb +65 -0
- data/vendor/prawn-core/lib/prawn/document/bounding_box.rb +390 -0
- data/vendor/prawn-core/lib/prawn/document/column_box.rb +102 -0
- data/vendor/prawn-core/lib/prawn/document/destinations.rb +92 -0
- data/vendor/prawn-core/lib/prawn/document/internals.rb +180 -0
- data/vendor/prawn-core/lib/prawn/document/page_geometry.rb +153 -0
- data/vendor/prawn-core/lib/prawn/document/snapshot.rb +71 -0
- data/vendor/prawn-core/lib/prawn/document/span.rb +55 -0
- data/vendor/prawn-core/lib/prawn/document/text.rb +184 -0
- data/vendor/prawn-core/lib/prawn/document/text/box.rb +90 -0
- data/vendor/prawn-core/lib/prawn/document/text/wrapping.rb +62 -0
- data/vendor/prawn-core/lib/prawn/encoding.rb +121 -0
- data/vendor/prawn-core/lib/prawn/errors.rb +61 -0
- data/vendor/prawn-core/lib/prawn/font.rb +297 -0
- data/vendor/prawn-core/lib/prawn/font/afm.rb +202 -0
- data/vendor/prawn-core/lib/prawn/font/dfont.rb +34 -0
- data/vendor/prawn-core/lib/prawn/font/ttf.rb +329 -0
- data/vendor/prawn-core/lib/prawn/graphics.rb +264 -0
- data/vendor/prawn-core/lib/prawn/graphics/cap_style.rb +35 -0
- data/vendor/prawn-core/lib/prawn/graphics/color.rb +141 -0
- data/vendor/prawn-core/lib/prawn/graphics/dash.rb +69 -0
- data/vendor/prawn-core/lib/prawn/graphics/join_style.rb +35 -0
- data/vendor/prawn-core/lib/prawn/graphics/transparency.rb +56 -0
- data/vendor/prawn-core/lib/prawn/images.rb +339 -0
- data/vendor/prawn-core/lib/prawn/images/jpg.rb +46 -0
- data/vendor/prawn-core/lib/prawn/images/png.rb +219 -0
- data/vendor/prawn-core/lib/prawn/literal_string.rb +14 -0
- data/vendor/prawn-core/lib/prawn/measurement_extensions.rb +46 -0
- data/vendor/prawn-core/lib/prawn/measurements.rb +71 -0
- data/vendor/prawn-core/lib/prawn/name_tree.rb +166 -0
- data/vendor/prawn-core/lib/prawn/object_store.rb +63 -0
- data/vendor/prawn-core/lib/prawn/pdf_object.rb +81 -0
- data/vendor/prawn-core/lib/prawn/reference.rb +72 -0
- data/vendor/prawn-core/lib/prawn/stamp.rb +87 -0
- data/vendor/prawn-core/meta/Rakefile +62 -0
- data/vendor/prawn-core/meta/lib/prawn.rb +2 -0
- data/vendor/prawn-core/reference_pdfs/alignment.pdf +229 -0
- 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 +128 -0
- data/vendor/prawn-core/reference_pdfs/canvas.pdf +78 -0
- 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 +3671 -0
- data/vendor/prawn-core/reference_pdfs/curves.pdf +62 -0
- data/vendor/prawn-core/reference_pdfs/dfont.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/euro.pdf +75 -0
- data/vendor/prawn-core/reference_pdfs/family_style.pdf +286 -0
- data/vendor/prawn-core/reference_pdfs/flow.pdf +964 -0
- data/vendor/prawn-core/reference_pdfs/font_calculations.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/font_size.pdf +142 -0
- data/vendor/prawn-core/reference_pdfs/hexagon.pdf +61 -0
- 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 +124 -0
- data/vendor/prawn-core/reference_pdfs/kerning.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/landscape_a4.pdf +52 -0
- data/vendor/prawn-core/reference_pdfs/landscape_legal.pdf +52 -0
- data/vendor/prawn-core/reference_pdfs/landscape_letter.pdf +52 -0
- data/vendor/prawn-core/reference_pdfs/lines.pdf +116 -0
- data/vendor/prawn-core/reference_pdfs/margin.pdf +3850 -0
- data/vendor/prawn-core/reference_pdfs/measurement_units.pdf +4667 -0
- data/vendor/prawn-core/reference_pdfs/metadata-info.pdf +88 -0
- data/vendor/prawn-core/reference_pdfs/multi-layout.pdf +209 -0
- data/vendor/prawn-core/reference_pdfs/page_with_numbering.pdf +156 -0
- data/vendor/prawn-core/reference_pdfs/png_types.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/portrait_a4.pdf +52 -0
- data/vendor/prawn-core/reference_pdfs/portrait_legal.pdf +52 -0
- data/vendor/prawn-core/reference_pdfs/portrait_letter.pdf +52 -0
- data/vendor/prawn-core/reference_pdfs/pretty_polygons.pdf +122 -0
- data/vendor/prawn-core/reference_pdfs/remote_images.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/ruport.pdf +101 -0
- data/vendor/prawn-core/reference_pdfs/russian_boxes.pdf +2780 -0
- data/vendor/prawn-core/reference_pdfs/simple_text.pdf +136 -0
- 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 +1975 -0
- data/vendor/prawn-core/reference_pdfs/stamp.pdf +696 -0
- data/vendor/prawn-core/reference_pdfs/stretched_nesting.pdf +200 -0
- data/vendor/prawn-core/reference_pdfs/stroke_bounds.pdf +135 -0
- data/vendor/prawn-core/reference_pdfs/stroke_cap_and_join.pdf +80 -0
- data/vendor/prawn-core/reference_pdfs/stroke_dash.pdf +457 -0
- data/vendor/prawn-core/reference_pdfs/text_box.pdf +315 -0
- data/vendor/prawn-core/reference_pdfs/text_box_returning_excess.pdf +271 -0
- data/vendor/prawn-core/reference_pdfs/transparency.pdf +347 -0
- data/vendor/prawn-core/reference_pdfs/utf8.pdf +0 -0
- data/vendor/prawn-core/reference_pdfs/win-ansi.pdf +6172 -0
- data/vendor/prawn-core/spec/annotations_spec.rb +90 -0
- data/vendor/prawn-core/spec/bounding_box_spec.rb +185 -0
- data/vendor/prawn-core/spec/destinations_spec.rb +15 -0
- data/vendor/prawn-core/spec/document_spec.rb +231 -0
- data/vendor/prawn-core/spec/font_spec.rb +273 -0
- data/vendor/prawn-core/spec/graphics_spec.rb +209 -0
- data/vendor/prawn-core/spec/images_spec.rb +79 -0
- data/vendor/prawn-core/spec/jpg_spec.rb +25 -0
- data/vendor/prawn-core/spec/measurement_units_spec.rb +23 -0
- data/vendor/prawn-core/spec/name_tree_spec.rb +112 -0
- data/vendor/prawn-core/spec/object_store_spec.rb +42 -0
- data/vendor/prawn-core/spec/pdf_object_spec.rb +122 -0
- data/vendor/prawn-core/spec/png_spec.rb +236 -0
- data/vendor/prawn-core/spec/reference_spec.rb +82 -0
- data/vendor/prawn-core/spec/snapshot_spec.rb +115 -0
- data/vendor/prawn-core/spec/span_spec.rb +45 -0
- data/vendor/prawn-core/spec/spec_helper.rb +20 -0
- data/vendor/prawn-core/spec/stamp_spec.rb +98 -0
- data/vendor/prawn-core/spec/stroke_styles_spec.rb +152 -0
- data/vendor/prawn-core/spec/text_box_spec.rb +109 -0
- data/vendor/prawn-core/spec/text_spec.rb +185 -0
- data/vendor/prawn-core/spec/transparency_spec.rb +61 -0
- data/vendor/prawn-core/vendor/pdf-inspector/README +18 -0
- data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector.rb +26 -0
- data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/extgstate.rb +18 -0
- data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/graphics.rb +119 -0
- data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/page.rb +25 -0
- data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/text.rb +31 -0
- data/vendor/prawn-core/vendor/pdf-inspector/lib/pdf/inspector/xobject.rb +19 -0
- 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 +45 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk.rb +102 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/directory.rb +17 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/encoding/mac_roman.rb +88 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/encoding/windows_1252.rb +69 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/reader.rb +44 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/resource_file.rb +78 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset.rb +18 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/base.rb +141 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/mac_roman.rb +46 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/unicode.rb +48 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/unicode_8bit.rb +63 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset/windows_1252.rb +51 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/subset_collection.rb +72 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table.rb +46 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap.rb +34 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/format00.rb +54 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/format04.rb +126 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/cmap/subtable.rb +79 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf.rb +64 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf/compound.rb +81 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/glyf/simple.rb +37 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/head.rb +44 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/hhea.rb +41 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/hmtx.rb +47 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/kern.rb +79 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/kern/format0.rb +62 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/loca.rb +43 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/maxp.rb +40 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/name.rb +119 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/os2.rb +78 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post.rb +91 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format10.rb +43 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format20.rb +35 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format25.rb +23 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format30.rb +17 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/post/format40.rb +17 -0
- data/vendor/prawn-core/vendor/ttfunk/lib/ttfunk/table/simple.rb +14 -0
- data/vendor/prawn-core/www/index.html +196 -0
- data/vendor/prawn-core/www/media/bounding_boxes.pdf +146 -0
- 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 +350 -0
- 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 +113 -0
- data/vendor/prawn-core/www/prawn.css +86 -0
- data/vendor/prawn-core/www/twilight.css +266 -0
- metadata +291 -3
data/Rakefile
CHANGED
data/examples/example_helper.rb
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__),
|
|
2
|
+
%w[.. vendor prawn-core lib]))
|
|
1
3
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
|
4
|
+
|
|
2
5
|
require "rubygems"
|
|
3
|
-
|
|
6
|
+
|
|
7
|
+
require "prawn/core"
|
|
4
8
|
require "prawn/layout"
|
|
5
9
|
|
|
6
10
|
Prawn.debug = true
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require "#{File.dirname(__FILE__)}/../example_helper.rb"
|
|
4
|
+
|
|
5
|
+
Prawn::Document.generate('bounding_box_grid.pdf') do |p|
|
|
6
|
+
p.define_grid(:columns => 5, :rows => 8, :gutter => 10)
|
|
7
|
+
|
|
8
|
+
p.stroke_color = "ff0000"
|
|
9
|
+
|
|
10
|
+
p.grid.rows.times do |i|
|
|
11
|
+
p.grid.columns.times do |j|
|
|
12
|
+
p.grid(i,j).bounding_box do
|
|
13
|
+
p.text p.grid(i,j).name
|
|
14
|
+
p.stroke do
|
|
15
|
+
p.rectangle(p.bounds.top_left, p.bounds.width, p.bounds.height)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require "#{File.dirname(__FILE__)}/../example_helper.rb"
|
|
4
|
+
|
|
5
|
+
Prawn::Document.generate('column_gutter_grid.pdf') do |p|
|
|
6
|
+
p.define_grid(:columns => 3, :rows => 10, :column_gutter => 10)
|
|
7
|
+
|
|
8
|
+
p.grid.rows.times do |i|
|
|
9
|
+
p.grid.columns.times do |j|
|
|
10
|
+
b = p.grid(i,j)
|
|
11
|
+
p.bounding_box b.top_left, :width => b.width, :height => b.height do
|
|
12
|
+
p.text b.name
|
|
13
|
+
p.stroke do
|
|
14
|
+
p.rectangle(p.bounds.top_left, b.width, b.height)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require "#{File.dirname(__FILE__)}/../example_helper.rb"
|
|
4
|
+
|
|
5
|
+
Prawn::Document.generate('multi_boxes.pdf') do |p|
|
|
6
|
+
p.define_grid(:columns => 5, :rows => 8, :gutter => 10)
|
|
7
|
+
|
|
8
|
+
p.grid.rows.times do |i|
|
|
9
|
+
p.grid.columns.times do |j|
|
|
10
|
+
p.grid(i,j).bounding_box do
|
|
11
|
+
p.text p.grid(i,j).name
|
|
12
|
+
p.stroke_color = "cccccc"
|
|
13
|
+
p.stroke do
|
|
14
|
+
p.rectangle(p.bounds.top_left, p.bounds.width, p.bounds.height)
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
g = p.grid([0,0], [1,1])
|
|
21
|
+
g.bounding_box do
|
|
22
|
+
p.move_down 12
|
|
23
|
+
p.text g.name
|
|
24
|
+
p.stroke_color = "333333"
|
|
25
|
+
p.stroke do
|
|
26
|
+
p.rectangle(p.bounds.top_left, p.bounds.width, p.bounds.height)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
g = p.grid([3,0], [3,3])
|
|
31
|
+
g.bounding_box do
|
|
32
|
+
p.move_down 12
|
|
33
|
+
p.text g.name
|
|
34
|
+
p.stroke_color = "333333"
|
|
35
|
+
p.stroke do
|
|
36
|
+
p.rectangle(p.bounds.top_left, p.bounds.width, p.bounds.height)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
g = p.grid([4,0], [5,1])
|
|
41
|
+
g.bounding_box do
|
|
42
|
+
p.move_down 12
|
|
43
|
+
p.text g.name
|
|
44
|
+
p.stroke_color = "333333"
|
|
45
|
+
p.stroke do
|
|
46
|
+
p.rectangle(p.bounds.top_left, p.bounds.width, p.bounds.height)
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
|
|
3
|
+
require "#{File.dirname(__FILE__)}/../example_helper.rb"
|
|
4
|
+
|
|
5
|
+
Prawn::Document.generate('show_grid.pdf') do |p|
|
|
6
|
+
p.define_grid(:columns => 5, :rows => 8, :gutter => 10)
|
|
7
|
+
|
|
8
|
+
p.grid.show_all
|
|
9
|
+
|
|
10
|
+
p.grid(2,4).show("FF0000")
|
|
11
|
+
p.grid([3,0], [5,3]).show("0000FF")
|
|
12
|
+
end
|
|
13
|
+
|
data/lib/prawn/layout.rb
CHANGED
data/lib/prawn/layout/grid.rb
CHANGED
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
module Prawn
|
|
2
2
|
class Document
|
|
3
|
-
|
|
4
|
-
#
|
|
3
|
+
|
|
4
|
+
# Defines the grid system for a particular document. Takes the number of
|
|
5
|
+
# rows and columns and the width to use for the gutter as the
|
|
6
|
+
# keys :rows, :columns, :gutter
|
|
5
7
|
#
|
|
6
8
|
def define_grid(options = {})
|
|
7
9
|
@grid = Grid.new(self, options)
|
|
8
10
|
end
|
|
9
11
|
|
|
10
|
-
# A method that can either be used to access a particular grid on the page
|
|
11
|
-
# system directly.
|
|
12
|
+
# A method that can either be used to access a particular grid on the page
|
|
13
|
+
# or work with the grid system directly.
|
|
12
14
|
#
|
|
13
15
|
# @pdf.grid # Get the Grid directly
|
|
14
16
|
# @pdf.grid([0,1]) # Get the box at [0,1]
|
|
15
17
|
# @pdf.grid([0,1], [1,2]) # Get a multi-box spanning from [0,1] to [1,2]
|
|
18
|
+
#
|
|
16
19
|
def grid(*args)
|
|
17
20
|
@boxes ||= {}
|
|
18
21
|
@boxes[args] ||= if args.empty?
|
|
@@ -28,28 +31,29 @@ module Prawn
|
|
|
28
31
|
end
|
|
29
32
|
end
|
|
30
33
|
|
|
31
|
-
# A Grid represents the entire grid system of a Page and calculates
|
|
32
|
-
# of the base box.
|
|
34
|
+
# A Grid represents the entire grid system of a Page and calculates
|
|
35
|
+
# the column width and row height of the base box.
|
|
33
36
|
class Grid
|
|
34
|
-
attr_reader :pdf, :columns, :rows, :gutter
|
|
37
|
+
attr_reader :pdf, :columns, :rows, :gutter, :row_gutter, :column_gutter
|
|
35
38
|
# :nodoc
|
|
36
39
|
def initialize(pdf, options = {})
|
|
37
|
-
|
|
40
|
+
valid_options = [:columns, :rows, :gutter, :row_gutter, :column_gutter]
|
|
41
|
+
Prawn.verify_options valid_options, options
|
|
38
42
|
|
|
39
43
|
@pdf = pdf
|
|
40
44
|
@columns = options[:columns]
|
|
41
45
|
@rows = options[:rows]
|
|
42
|
-
|
|
46
|
+
set_gutter(options)
|
|
43
47
|
end
|
|
44
48
|
|
|
45
49
|
# Calculates the base width of boxes.
|
|
46
50
|
def column_width
|
|
47
|
-
@column_width ||= subdivide(pdf.bounds.width, columns)
|
|
51
|
+
@column_width ||= subdivide(pdf.bounds.width, columns, column_gutter)
|
|
48
52
|
end
|
|
49
53
|
|
|
50
54
|
# Calculates the base height of boxes.
|
|
51
55
|
def row_height
|
|
52
|
-
@row_height ||= subdivide(pdf.bounds.height, rows)
|
|
56
|
+
@row_height ||= subdivide(pdf.bounds.height, rows, row_gutter)
|
|
53
57
|
end
|
|
54
58
|
|
|
55
59
|
# Diagnostic tool to show all of the grids. Defaults to gray.
|
|
@@ -62,14 +66,26 @@ module Prawn
|
|
|
62
66
|
end
|
|
63
67
|
|
|
64
68
|
private
|
|
65
|
-
|
|
69
|
+
|
|
70
|
+
def subdivide(total, num, gutter)
|
|
66
71
|
(total.to_f - (gutter * (num - 1).to_f)) / num.to_f
|
|
67
72
|
end
|
|
73
|
+
|
|
74
|
+
def set_gutter(options)
|
|
75
|
+
if options.has_key?(:gutter)
|
|
76
|
+
@gutter = options[:gutter].to_f
|
|
77
|
+
@row_gutter, @column_gutter = @gutter, @gutter
|
|
78
|
+
else
|
|
79
|
+
@row_gutter = options[:row_gutter].to_f
|
|
80
|
+
@column_gutter = options[:column_gutter].to_f
|
|
81
|
+
@gutter = 0
|
|
82
|
+
end
|
|
83
|
+
end
|
|
68
84
|
end
|
|
69
85
|
|
|
70
|
-
# A Box is a class that represents a bounded area of a page.
|
|
71
|
-
#
|
|
72
|
-
#
|
|
86
|
+
# A Box is a class that represents a bounded area of a page.
|
|
87
|
+
# A Grid object has methods that allow easy access to the coordinates of
|
|
88
|
+
# its corners, which can be plugged into most existing prawnmethods.
|
|
73
89
|
#
|
|
74
90
|
class Box
|
|
75
91
|
attr_reader :pdf
|
|
@@ -80,7 +96,9 @@ module Prawn
|
|
|
80
96
|
@j = j
|
|
81
97
|
end
|
|
82
98
|
|
|
83
|
-
# Mostly diagnostic method that outputs the name of a box as
|
|
99
|
+
# Mostly diagnostic method that outputs the name of a box as
|
|
100
|
+
# col_num, row_num
|
|
101
|
+
#
|
|
84
102
|
def name
|
|
85
103
|
"#{@i.to_s},#{@j.to_s}"
|
|
86
104
|
end
|
|
@@ -107,7 +125,7 @@ module Prawn
|
|
|
107
125
|
|
|
108
126
|
# x-coordinate of left side
|
|
109
127
|
def left
|
|
110
|
-
@left ||= (width +
|
|
128
|
+
@left ||= (width + grid.column_gutter) * @j.to_f
|
|
111
129
|
end
|
|
112
130
|
|
|
113
131
|
# x-coordinate of right side
|
|
@@ -117,7 +135,7 @@ module Prawn
|
|
|
117
135
|
|
|
118
136
|
# y-coordinate of the top
|
|
119
137
|
def top
|
|
120
|
-
@top ||= total_height - ((height +
|
|
138
|
+
@top ||= total_height - ((height + grid.row_gutter) * @i.to_f)
|
|
121
139
|
end
|
|
122
140
|
|
|
123
141
|
# y-coordinate of the bottom
|
data/lib/prawn/table.rb
CHANGED
|
@@ -45,7 +45,8 @@ module Prawn
|
|
|
45
45
|
def table(data, options={})
|
|
46
46
|
if data.nil? || data.empty?
|
|
47
47
|
raise Prawn::Errors::EmptyTable,
|
|
48
|
-
"data must be a non-empty, non-nil, two dimensional array
|
|
48
|
+
"data must be a non-empty, non-nil, two dimensional array " +
|
|
49
|
+
"of Prawn::Cells or strings"
|
|
49
50
|
end
|
|
50
51
|
Prawn::Table.new(data,self,options).draw
|
|
51
52
|
end
|
|
@@ -103,15 +104,17 @@ module Prawn
|
|
|
103
104
|
# <tt>:border_style</tt>:: If set to :grid, fills in all borders. If set to :underline_header, underline header only. Otherwise, borders are drawn on columns only, not rows
|
|
104
105
|
# <tt>:border_color</tt>:: Sets the color of the borders.
|
|
105
106
|
# <tt>:position</tt>:: One of <tt>:left</tt>, <tt>:center</tt> or <tt>n</tt>, where <tt>n</tt> is an x-offset from the left edge of the current bounding box
|
|
106
|
-
# <tt>:width
|
|
107
|
-
# <tt>:column_widths
|
|
108
|
-
# <tt>:row_colors</tt>::
|
|
107
|
+
# <tt>:width</tt>:: A set width for the table, defaults to the sum of all column widths
|
|
108
|
+
# <tt>:column_widths</tt>:: A hash of indices and widths in PDF points. E.g. <tt>{ 0 => 50, 1 => 100 }</tt>
|
|
109
|
+
# <tt>:row_colors</tt>:: Used to specify background colors for rows. See below for usage.
|
|
109
110
|
# <tt>:align</tt>:: Alignment of text in columns, for entire table (<tt>:center</tt>) or by column (<tt>{ 0 => :left, 1 => :center}</tt>)
|
|
110
111
|
#
|
|
111
|
-
# Row colors are specified as
|
|
112
|
-
#
|
|
113
|
-
#
|
|
114
|
-
#
|
|
112
|
+
# Row colors (<tt>:row_colors</tt>) are specified as HTML hex color values,
|
|
113
|
+
# e.g., "ccaaff". They can take several forms:
|
|
114
|
+
#
|
|
115
|
+
# * An array of colors, used cyclically to "zebra stripe" the table: <tt>['ffffff', 'cccccc', '336699']</tt>.
|
|
116
|
+
# * A hash taking 0-based row numbers to colors: <tt>{ 0 => 'ffffff', 2 => 'cccccc'}</tt>.
|
|
117
|
+
# * The symbol <tt>:pdf_writer</tt>, for PDF::Writer's default color scheme.
|
|
115
118
|
#
|
|
116
119
|
# See Document#table for typical usage, as directly using this class is
|
|
117
120
|
# not recommended unless you know why you want to do it.
|
|
@@ -252,6 +255,13 @@ module Prawn
|
|
|
252
255
|
renderable_data.each_with_index do |row,index|
|
|
253
256
|
c = Prawn::Table::CellBlock.new(@document)
|
|
254
257
|
|
|
258
|
+
if C(:row_colors).is_a?(Hash)
|
|
259
|
+
real_index = index
|
|
260
|
+
real_index -= 1 if C(:headers)
|
|
261
|
+
color = C(:row_colors)[real_index]
|
|
262
|
+
c.background_color = color if color
|
|
263
|
+
end
|
|
264
|
+
|
|
255
265
|
col_index = 0
|
|
256
266
|
row.each do |e|
|
|
257
267
|
case C(:align)
|
|
@@ -379,6 +389,8 @@ module Prawn
|
|
|
379
389
|
|
|
380
390
|
|
|
381
391
|
def next_row_color
|
|
392
|
+
return if C(:row_colors).is_a?(Hash)
|
|
393
|
+
|
|
382
394
|
color = C(:row_colors).shift
|
|
383
395
|
C(:row_colors).push(color)
|
|
384
396
|
color
|
data/lib/prawn/table/cell.rb
CHANGED
|
@@ -76,6 +76,7 @@ module Prawn
|
|
|
76
76
|
if options[:padding]
|
|
77
77
|
@horizontal_padding = @vertical_padding = options[:padding]
|
|
78
78
|
end
|
|
79
|
+
|
|
79
80
|
end
|
|
80
81
|
|
|
81
82
|
attr_accessor :point, :border_style, :border_width, :background_color,
|
|
@@ -125,16 +126,14 @@ module Prawn
|
|
|
125
126
|
# Draws the cell onto the PDF document
|
|
126
127
|
#
|
|
127
128
|
def draw
|
|
128
|
-
|
|
129
|
+
margin = @border_width / 2.0
|
|
129
130
|
|
|
130
131
|
if @background_color
|
|
131
132
|
@document.mask(:fill_color) do
|
|
132
133
|
@document.fill_color @background_color
|
|
133
134
|
h = borders.include?(:bottom) ?
|
|
134
|
-
height -
|
|
135
|
-
@document.fill_rectangle [
|
|
136
|
-
rel_point[1] - border_width / 2.0 ],
|
|
137
|
-
width - border_width, h
|
|
135
|
+
height - ( 2 * margin ) : height + margin
|
|
136
|
+
@document.fill_rectangle [x, y ], width, h
|
|
138
137
|
end
|
|
139
138
|
end
|
|
140
139
|
|
|
@@ -146,25 +145,25 @@ module Prawn
|
|
|
146
145
|
@document.stroke_color @border_color if @border_color
|
|
147
146
|
|
|
148
147
|
if borders.include?(:left)
|
|
149
|
-
@document.stroke_line [
|
|
150
|
-
[
|
|
148
|
+
@document.stroke_line [x, y + margin],
|
|
149
|
+
[x, y - height - margin ]
|
|
151
150
|
end
|
|
152
151
|
|
|
153
152
|
if borders.include?(:right)
|
|
154
153
|
@document.stroke_line(
|
|
155
|
-
[
|
|
156
|
-
[
|
|
154
|
+
[x + width, y + margin],
|
|
155
|
+
[x + width, y - height - margin] )
|
|
157
156
|
end
|
|
158
157
|
|
|
159
158
|
if borders.include?(:top)
|
|
160
159
|
@document.stroke_line(
|
|
161
|
-
[
|
|
162
|
-
[
|
|
160
|
+
[ x, y ],
|
|
161
|
+
[ x + width, y ])
|
|
163
162
|
end
|
|
164
163
|
|
|
165
164
|
if borders.include?(:bottom)
|
|
166
|
-
@document.stroke_line [
|
|
167
|
-
[
|
|
165
|
+
@document.stroke_line [x, y - height ],
|
|
166
|
+
[x + width, y - height]
|
|
168
167
|
end
|
|
169
168
|
end
|
|
170
169
|
|
|
@@ -174,8 +173,8 @@ module Prawn
|
|
|
174
173
|
|
|
175
174
|
end
|
|
176
175
|
|
|
177
|
-
@document.bounding_box( [
|
|
178
|
-
|
|
176
|
+
@document.bounding_box( [x + @horizontal_padding,
|
|
177
|
+
y - @vertical_padding],
|
|
179
178
|
:width => text_area_width,
|
|
180
179
|
:height => height - @vertical_padding) do
|
|
181
180
|
@document.move_down((@document.font.line_gap - @document.font.descender)/2)
|
|
@@ -193,6 +192,16 @@ module Prawn
|
|
|
193
192
|
end
|
|
194
193
|
|
|
195
194
|
private
|
|
195
|
+
|
|
196
|
+
# x-position of the cell
|
|
197
|
+
def x
|
|
198
|
+
@point[0]
|
|
199
|
+
end
|
|
200
|
+
|
|
201
|
+
# y-position of the cell
|
|
202
|
+
def y
|
|
203
|
+
@point[1]
|
|
204
|
+
end
|
|
196
205
|
|
|
197
206
|
def borders
|
|
198
207
|
@borders ||= case @border_style
|
data/spec/spec_helper.rb
CHANGED
|
@@ -7,7 +7,8 @@ require "test/spec"
|
|
|
7
7
|
require "mocha"
|
|
8
8
|
$LOAD_PATH.unshift File.join(File.dirname(__FILE__), '..', 'lib')
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
$LOAD_PATH << File.join(File.dirname(__FILE__), %w[.. vendor prawn-core lib])
|
|
11
|
+
require "prawn/core"
|
|
11
12
|
require "prawn/layout"
|
|
12
13
|
$LOAD_PATH << File.join(Prawn::BASEDIR, 'vendor','pdf-inspector','lib')
|
|
13
14
|
|
data/spec/table_spec.rb
CHANGED
|
@@ -254,7 +254,39 @@ describe "A table's content" do
|
|
|
254
254
|
table = Prawn::Table.new data, pdf
|
|
255
255
|
table.column_widths.length.should == 6
|
|
256
256
|
end
|
|
257
|
+
|
|
258
|
+
it "should allow array syntax for :row_colors" do
|
|
259
|
+
data = [["foo"], ["bar"], ['baz']]
|
|
260
|
+
pdf = Prawn::Document.new
|
|
261
|
+
|
|
262
|
+
# fill_color() is used to retrieve fill color; ignore it
|
|
263
|
+
pdf.stubs(:fill_color)
|
|
264
|
+
|
|
265
|
+
# Verify that fill_color is called in proper sequence for row colors.
|
|
266
|
+
seq = sequence('row_colors')
|
|
267
|
+
%w[cccccc ffffff cccccc].each do |color|
|
|
268
|
+
pdf.expects(:fill_color).with(color).in_sequence(seq)
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
pdf.table(data, :row_colors => ['cccccc', 'ffffff'])
|
|
272
|
+
end
|
|
257
273
|
|
|
274
|
+
it "should allow hash syntax for :row_colors" do
|
|
275
|
+
data = [["foo"], ["bar"], ['baz']]
|
|
276
|
+
pdf = Prawn::Document.new
|
|
277
|
+
|
|
278
|
+
# fill_color() is used to retrieve fill color; ignore it
|
|
279
|
+
pdf.stubs(:fill_color)
|
|
280
|
+
|
|
281
|
+
# Verify that fill_color is called in proper sequence for row colors.
|
|
282
|
+
seq = sequence('row_colors')
|
|
283
|
+
%w[cccccc dddddd eeeeee].each do |color|
|
|
284
|
+
pdf.expects(:fill_color).with(color).in_sequence(seq)
|
|
285
|
+
end
|
|
286
|
+
|
|
287
|
+
pdf.table(data, :row_colors => {0 => 'cccccc', 1 => 'dddddd',
|
|
288
|
+
2 => 'eeeeee'})
|
|
289
|
+
end
|
|
258
290
|
end
|
|
259
291
|
|
|
260
292
|
describe "An invalid table" do
|