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,102 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# column_box.rb: Extends BoundingBox to allow for columns of text
|
4
|
-
#
|
5
|
-
# Author Paul Ostazeski.
|
6
|
-
|
7
|
-
require "prawn/document/bounding_box"
|
8
|
-
|
9
|
-
module Prawn
|
10
|
-
class Document
|
11
|
-
|
12
|
-
# A column box is a bounding box with the additional property that when
|
13
|
-
# text flows past the bottom, it will wrap first to another column on the
|
14
|
-
# same page, and only flow to the next page when all the columns are
|
15
|
-
# filled.
|
16
|
-
#
|
17
|
-
# column_box accepts the same parameters as bounding_box, as well as the
|
18
|
-
# number of :columns and a :spacer (in points) between columns.
|
19
|
-
#
|
20
|
-
# Defaults are :columns = 3 and :spacer = font_size
|
21
|
-
#
|
22
|
-
# Under PDF::Writer, "spacer" was known as "gutter"
|
23
|
-
def column_box(*args, &block)
|
24
|
-
init_column_box(block) do |_|
|
25
|
-
translate!(args[0])
|
26
|
-
@bounding_box = ColumnBox.new(self, *args)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
private
|
31
|
-
|
32
|
-
def init_column_box(user_block, options={}, &init_block)
|
33
|
-
parent_box = @bounding_box
|
34
|
-
|
35
|
-
init_block.call(parent_box)
|
36
|
-
|
37
|
-
self.y = @bounding_box.absolute_top
|
38
|
-
user_block.call
|
39
|
-
self.y = @bounding_box.absolute_bottom unless options[:hold_position]
|
40
|
-
|
41
|
-
@bounding_box = parent_box
|
42
|
-
end
|
43
|
-
|
44
|
-
# Template methods to support ColumnBox extensions
|
45
|
-
class BoundingBox
|
46
|
-
def left_side
|
47
|
-
absolute_left
|
48
|
-
end
|
49
|
-
|
50
|
-
def right_side
|
51
|
-
absolute_right
|
52
|
-
end
|
53
|
-
|
54
|
-
def move_past_bottom
|
55
|
-
@parent.start_new_page
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
class ColumnBox < BoundingBox
|
60
|
-
|
61
|
-
def initialize(parent, point, options={})
|
62
|
-
super
|
63
|
-
@columns = options[:columns] || 3
|
64
|
-
@spacer = options[:spacer] || @parent.font_size
|
65
|
-
@current_column = 0
|
66
|
-
end
|
67
|
-
|
68
|
-
# The column width, not the width of the whole box. Used to calculate
|
69
|
-
# how long a line of text can be.
|
70
|
-
#
|
71
|
-
def width
|
72
|
-
super / @columns - @spacer
|
73
|
-
end
|
74
|
-
|
75
|
-
def width_of_column
|
76
|
-
width + @spacer
|
77
|
-
end
|
78
|
-
|
79
|
-
# x coordinate of the left edge of the current column
|
80
|
-
#
|
81
|
-
def left_side
|
82
|
-
absolute_left + (width_of_column * @current_column)
|
83
|
-
end
|
84
|
-
|
85
|
-
# x co-orordinate of the right edge of the current column
|
86
|
-
#
|
87
|
-
def right_side
|
88
|
-
columns_from_right = @columns - (1 + @current_column)
|
89
|
-
absolute_right - (width_of_column * columns_from_right)
|
90
|
-
end
|
91
|
-
|
92
|
-
def move_past_bottom #:nodoc:
|
93
|
-
@current_column = (@current_column + 1) % @columns
|
94
|
-
@parent.y = @y
|
95
|
-
if 0 == @current_column
|
96
|
-
@parent.start_new_page
|
97
|
-
end
|
98
|
-
end
|
99
|
-
|
100
|
-
end
|
101
|
-
end
|
102
|
-
end
|
@@ -1,92 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
# annotations.rb : Implements destination support for PDF
|
4
|
-
#
|
5
|
-
# Copyright November 2008, Jamis Buck. All Rights Reserved.
|
6
|
-
#
|
7
|
-
# This is free software. Please see the LICENSE and COPYING files for details.
|
8
|
-
#
|
9
|
-
require 'prawn/name_tree'
|
10
|
-
|
11
|
-
module Prawn
|
12
|
-
class Document
|
13
|
-
module Destinations
|
14
|
-
|
15
|
-
# The maximum number of children to fit into a single node in the Dests tree.
|
16
|
-
NAME_TREE_CHILDREN_LIMIT = 20 #:nodoc:
|
17
|
-
|
18
|
-
# The Dests name tree in the Name dictionary (see Prawn::Document::Internal#names).
|
19
|
-
# This name tree is used to store named destinations (PDF spec 8.2.1).
|
20
|
-
# (For more on name trees, see section 3.8.4 in the PDF spec.)
|
21
|
-
#
|
22
|
-
def dests
|
23
|
-
names.data[:Dests] ||= ref!(Prawn::NameTree::Node.new(self, NAME_TREE_CHILDREN_LIMIT))
|
24
|
-
end
|
25
|
-
|
26
|
-
# Adds a new destination to the dests name tree (see #dests). The
|
27
|
-
# +reference+ parameter will be converted into a Prawn::Reference if
|
28
|
-
# it is not already one.
|
29
|
-
#
|
30
|
-
def add_dest(name, reference)
|
31
|
-
reference = ref!(reference) unless reference.is_a?(Prawn::Reference)
|
32
|
-
dests.data.add(name, reference)
|
33
|
-
end
|
34
|
-
|
35
|
-
# Return a Dest specification for a specific location (and optional zoom
|
36
|
-
# level).
|
37
|
-
#
|
38
|
-
def dest_xyz(left, top, zoom=nil, page=current_page)
|
39
|
-
[page, :XYZ, left, top, zoom]
|
40
|
-
end
|
41
|
-
|
42
|
-
# Return a Dest specification that will fit the given page into the
|
43
|
-
# viewport.
|
44
|
-
#
|
45
|
-
def dest_fit(page=current_page)
|
46
|
-
[page, :Fit]
|
47
|
-
end
|
48
|
-
|
49
|
-
# Return a Dest specification that will fit the given page horizontally
|
50
|
-
# into the viewport, aligned vertically at the given top coordinate.
|
51
|
-
#
|
52
|
-
def dest_fit_horizontally(top, page=current_page)
|
53
|
-
[page, :FitH, top]
|
54
|
-
end
|
55
|
-
|
56
|
-
# Return a Dest specification that will fit the given page vertically
|
57
|
-
# into the viewport, aligned horizontally at the given left coordinate.
|
58
|
-
#
|
59
|
-
def dest_fit_vertically(left, page=current_page)
|
60
|
-
[page, :FitV, left]
|
61
|
-
end
|
62
|
-
|
63
|
-
# Return a Dest specification that will fit the given rectangle into the
|
64
|
-
# viewport, for the given page.
|
65
|
-
#
|
66
|
-
def dest_fit_rect(left, bottom, right, top, page=current_page)
|
67
|
-
[page, :FitR, left, bottom, right, top]
|
68
|
-
end
|
69
|
-
|
70
|
-
# Return a Dest specfication that will fit the given page's bounding box
|
71
|
-
# into the viewport.
|
72
|
-
#
|
73
|
-
def dest_fit_bounds(page=current_page)
|
74
|
-
[page, :FitB]
|
75
|
-
end
|
76
|
-
|
77
|
-
# Same as #dest_fit_horizontally, but works on the page's bounding box
|
78
|
-
# instead of the entire page.
|
79
|
-
#
|
80
|
-
def dest_fit_bounds_horizontally(top, page=current_page)
|
81
|
-
[page, :FitBH, top]
|
82
|
-
end
|
83
|
-
|
84
|
-
# Same as #dest_fit_vertically, but works on the page's bounding box
|
85
|
-
# instead of the entire page.
|
86
|
-
#
|
87
|
-
def dest_fit_bounds_vertically(left, page=current_page)
|
88
|
-
[page, :FitBV, left]
|
89
|
-
end
|
90
|
-
end
|
91
|
-
end
|
92
|
-
end
|
@@ -1,180 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
#
|
3
|
-
# internals.rb : Implements document internals for Prawn
|
4
|
-
#
|
5
|
-
# Copyright August 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
|
-
class Document
|
11
|
-
|
12
|
-
# This module exposes a few low-level PDF features for those who want
|
13
|
-
# to extend Prawn's core functionality. If you are not comfortable with
|
14
|
-
# low level PDF functionality as defined by Adobe's specification, chances
|
15
|
-
# are you won't need anything you find here.
|
16
|
-
#
|
17
|
-
module Internals
|
18
|
-
|
19
|
-
# Creates a new Prawn::Reference and adds it to the Document's object
|
20
|
-
# list. The +data+ argument is anything that Prawn::PdfObject() can convert.
|
21
|
-
#
|
22
|
-
# Returns the identifier which points to the reference in the ObjectStore
|
23
|
-
#
|
24
|
-
# If a block is given, it will be invoked just before the object is written
|
25
|
-
# out to the PDF document stream. This allows you to do deferred processing
|
26
|
-
# on some references (such as fonts, which you might know all the details
|
27
|
-
# about until the last page of the document is finished).
|
28
|
-
#
|
29
|
-
def ref(data, &block)
|
30
|
-
ref!(data, &block).identifier
|
31
|
-
end
|
32
|
-
|
33
|
-
# Like ref, but returns the actual reference instead of its identifier.
|
34
|
-
#
|
35
|
-
# While you can use this to build up nested references within the object
|
36
|
-
# tree, it is recommended to persist only identifiers, and them provide
|
37
|
-
# helper methods to look up the actual references in the ObjectStore
|
38
|
-
# if needed. If you take this approach, Prawn::Document::Snapshot
|
39
|
-
# will probably work with your extension
|
40
|
-
#
|
41
|
-
def ref!(data, &block)
|
42
|
-
@store.ref(data, &block)
|
43
|
-
end
|
44
|
-
|
45
|
-
def page_content
|
46
|
-
@store[@page_content]
|
47
|
-
end
|
48
|
-
|
49
|
-
def current_page
|
50
|
-
@store[@current_page]
|
51
|
-
end
|
52
|
-
|
53
|
-
# Grabs the reference for the current page content
|
54
|
-
#
|
55
|
-
def page_content
|
56
|
-
@active_stamp_stream || @store[@page_content]
|
57
|
-
end
|
58
|
-
|
59
|
-
# Grabs the reference for the current page
|
60
|
-
#
|
61
|
-
def current_page
|
62
|
-
@active_stamp_dictionary || @store[@current_page]
|
63
|
-
end
|
64
|
-
|
65
|
-
# Appends a raw string to the current page content.
|
66
|
-
#
|
67
|
-
# # Raw line drawing example:
|
68
|
-
# x1,y1,x2,y2 = 100,500,300,550
|
69
|
-
# pdf.add_content("%.3f %.3f m" % [ x1, y1 ]) # move
|
70
|
-
# pdf.add_content("%.3f %.3f l" % [ x2, y2 ]) # draw path
|
71
|
-
# pdf.add_content("S") # stroke
|
72
|
-
#
|
73
|
-
def add_content(str)
|
74
|
-
page_content << str << "\n"
|
75
|
-
end
|
76
|
-
|
77
|
-
# Add a new type to the current pages ProcSet
|
78
|
-
#
|
79
|
-
def proc_set(*types)
|
80
|
-
current_page.data[:ProcSet] ||= ref!([])
|
81
|
-
current_page.data[:ProcSet].data |= types
|
82
|
-
end
|
83
|
-
|
84
|
-
# The Resources dictionary for the current page
|
85
|
-
#
|
86
|
-
def page_resources
|
87
|
-
current_page.data[:Resources] ||= {}
|
88
|
-
end
|
89
|
-
|
90
|
-
# The Font dictionary for the current page
|
91
|
-
#
|
92
|
-
def page_fonts
|
93
|
-
page_resources[:Font] ||= {}
|
94
|
-
end
|
95
|
-
|
96
|
-
# The XObject dictionary for the current page
|
97
|
-
#
|
98
|
-
def page_xobjects
|
99
|
-
page_resources[:XObject] ||= {}
|
100
|
-
end
|
101
|
-
|
102
|
-
def page_ext_gstates
|
103
|
-
page_resources[:ExtGState] ||= {}
|
104
|
-
end
|
105
|
-
|
106
|
-
# The Name dictionary (PDF spec 3.6.3) for this document. It is
|
107
|
-
# lazily initialized, so that documents that do not need a name
|
108
|
-
# dictionary do not incur the additional overhead.
|
109
|
-
#
|
110
|
-
def names
|
111
|
-
@store.root.data[:Names] ||= ref!(:Type => :Names)
|
112
|
-
end
|
113
|
-
|
114
|
-
private
|
115
|
-
|
116
|
-
def finish_page_content
|
117
|
-
@header.draw if defined?(@header) and @header
|
118
|
-
@footer.draw if defined?(@footer) and @footer
|
119
|
-
add_content "Q"
|
120
|
-
page_content.compress_stream if compression_enabled?
|
121
|
-
page_content.data[:Length] = page_content.stream.size
|
122
|
-
end
|
123
|
-
|
124
|
-
# raise the PDF version of the file we're going to generate.
|
125
|
-
# A private method, designed for internal use when the user adds a feature
|
126
|
-
# to their document that requires a particular version.
|
127
|
-
def min_version(min)
|
128
|
-
@version = min if min > @version
|
129
|
-
end
|
130
|
-
|
131
|
-
# Write out the PDF Header, as per spec 3.4.1
|
132
|
-
#
|
133
|
-
def render_header(output)
|
134
|
-
# pdf version
|
135
|
-
output << "%PDF-#{@version}\n"
|
136
|
-
|
137
|
-
# 4 binary chars, as recommended by the spec
|
138
|
-
output << "%\xFF\xFF\xFF\xFF\n"
|
139
|
-
end
|
140
|
-
|
141
|
-
# Write out the PDF Body, as per spec 3.4.2
|
142
|
-
#
|
143
|
-
def render_body(output)
|
144
|
-
@store.each do |ref|
|
145
|
-
ref.offset = output.size
|
146
|
-
output << ref.object
|
147
|
-
end
|
148
|
-
end
|
149
|
-
|
150
|
-
# Write out the PDF Cross Reference Table, as per spec 3.4.3
|
151
|
-
#
|
152
|
-
def render_xref(output)
|
153
|
-
@xref_offset = output.size
|
154
|
-
output << "xref\n"
|
155
|
-
output << "0 #{@store.size + 1}\n"
|
156
|
-
output << "0000000000 65535 f \n"
|
157
|
-
@store.each do |ref|
|
158
|
-
output.printf("%010d", ref.offset)
|
159
|
-
output << " 00000 n \n"
|
160
|
-
end
|
161
|
-
end
|
162
|
-
|
163
|
-
# Write out the PDF Trailer, as per spec 3.4.4
|
164
|
-
#
|
165
|
-
def render_trailer(output)
|
166
|
-
trailer_hash = {:Size => @store.size + 1,
|
167
|
-
:Root => @store.root,
|
168
|
-
:Info => @store.info}
|
169
|
-
trailer_hash.merge!(@trailer) if @trailer
|
170
|
-
|
171
|
-
output << "trailer\n"
|
172
|
-
output << Prawn::PdfObject(trailer_hash) << "\n"
|
173
|
-
output << "startxref\n"
|
174
|
-
output << @xref_offset << "\n"
|
175
|
-
output << "%%EOF" << "\n"
|
176
|
-
end
|
177
|
-
|
178
|
-
end
|
179
|
-
end
|
180
|
-
end
|
@@ -1,153 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
# page_geometry.rb : Describes PDF page geometries
|
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
|
-
module Prawn
|
10
|
-
class Document
|
11
|
-
|
12
|
-
# Dimensions pulled from PDF::Writer, rubyforge.org/projects/ruby-pdf
|
13
|
-
#
|
14
|
-
# All of these dimensions are in PDF Points, see Prawn::Measurements for
|
15
|
-
# conversion utilities.
|
16
|
-
#
|
17
|
-
# Additionally, if the size you are after is not listed below, you can always
|
18
|
-
# specify your size by passing an array of width and height to Prawn::Document.new
|
19
|
-
# like:
|
20
|
-
#
|
21
|
-
# Prawn::Document.new(:page_size => [1000, 20000])
|
22
|
-
#
|
23
|
-
# The sizes below can be used by passing the appropriate string to :size:
|
24
|
-
#
|
25
|
-
# Prawn::Document.new(:page_size => '2A0')
|
26
|
-
#
|
27
|
-
# ===Inbuilt Sizes:
|
28
|
-
#
|
29
|
-
#
|
30
|
-
# 4A0:: => 4767.87 x 6740.79
|
31
|
-
# 2A0:: => 3370.39 x 4767.87
|
32
|
-
# A0:: => 2383.94 x 3370.39
|
33
|
-
# A1:: => 1683.78 x 2383.94
|
34
|
-
# A2:: => 1190.55 x 1683.78
|
35
|
-
# A3:: => 841.89 x 1190.55
|
36
|
-
# A4:: => 595.28 x 841.89
|
37
|
-
# A5:: => 419.53 x 595.28
|
38
|
-
# A6:: => 297.64 x 419.53
|
39
|
-
# A7:: => 209.76 x 297.64
|
40
|
-
# A8:: => 147.40 x 209.76
|
41
|
-
# A9:: => 104.88 x 147.40
|
42
|
-
# A10:: => 73.70 x 104.88
|
43
|
-
# B0:: => 2834.65 x 4008.19
|
44
|
-
# B1:: => 2004.09 x 2834.65
|
45
|
-
# B2:: => 1417.32 x 2004.09
|
46
|
-
# B3:: => 1000.63 x 1417.32
|
47
|
-
# B4:: => 708.66 x 1000.63
|
48
|
-
# B5:: => 498.90 x 708.66
|
49
|
-
# B6:: => 354.33 x 498.90
|
50
|
-
# B7:: => 249.45 x 354.33
|
51
|
-
# B8:: => 175.75 x 249.45
|
52
|
-
# B9:: => 124.72 x 175.75
|
53
|
-
# B10:: => 87.87 x 124.72
|
54
|
-
# C0:: => 2599.37 x 3676.54
|
55
|
-
# C1:: => 1836.85 x 2599.37
|
56
|
-
# C2:: => 1298.27 x 1836.85
|
57
|
-
# C3:: => 918.43 x 1298.27
|
58
|
-
# C4:: => 649.13 x 918.43
|
59
|
-
# C5:: => 459.21 x 649.13
|
60
|
-
# C6:: => 323.15 x 459.21
|
61
|
-
# C7:: => 229.61 x 323.15
|
62
|
-
# C8:: => 161.57 x 229.61
|
63
|
-
# C9:: => 113.39 x 161.57
|
64
|
-
# C10:: => 79.37 x 113.39
|
65
|
-
# RA0:: => 2437.80 x 3458.27
|
66
|
-
# RA1:: => 1729.13 x 2437.80
|
67
|
-
# RA2:: => 1218.90 x 1729.13
|
68
|
-
# RA3:: => 864.57 x 1218.90
|
69
|
-
# RA4:: => 609.45 x 864.57
|
70
|
-
# SRA0:: => 2551.18 x 3628.35
|
71
|
-
# SRA1:: => 1814.17 x 2551.18
|
72
|
-
# SRA2:: => 1275.59 x 1814.17
|
73
|
-
# SRA3:: => 907.09 x 1275.59
|
74
|
-
# SRA4:: => 637.80 x 907.09
|
75
|
-
# EXECUTIVE:: => 521.86 x 756.00
|
76
|
-
# FOLIO:: => 612.00 x 936.00
|
77
|
-
# LEGAL:: => 612.00 x 1008.00
|
78
|
-
# LETTER:: => 612.00 x 792.00
|
79
|
-
# TABLOID:: => 792.00 x 1224.00
|
80
|
-
#
|
81
|
-
module PageGeometry
|
82
|
-
|
83
|
-
SIZES = { "4A0" => [4767.87, 6740.79],
|
84
|
-
"2A0" => [3370.39, 4767.87],
|
85
|
-
"A0" => [2383.94, 3370.39],
|
86
|
-
"A1" => [1683.78, 2383.94],
|
87
|
-
"A2" => [1190.55, 1683.78],
|
88
|
-
"A3" => [841.89, 1190.55],
|
89
|
-
"A4" => [595.28, 841.89],
|
90
|
-
"A5" => [419.53, 595.28],
|
91
|
-
"A6" => [297.64, 419.53],
|
92
|
-
"A7" => [209.76, 297.64],
|
93
|
-
"A8" => [147.40, 209.76],
|
94
|
-
"A9" => [104.88, 147.40],
|
95
|
-
"A10" => [73.70, 104.88],
|
96
|
-
"B0" => [2834.65, 4008.19],
|
97
|
-
"B1" => [2004.09, 2834.65],
|
98
|
-
"B2" => [1417.32, 2004.09],
|
99
|
-
"B3" => [1000.63, 1417.32],
|
100
|
-
"B4" => [708.66, 1000.63],
|
101
|
-
"B5" => [498.90, 708.66],
|
102
|
-
"B6" => [354.33, 498.90],
|
103
|
-
"B7" => [249.45, 354.33],
|
104
|
-
"B8" => [175.75, 249.45],
|
105
|
-
"B9" => [124.72, 175.75],
|
106
|
-
"B10" => [87.87, 124.72],
|
107
|
-
"C0" => [2599.37, 3676.54],
|
108
|
-
"C1" => [1836.85, 2599.37],
|
109
|
-
"C2" => [1298.27, 1836.85],
|
110
|
-
"C3" => [918.43, 1298.27],
|
111
|
-
"C4" => [649.13, 918.43],
|
112
|
-
"C5" => [459.21, 649.13],
|
113
|
-
"C6" => [323.15, 459.21],
|
114
|
-
"C7" => [229.61, 323.15],
|
115
|
-
"C8" => [161.57, 229.61],
|
116
|
-
"C9" => [113.39, 161.57],
|
117
|
-
"C10" => [79.37, 113.39],
|
118
|
-
"RA0" => [2437.80, 3458.27],
|
119
|
-
"RA1" => [1729.13, 2437.80],
|
120
|
-
"RA2" => [1218.90, 1729.13],
|
121
|
-
"RA3" => [864.57, 1218.90],
|
122
|
-
"RA4" => [609.45, 864.57],
|
123
|
-
"SRA0" => [2551.18, 3628.35],
|
124
|
-
"SRA1" => [1814.17, 2551.18],
|
125
|
-
"SRA2" => [1275.59, 1814.17],
|
126
|
-
"SRA3" => [907.09, 1275.59],
|
127
|
-
"SRA4" => [637.80, 907.09],
|
128
|
-
"EXECUTIVE" => [521.86, 756.00],
|
129
|
-
"FOLIO" => [612.00, 936.00],
|
130
|
-
"LEGAL" => [612.00, 1008.00],
|
131
|
-
"LETTER" => [612.00, 792.00],
|
132
|
-
"TABLOID" => [792.00, 1224.00] }
|
133
|
-
|
134
|
-
|
135
|
-
# Returns the width and height of the current page in PDF points.
|
136
|
-
# Usually, you'll want the dimensions of the bounding_box or
|
137
|
-
# margin_box instead.
|
138
|
-
#
|
139
|
-
def page_dimensions
|
140
|
-
coords = SIZES[page_size] || page_size
|
141
|
-
[0,0] + case(page_layout)
|
142
|
-
when :portrait
|
143
|
-
coords
|
144
|
-
when :landscape
|
145
|
-
coords.reverse
|
146
|
-
else
|
147
|
-
raise Prawn::Errors::InvalidPageLayout,
|
148
|
-
"Layout must be either :portrait or :landscape"
|
149
|
-
end
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
153
|
-
end
|