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,109 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require File.join(File.expand_path(File.dirname(__FILE__)), "spec_helper")
|
4
|
-
|
5
|
-
describe "A text box" do
|
6
|
-
|
7
|
-
before(:each) do
|
8
|
-
create_pdf
|
9
|
-
@x = 100
|
10
|
-
@y = 125
|
11
|
-
@width = 50
|
12
|
-
@height = @pdf.font.height * 10
|
13
|
-
@text = "Oh hai text box. " * 200
|
14
|
-
end
|
15
|
-
|
16
|
-
it "should have a truncated text" do
|
17
|
-
@overflow = :truncate
|
18
|
-
create_text_box
|
19
|
-
@box.render
|
20
|
-
@box.text.should == "Oh hai\ntext box.\n" * 5
|
21
|
-
end
|
22
|
-
|
23
|
-
it "render should return truncated text (NOTE: which may have had its whitespace mangled by wrap/unwrap)" do
|
24
|
-
@text = "Oh hai text box. " * 25
|
25
|
-
@overflow = :truncate
|
26
|
-
create_text_box
|
27
|
-
excess_text = @box.render
|
28
|
-
excess_text.should == "Oh hai text box. " * 20
|
29
|
-
end
|
30
|
-
|
31
|
-
it "render should attempt to preserve double newlines in excess text before returning it" do
|
32
|
-
line = "Oh hai text box. "
|
33
|
-
@text = line * 10 + "\n\n" + line * 10
|
34
|
-
@overflow = :truncate
|
35
|
-
create_text_box
|
36
|
-
excess_text = @box.render
|
37
|
-
excess_text.should == line * 5 + "\n\n" + line * 10
|
38
|
-
end
|
39
|
-
|
40
|
-
it "render should attempt to preserve single newlines in excess text before returning it" do
|
41
|
-
line = "Oh hai text box. "
|
42
|
-
@text = line * 10 + "\n" + line * 10
|
43
|
-
@overflow = :truncate
|
44
|
-
create_text_box
|
45
|
-
excess_text = @box.render
|
46
|
-
excess_text.should == line * 5 + "\n" + line * 10
|
47
|
-
end
|
48
|
-
|
49
|
-
it "should have a height equal to @height" do
|
50
|
-
@overflow = :truncate
|
51
|
-
create_text_box
|
52
|
-
@box.render
|
53
|
-
@box.height.should == @height
|
54
|
-
end
|
55
|
-
|
56
|
-
it "should add ... to for overflow :ellipses" do
|
57
|
-
@overflow = :ellipses
|
58
|
-
@height = @pdf.font.height * 2
|
59
|
-
@text = "Oh hai text box.\n" * 4
|
60
|
-
create_text_box
|
61
|
-
@box.render
|
62
|
-
@box.text.should == "Oh hai\ntext bo..."
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should not fail if height is smaller than 1 line" do
|
66
|
-
@text = "a b c d e fgi"
|
67
|
-
@width = 30
|
68
|
-
@height = @pdf.font.height * 0.5
|
69
|
-
@overflow = :ellipses
|
70
|
-
create_text_box
|
71
|
-
@box.render
|
72
|
-
@box.text.should == ""
|
73
|
-
end
|
74
|
-
|
75
|
-
it "should keep text intact for overflow :expand" do
|
76
|
-
@overflow = :expand
|
77
|
-
@text = "Oh hai text box.\n" * 4
|
78
|
-
@height = 0
|
79
|
-
create_text_box
|
80
|
-
@box.render
|
81
|
-
@box.text.should == "Oh hai\ntext box.\n" * 4
|
82
|
-
@box.height.should == 0
|
83
|
-
end
|
84
|
-
|
85
|
-
def create_text_box
|
86
|
-
@box = Prawn::Document::Text::Box.new(@text,
|
87
|
-
:width => @width, :height => @height,
|
88
|
-
:overflow => @overflow,
|
89
|
-
:at => [@x, @y],
|
90
|
-
:for => @pdf)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
|
94
|
-
describe "drawing bounding boxes" do
|
95
|
-
|
96
|
-
before(:each) { create_pdf }
|
97
|
-
|
98
|
-
it "should restore the margin box when bounding box exits" do
|
99
|
-
margin_box = @pdf.bounds
|
100
|
-
|
101
|
-
@pdf.text_box "Oh hai text box. " * 11, :height => @pdf.font.height * 10
|
102
|
-
|
103
|
-
@pdf.bounds.should == margin_box
|
104
|
-
|
105
|
-
end
|
106
|
-
|
107
|
-
end
|
108
|
-
|
109
|
-
|
@@ -1,185 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
|
3
|
-
require File.join(File.expand_path(File.dirname(__FILE__)), "spec_helper")
|
4
|
-
|
5
|
-
describe "when drawing text" do
|
6
|
-
|
7
|
-
before(:each) { create_pdf }
|
8
|
-
|
9
|
-
it "should advance down the document based on font_height" do
|
10
|
-
position = @pdf.y
|
11
|
-
@pdf.text "Foo"
|
12
|
-
|
13
|
-
@pdf.y.should.be.close(position - @pdf.font.height, 0.0001)
|
14
|
-
|
15
|
-
position = @pdf.y
|
16
|
-
@pdf.text "Foo\nBar\nBaz"
|
17
|
-
@pdf.y.should.be.close(position - 3*@pdf.font.height, 0.0001)
|
18
|
-
end
|
19
|
-
|
20
|
-
it "should advance down the document based on font ascender only "+
|
21
|
-
"if final_gap is given" do
|
22
|
-
position = @pdf.y
|
23
|
-
@pdf.text "Foo", :final_gap => false
|
24
|
-
|
25
|
-
@pdf.y.should.be.close(position - @pdf.font.ascender, 0.0001)
|
26
|
-
|
27
|
-
position = @pdf.y
|
28
|
-
@pdf.text "Foo\nBar\nBaz", :final_gap => false
|
29
|
-
@pdf.y.should.be.close(position - 2*@pdf.font.height - @pdf.font.ascender, 0.0001)
|
30
|
-
end
|
31
|
-
|
32
|
-
it "should not accept :align alongside :at" do
|
33
|
-
assert_raises(ArgumentError) do
|
34
|
-
@pdf.text "What could this mean?", :at => [100, 100], :align => :center
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
it "should default to 12 point helvetica" do
|
39
|
-
@pdf.text "Blah", :at => [100,100]
|
40
|
-
text = PDF::Inspector::Text.analyze(@pdf.render)
|
41
|
-
text.font_settings[0][:name].should == :Helvetica
|
42
|
-
text.font_settings[0][:size].should == 12
|
43
|
-
text.strings.first.should == "Blah"
|
44
|
-
end
|
45
|
-
|
46
|
-
it "should allow setting font size" do
|
47
|
-
@pdf.text "Blah", :at => [100,100], :size => 16
|
48
|
-
text = PDF::Inspector::Text.analyze(@pdf.render)
|
49
|
-
text.font_settings[0][:size].should == 16
|
50
|
-
end
|
51
|
-
|
52
|
-
it "should allow setting a default font size" do
|
53
|
-
@pdf.font_size = 16
|
54
|
-
@pdf.text "Blah"
|
55
|
-
text = PDF::Inspector::Text.analyze(@pdf.render)
|
56
|
-
text.font_settings[0][:size].should == 16
|
57
|
-
end
|
58
|
-
|
59
|
-
it "should allow setting font size in DSL style" do
|
60
|
-
@pdf.font_size 20
|
61
|
-
@pdf.font_size.should == 20
|
62
|
-
end
|
63
|
-
|
64
|
-
it "should allow overriding default font for a single instance" do
|
65
|
-
@pdf.font_size = 16
|
66
|
-
|
67
|
-
@pdf.text "Blah", :size => 11
|
68
|
-
@pdf.text "Blaz"
|
69
|
-
text = PDF::Inspector::Text.analyze(@pdf.render)
|
70
|
-
text.font_settings[0][:size].should == 11
|
71
|
-
text.font_settings[1][:size].should == 16
|
72
|
-
end
|
73
|
-
|
74
|
-
it "should allow setting a font size transaction with a block" do
|
75
|
-
@pdf.font_size 16 do
|
76
|
-
@pdf.text 'Blah'
|
77
|
-
end
|
78
|
-
|
79
|
-
@pdf.text 'blah'
|
80
|
-
|
81
|
-
text = PDF::Inspector::Text.analyze(@pdf.render)
|
82
|
-
text.font_settings[0][:size].should == 16
|
83
|
-
text.font_settings[1][:size].should == 12
|
84
|
-
end
|
85
|
-
|
86
|
-
it "should allow manual setting the font size " +
|
87
|
-
"when in a font size block" do
|
88
|
-
@pdf.font_size(16) do
|
89
|
-
@pdf.text 'Foo'
|
90
|
-
@pdf.text 'Blah', :size => 11
|
91
|
-
@pdf.text 'Blaz'
|
92
|
-
end
|
93
|
-
text = PDF::Inspector::Text.analyze(@pdf.render)
|
94
|
-
text.font_settings[0][:size].should == 16
|
95
|
-
text.font_settings[1][:size].should == 11
|
96
|
-
text.font_settings[2][:size].should == 16
|
97
|
-
end
|
98
|
-
|
99
|
-
it "should allow registering of built-in font_settings on the fly" do
|
100
|
-
@pdf.font "Times-Roman"
|
101
|
-
@pdf.text "Blah", :at => [100,100]
|
102
|
-
@pdf.font "Courier"
|
103
|
-
@pdf.text "Blaz", :at => [150,150]
|
104
|
-
text = PDF::Inspector::Text.analyze(@pdf.render)
|
105
|
-
text.font_settings[0][:name].should == :"Times-Roman"
|
106
|
-
text.font_settings[1][:name].should == :Courier
|
107
|
-
end
|
108
|
-
|
109
|
-
it "should utilise the same default font across multiple pages" do
|
110
|
-
@pdf.text "Blah", :at => [100,100]
|
111
|
-
@pdf.start_new_page
|
112
|
-
@pdf.text "Blaz", :at => [150,150]
|
113
|
-
text = PDF::Inspector::Text.analyze(@pdf.render)
|
114
|
-
|
115
|
-
text.font_settings.size.should == 2
|
116
|
-
text.font_settings[0][:name].should == :Helvetica
|
117
|
-
text.font_settings[1][:name].should == :Helvetica
|
118
|
-
end
|
119
|
-
|
120
|
-
it "should raise an exception when an unknown font is used" do
|
121
|
-
lambda { @pdf.font "Pao bu" }.should.raise(Prawn::Errors::UnknownFont)
|
122
|
-
end
|
123
|
-
|
124
|
-
it "should correctly render a utf-8 string when using a built-in font" do
|
125
|
-
str = "©" # copyright symbol
|
126
|
-
@pdf.text str
|
127
|
-
|
128
|
-
# grab the text from the rendered PDF and ensure it matches
|
129
|
-
text = PDF::Inspector::Text.analyze(@pdf.render)
|
130
|
-
text.strings.first.should == str
|
131
|
-
end
|
132
|
-
|
133
|
-
if "spec".respond_to?(:encode!)
|
134
|
-
# Handle non utf-8 string encodings in a sane way on M17N aware VMs
|
135
|
-
it "should raise an exception when a utf-8 incompatible string is rendered" do
|
136
|
-
str = "Blah \xDD"
|
137
|
-
str.force_encoding("ASCII-8BIT")
|
138
|
-
lambda { @pdf.text str }.should.raise(ArgumentError)
|
139
|
-
end
|
140
|
-
it "should not raise an exception when a shift-jis string is rendered" do
|
141
|
-
datafile = "#{Prawn::BASEDIR}/data/shift_jis_text.txt"
|
142
|
-
sjis_str = File.open(datafile, "r:shift_jis") { |f| f.gets }
|
143
|
-
@pdf.font("#{Prawn::BASEDIR}/data/fonts/gkai00mp.ttf")
|
144
|
-
lambda { @pdf.text sjis_str }.should.not.raise(ArgumentError)
|
145
|
-
end
|
146
|
-
else
|
147
|
-
# Handle non utf-8 string encodings in a sane way on non-M17N aware VMs
|
148
|
-
it "should raise an exception when a corrupt utf-8 string is rendered" do
|
149
|
-
str = "Blah \xDD"
|
150
|
-
lambda { @pdf.text str }.should.raise(ArgumentError)
|
151
|
-
end
|
152
|
-
it "should raise an exception when a shift-jis string is rendered" do
|
153
|
-
sjis_str = File.read("#{Prawn::BASEDIR}/data/shift_jis_text.txt")
|
154
|
-
lambda { @pdf.text sjis_str }.should.raise(ArgumentError)
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
it "should wrap text" do
|
159
|
-
@pdf = Prawn::Document.new
|
160
|
-
@pdf.font "Courier"
|
161
|
-
|
162
|
-
text = "Please wrap this text about HERE. More text that should be wrapped"
|
163
|
-
expect = "Please wrap this text about\nHERE. More text that should be\nwrapped"
|
164
|
-
|
165
|
-
@pdf.naive_wrap(text, 220, @pdf.font_size).should == expect
|
166
|
-
end
|
167
|
-
|
168
|
-
it "should respect end of line when wrapping text" do
|
169
|
-
@pdf = Prawn::Document.new
|
170
|
-
@pdf.font "Courier"
|
171
|
-
text = "Please wrap only before\nTHIS word. Don't wrap this"
|
172
|
-
@pdf.naive_wrap(text, 220, @pdf.font_size).should == text
|
173
|
-
end
|
174
|
-
|
175
|
-
it "should respect end of line when wrapping text and mode is set to 'character'" do
|
176
|
-
@pdf = Prawn::Document.new
|
177
|
-
@pdf.font "Courier"
|
178
|
-
|
179
|
-
text = "You can wrap this text HERE"
|
180
|
-
expect = "You can wrap this text HE\nRE"
|
181
|
-
|
182
|
-
@pdf.naive_wrap(text, 180, @pdf.font_size, :mode => :character).should == expect
|
183
|
-
end
|
184
|
-
|
185
|
-
end
|
@@ -1,61 +0,0 @@
|
|
1
|
-
require File.join(File.expand_path(File.dirname(__FILE__)), "spec_helper")
|
2
|
-
|
3
|
-
describe "Document with transparency" do
|
4
|
-
it "the PDF version should be at least 1.4" do
|
5
|
-
create_pdf
|
6
|
-
@pdf.transparent(0.5)
|
7
|
-
str = @pdf.render
|
8
|
-
str[0,8].should == "%PDF-1.4"
|
9
|
-
end
|
10
|
-
|
11
|
-
it "a new extended graphics state should be created for "+
|
12
|
-
"each unique transparency setting" do
|
13
|
-
create_pdf
|
14
|
-
@pdf.transparent(0.5, 0.2)
|
15
|
-
@pdf.transparent(0.5, 0.75)
|
16
|
-
extgstates = PDF::Inspector::ExtGState.analyze(@pdf.render).extgstates
|
17
|
-
extgstates.length.should == 2
|
18
|
-
end
|
19
|
-
|
20
|
-
it "a new extended graphics state should not be created for "+
|
21
|
-
"each duplicate transparency setting" do
|
22
|
-
create_pdf
|
23
|
-
@pdf.transparent(0.5, 0.75)
|
24
|
-
@pdf.transparent(0.5, 0.75)
|
25
|
-
extgstates = PDF::Inspector::ExtGState.analyze(@pdf.render).extgstates
|
26
|
-
extgstates.length.should == 1
|
27
|
-
end
|
28
|
-
|
29
|
-
it "setting the transparency with only one parameter sets the transparency"+
|
30
|
-
" for both the fill and the stroke" do
|
31
|
-
create_pdf
|
32
|
-
@pdf.transparent(0.5)
|
33
|
-
extgstate = PDF::Inspector::ExtGState.analyze(@pdf.render).extgstates[0]
|
34
|
-
extgstate[:opacity].should == 0.5
|
35
|
-
extgstate[:stroke_opacity].should == 0.5
|
36
|
-
end
|
37
|
-
|
38
|
-
it "setting the transparency with a numerical parameter and "+
|
39
|
-
"a :stroke should set the fill transparency to the numerical parameter "+
|
40
|
-
"and the stroke transparency to the option" do
|
41
|
-
create_pdf
|
42
|
-
@pdf.transparent(0.5, 0.2)
|
43
|
-
extgstate = PDF::Inspector::ExtGState.analyze(@pdf.render).extgstates[0]
|
44
|
-
extgstate[:opacity].should == 0.5
|
45
|
-
extgstate[:stroke_opacity].should == 0.2
|
46
|
-
end
|
47
|
-
|
48
|
-
describe "with more than one page" do
|
49
|
-
it "the extended graphic state resource should be added to both pages" do
|
50
|
-
create_pdf
|
51
|
-
@pdf.transparent(0.5, 0.2)
|
52
|
-
@pdf.start_new_page
|
53
|
-
@pdf.transparent(0.5, 0.2)
|
54
|
-
extgstates = PDF::Inspector::ExtGState.analyze(@pdf.render).extgstates
|
55
|
-
extgstate = extgstates[0]
|
56
|
-
extgstates.length.should == 2
|
57
|
-
extgstate[:opacity].should == 0.5
|
58
|
-
extgstate[:stroke_opacity].should == 0.2
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
PDF::Inspector : A tool for analyzing PDF output
|
2
|
-
|
3
|
-
This library provides a number of PDF::Reader[0] based tools for use in testing
|
4
|
-
PDF output. Presently, the primary purpose of this tool is to support the
|
5
|
-
tests found in Prawn[1], a pure Ruby PDF generation library.
|
6
|
-
|
7
|
-
However, it may be useful to others, so we have made it available on Github[2]
|
8
|
-
|
9
|
-
Questions can be directed to the Prawn mailing list[3], but please remember
|
10
|
-
that this code is not necessarily suitable for production and has no officially
|
11
|
-
planned release date.
|
12
|
-
|
13
|
-
That having been said, patches are welcome!
|
14
|
-
|
15
|
-
[0] http://github.com/yob/pdf-reader
|
16
|
-
[1] http://github.com/sandal/prawn
|
17
|
-
[2] http://github.com/sandal/pdf-inspector
|
18
|
-
[3] http://groups.google.com/group/prawn-ruby
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require "rubygems"
|
2
|
-
require "pdf/reader"
|
3
|
-
require "pdf/inspector/text"
|
4
|
-
require "pdf/inspector/xobject"
|
5
|
-
require "pdf/inspector/extgstate"
|
6
|
-
require "pdf/inspector/graphics"
|
7
|
-
require "pdf/inspector/page"
|
8
|
-
|
9
|
-
module PDF
|
10
|
-
class Inspector
|
11
|
-
def self.analyze(output,*args,&block)
|
12
|
-
obs = self.new(*args, &block)
|
13
|
-
PDF::Reader.string(output,obs)
|
14
|
-
obs
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.analyze_file(filename,*args,&block)
|
18
|
-
analyze(File.open(filename, "rb") { |f| f.read },*args,&block)
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.parse(obj)
|
22
|
-
PDF::Reader::Parser.new(
|
23
|
-
PDF::Reader::Buffer.new(StringIO.new(obj)), nil).parse_token
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module PDF
|
2
|
-
class Inspector
|
3
|
-
class ExtGState < Inspector
|
4
|
-
attr_accessor :extgstates
|
5
|
-
|
6
|
-
def initialize
|
7
|
-
@extgstates = []
|
8
|
-
end
|
9
|
-
|
10
|
-
def resource_extgstate(*params)
|
11
|
-
@extgstates << {
|
12
|
-
:opacity => params[1][:ca],
|
13
|
-
:stroke_opacity => params[1][:CA]
|
14
|
-
}
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
@@ -1,119 +0,0 @@
|
|
1
|
-
module PDF
|
2
|
-
class Inspector
|
3
|
-
module Graphics
|
4
|
-
class Line < Inspector
|
5
|
-
attr_accessor :points, :widths
|
6
|
-
|
7
|
-
def initialize
|
8
|
-
@points = []
|
9
|
-
@widths = []
|
10
|
-
end
|
11
|
-
|
12
|
-
def append_line(*params)
|
13
|
-
@points << params
|
14
|
-
end
|
15
|
-
|
16
|
-
def begin_new_subpath(*params)
|
17
|
-
@points << params
|
18
|
-
end
|
19
|
-
|
20
|
-
def set_line_width(params)
|
21
|
-
@widths << params
|
22
|
-
end
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
class Rectangle < Inspector
|
27
|
-
attr_reader :rectangles
|
28
|
-
|
29
|
-
def initialize
|
30
|
-
@rectangles = []
|
31
|
-
end
|
32
|
-
|
33
|
-
def append_rectangle(*params)
|
34
|
-
@rectangles << { :point => params[0..1],
|
35
|
-
:width => params[2],
|
36
|
-
:height => params[3] }
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
class Curve < Inspector
|
41
|
-
|
42
|
-
attr_reader :coords
|
43
|
-
|
44
|
-
def initialize
|
45
|
-
@coords = []
|
46
|
-
end
|
47
|
-
|
48
|
-
def begin_new_subpath(*params)
|
49
|
-
@coords += params
|
50
|
-
end
|
51
|
-
|
52
|
-
def append_curved_segment(*params)
|
53
|
-
@coords += params
|
54
|
-
end
|
55
|
-
|
56
|
-
end
|
57
|
-
|
58
|
-
class Color < Inspector
|
59
|
-
attr_reader :stroke_color, :fill_color, :stroke_color_count,
|
60
|
-
:fill_color_count
|
61
|
-
|
62
|
-
def initialize
|
63
|
-
@stroke_color_count = 0
|
64
|
-
@fill_color_count = 0
|
65
|
-
end
|
66
|
-
|
67
|
-
def set_rgb_color_for_stroking(*params)
|
68
|
-
@stroke_color_count += 1
|
69
|
-
@stroke_color = params
|
70
|
-
end
|
71
|
-
|
72
|
-
def set_rgb_color_for_nonstroking(*params)
|
73
|
-
@fill_color_count += 1
|
74
|
-
@fill_color = params
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
class Dash < Inspector
|
79
|
-
attr_reader :stroke_dash, :stroke_dash_count
|
80
|
-
|
81
|
-
def initialize
|
82
|
-
@stroke_dash_count = 0
|
83
|
-
end
|
84
|
-
|
85
|
-
def set_line_dash(*params)
|
86
|
-
@stroke_dash_count += 1
|
87
|
-
@stroke_dash = params
|
88
|
-
end
|
89
|
-
end
|
90
|
-
|
91
|
-
class CapStyle < Inspector
|
92
|
-
attr_reader :cap_style, :cap_style_count
|
93
|
-
|
94
|
-
def initialize
|
95
|
-
@cap_style_count = 0
|
96
|
-
end
|
97
|
-
|
98
|
-
def set_line_cap_style(*params)
|
99
|
-
@cap_style_count += 1
|
100
|
-
@cap_style = params[0]
|
101
|
-
end
|
102
|
-
end
|
103
|
-
|
104
|
-
class JoinStyle < Inspector
|
105
|
-
attr_reader :join_style, :join_style_count
|
106
|
-
|
107
|
-
def initialize
|
108
|
-
@join_style_count = 0
|
109
|
-
end
|
110
|
-
|
111
|
-
def set_line_join_style(*params)
|
112
|
-
@join_style_count += 1
|
113
|
-
@join_style = params[0]
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|