alphasights-prawn 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/COPYING +340 -0
- data/HACKING +50 -0
- data/LICENSE +56 -0
- data/README +141 -0
- data/Rakefile +52 -0
- data/data/encodings/win_ansi.txt +29 -0
- data/data/fonts/Action Man.dfont +0 -0
- data/data/fonts/Activa.ttf +0 -0
- data/data/fonts/Chalkboard.ttf +0 -0
- data/data/fonts/Courier-Bold.afm +342 -0
- data/data/fonts/Courier-BoldOblique.afm +342 -0
- data/data/fonts/Courier-Oblique.afm +342 -0
- data/data/fonts/Courier.afm +342 -0
- data/data/fonts/DejaVuSans.ttf +0 -0
- data/data/fonts/Dustismo_Roman.ttf +0 -0
- data/data/fonts/Helvetica-Bold.afm +2827 -0
- data/data/fonts/Helvetica-BoldOblique.afm +2827 -0
- data/data/fonts/Helvetica-Oblique.afm +3051 -0
- data/data/fonts/Helvetica.afm +3051 -0
- data/data/fonts/MustRead.html +19 -0
- data/data/fonts/Symbol.afm +213 -0
- data/data/fonts/Times-Bold.afm +2588 -0
- data/data/fonts/Times-BoldItalic.afm +2384 -0
- data/data/fonts/Times-Italic.afm +2667 -0
- data/data/fonts/Times-Roman.afm +2419 -0
- data/data/fonts/ZapfDingbats.afm +225 -0
- data/data/fonts/comicsans.ttf +0 -0
- data/data/fonts/gkai00mp.ttf +0 -0
- data/data/images/16bit.alpha +0 -0
- data/data/images/16bit.dat +0 -0
- data/data/images/16bit.png +0 -0
- data/data/images/arrow.png +0 -0
- data/data/images/arrow2.png +0 -0
- data/data/images/barcode_issue.png +0 -0
- data/data/images/dice.alpha +0 -0
- data/data/images/dice.dat +0 -0
- data/data/images/dice.png +0 -0
- data/data/images/dice_interlaced.png +0 -0
- data/data/images/fractal.jpg +0 -0
- data/data/images/letterhead.jpg +0 -0
- data/data/images/page_white_text.alpha +0 -0
- data/data/images/page_white_text.dat +0 -0
- data/data/images/page_white_text.png +0 -0
- data/data/images/pigs.jpg +0 -0
- data/data/images/rails.dat +0 -0
- data/data/images/rails.png +0 -0
- data/data/images/ruport.png +0 -0
- data/data/images/ruport_data.dat +0 -0
- data/data/images/ruport_transparent.png +0 -0
- data/data/images/ruport_type0.png +0 -0
- data/data/images/stef.jpg +0 -0
- data/data/images/tru256.bmp +0 -0
- data/data/images/web-links.dat +1 -0
- data/data/images/web-links.png +0 -0
- data/data/pdfs/complex_template.pdf +0 -0
- data/data/pdfs/contains_ttf_font.pdf +0 -0
- data/data/pdfs/encrypted.pdf +0 -0
- data/data/pdfs/hexagon.pdf +61 -0
- data/data/pdfs/indirect_reference.pdf +86 -0
- data/data/pdfs/nested_pages.pdf +118 -0
- data/data/pdfs/resources_as_indirect_object.pdf +83 -0
- data/data/pdfs/two_hexagons.pdf +90 -0
- data/data/pdfs/version_1_6.pdf +61 -0
- data/data/shift_jis_text.txt +1 -0
- data/examples/bounding_box/bounding_boxes.rb +43 -0
- data/examples/bounding_box/indentation.rb +34 -0
- data/examples/bounding_box/russian_boxes.rb +36 -0
- data/examples/bounding_box/stretched_nesting.rb +67 -0
- data/examples/builder/simple.rb +28 -0
- data/examples/example_helper.rb +4 -0
- data/examples/general/background.rb +23 -0
- data/examples/general/canvas.rb +15 -0
- data/examples/general/context_sensitive_headers.rb +37 -0
- data/examples/general/float.rb +11 -0
- data/examples/general/margin.rb +36 -0
- data/examples/general/measurement_units.rb +51 -0
- data/examples/general/metadata-info.rb +16 -0
- data/examples/general/multi_page_layout.rb +18 -0
- data/examples/general/outlines.rb +50 -0
- data/examples/general/page_geometry.rb +31 -0
- data/examples/general/page_numbering.rb +15 -0
- data/examples/general/repeaters.rb +47 -0
- data/examples/general/stamp.rb +41 -0
- data/examples/general/templates.rb +13 -0
- data/examples/graphics/basic_images.rb +23 -0
- data/examples/graphics/chunkable.rb +38 -0
- data/examples/graphics/cmyk.rb +12 -0
- data/examples/graphics/curves.rb +11 -0
- data/examples/graphics/hexagon.rb +13 -0
- data/examples/graphics/image_fit.rb +15 -0
- data/examples/graphics/image_flow.rb +37 -0
- data/examples/graphics/image_position.rb +17 -0
- data/examples/graphics/line.rb +32 -0
- data/examples/graphics/png_types.rb +22 -0
- data/examples/graphics/polygons.rb +16 -0
- data/examples/graphics/remote_images.rb +12 -0
- data/examples/graphics/rounded_polygons.rb +19 -0
- data/examples/graphics/rounded_rectangle.rb +20 -0
- data/examples/graphics/ruport_style_helpers.rb +19 -0
- data/examples/graphics/stroke_bounds.rb +20 -0
- data/examples/graphics/stroke_cap_and_join.rb +45 -0
- data/examples/graphics/stroke_dash.rb +42 -0
- data/examples/graphics/transformations.rb +52 -0
- data/examples/graphics/transparency.rb +26 -0
- data/examples/m17n/chinese_text_wrapping.rb +17 -0
- data/examples/m17n/euro.rb +15 -0
- data/examples/m17n/sjis.rb +28 -0
- data/examples/m17n/utf8.rb +13 -0
- data/examples/m17n/win_ansi_charset.rb +54 -0
- data/examples/security/hello_foo.rb +8 -0
- data/examples/table/bill.rb +53 -0
- data/examples/table/cell.rb +12 -0
- data/examples/table/checkerboard.rb +22 -0
- data/examples/table/header.rb +14 -0
- data/examples/table/inline_format_table.rb +12 -0
- data/examples/table/multi_page_table.rb +9 -0
- data/examples/table/simple_table.rb +24 -0
- data/examples/table/subtable.rb +12 -0
- data/examples/table/widths.rb +20 -0
- data/examples/text/alignment.rb +18 -0
- data/examples/text/character_spacing.rb +12 -0
- data/examples/text/dfont.rb +48 -0
- data/examples/text/family_based_styling.rb +24 -0
- data/examples/text/font_calculations.rb +91 -0
- data/examples/text/font_size.rb +33 -0
- data/examples/text/hyphenation.rb +45 -0
- data/examples/text/indent_paragraphs.rb +22 -0
- data/examples/text/inline_format.rb +103 -0
- data/examples/text/kerning.rb +30 -0
- data/examples/text/rotated.rb +98 -0
- data/examples/text/shaped_text_box.rb +31 -0
- data/examples/text/simple_text.rb +17 -0
- data/examples/text/simple_text_ttf.rb +17 -0
- data/examples/text/text_box.rb +88 -0
- data/examples/text/text_box_returning_excess.rb +51 -0
- data/examples/text/text_flow.rb +67 -0
- data/lib/prawn.rb +27 -0
- data/lib/prawn/canvas.rb +119 -0
- data/lib/prawn/chunkable.rb +37 -0
- data/lib/prawn/compatibility.rb +51 -0
- data/lib/prawn/core.rb +85 -0
- data/lib/prawn/core/annotations.rb +61 -0
- data/lib/prawn/core/byte_string.rb +9 -0
- data/lib/prawn/core/chunk.rb +36 -0
- data/lib/prawn/core/destinations.rb +90 -0
- data/lib/prawn/core/document_state.rb +78 -0
- data/lib/prawn/core/literal_string.rb +16 -0
- data/lib/prawn/core/name_tree.rb +165 -0
- data/lib/prawn/core/object_store.rb +236 -0
- data/lib/prawn/core/page.rb +179 -0
- data/lib/prawn/core/pdf_object.rb +108 -0
- data/lib/prawn/core/reference.rb +112 -0
- data/lib/prawn/core/text.rb +140 -0
- data/lib/prawn/core/text/formatted/arranger.rb +266 -0
- data/lib/prawn/core/text/formatted/line_wrap.rb +127 -0
- data/lib/prawn/core/text/formatted/wrap.rb +112 -0
- data/lib/prawn/core/text/line_wrap.rb +209 -0
- data/lib/prawn/core/text/wrap.rb +80 -0
- data/lib/prawn/document.rb +573 -0
- data/lib/prawn/document/bounding_box.rb +425 -0
- data/lib/prawn/document/graphics_state.rb +48 -0
- data/lib/prawn/document/internals.rb +170 -0
- data/lib/prawn/document/page_geometry.rb +136 -0
- data/lib/prawn/document/snapshot.rb +87 -0
- data/lib/prawn/document_builder.rb +51 -0
- data/lib/prawn/document_builder/command.rb +38 -0
- data/lib/prawn/document_builder/constructs.rb +2 -0
- data/lib/prawn/document_builder/constructs/flowing_text_construct.rb +18 -0
- data/lib/prawn/document_builder/constructs/path_construct.rb +9 -0
- data/lib/prawn/document_builder/layout.rb +25 -0
- data/lib/prawn/document_builder/modifications.rb +2 -0
- data/lib/prawn/document_builder/modifications/layout_modification.rb +9 -0
- data/lib/prawn/document_builder/modifications/path_modification.rb +9 -0
- data/lib/prawn/encoding.rb +121 -0
- data/lib/prawn/errors.rb +94 -0
- data/lib/prawn/font.rb +341 -0
- data/lib/prawn/font/afm.rb +225 -0
- data/lib/prawn/font/dfont.rb +42 -0
- data/lib/prawn/font/ttf.rb +350 -0
- data/lib/prawn/graphics.rb +325 -0
- data/lib/prawn/graphics/cap_style.rb +38 -0
- data/lib/prawn/graphics/color.rb +205 -0
- data/lib/prawn/graphics/dash.rb +71 -0
- data/lib/prawn/graphics/join_style.rb +38 -0
- data/lib/prawn/graphics/transformation.rb +156 -0
- data/lib/prawn/graphics/transparency.rb +99 -0
- data/lib/prawn/images.rb +348 -0
- data/lib/prawn/images/jpg.rb +46 -0
- data/lib/prawn/images/png.rb +226 -0
- data/lib/prawn/measurement_extensions.rb +46 -0
- data/lib/prawn/measurements.rb +71 -0
- data/lib/prawn/outline.rb +278 -0
- data/lib/prawn/repeater.rb +129 -0
- data/lib/prawn/security.rb +262 -0
- data/lib/prawn/security/arcfour.rb +51 -0
- data/lib/prawn/stamp.rb +126 -0
- data/lib/prawn/table.rb +421 -0
- data/lib/prawn/table/accessors.rb +180 -0
- data/lib/prawn/table/cell.rb +350 -0
- data/lib/prawn/table/cell/in_table.rb +27 -0
- data/lib/prawn/table/cell/subtable.rb +65 -0
- data/lib/prawn/table/cell/text.rb +125 -0
- data/lib/prawn/text.rb +449 -0
- data/lib/prawn/text/box.rb +392 -0
- data/lib/prawn/text/formatted.rb +4 -0
- data/lib/prawn/text/formatted/box.rb +228 -0
- data/lib/prawn/text/formatted/fragment.rb +181 -0
- data/lib/prawn/text/formatted/parser.rb +213 -0
- data/spec/annotations_spec.rb +90 -0
- data/spec/bounding_box_spec.rb +190 -0
- data/spec/cell_spec.rb +348 -0
- data/spec/destinations_spec.rb +15 -0
- data/spec/document_spec.rb +473 -0
- data/spec/font_spec.rb +324 -0
- data/spec/formatted_text_arranger_spec.rb +426 -0
- data/spec/formatted_text_box_spec.rb +756 -0
- data/spec/formatted_text_fragment_spec.rb +211 -0
- data/spec/graphics_spec.rb +446 -0
- data/spec/images_spec.rb +96 -0
- data/spec/inline_formatted_text_parser_spec.rb +502 -0
- data/spec/jpg_spec.rb +25 -0
- data/spec/line_wrap_spec.rb +341 -0
- data/spec/measurement_units_spec.rb +23 -0
- data/spec/name_tree_spec.rb +112 -0
- data/spec/object_store_spec.rb +160 -0
- data/spec/outline_spec.rb +269 -0
- data/spec/pdf_object_spec.rb +170 -0
- data/spec/png_spec.rb +237 -0
- data/spec/reference_spec.rb +82 -0
- data/spec/repeater_spec.rb +96 -0
- data/spec/security_spec.rb +120 -0
- data/spec/snapshot_spec.rb +138 -0
- data/spec/spec_helper.rb +26 -0
- data/spec/stamp_spec.rb +108 -0
- data/spec/stroke_styles_spec.rb +163 -0
- data/spec/table_spec.rb +598 -0
- data/spec/template_spec.rb +158 -0
- data/spec/text_at_spec.rb +119 -0
- data/spec/text_box_spec.rb +742 -0
- data/spec/text_spacing_spec.rb +75 -0
- data/spec/text_spec.rb +333 -0
- data/spec/text_with_inline_formatting_spec.rb +193 -0
- data/spec/transparency_spec.rb +89 -0
- metadata +331 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
%PDF-1.3
|
|
2
|
+
%����
|
|
3
|
+
1 0 obj
|
|
4
|
+
<< /Creator (Prawn)
|
|
5
|
+
/Producer (Prawn)
|
|
6
|
+
>>
|
|
7
|
+
endobj
|
|
8
|
+
2 0 obj
|
|
9
|
+
<< /Type /Pages
|
|
10
|
+
/Count 1
|
|
11
|
+
/Kids [5 0 R]
|
|
12
|
+
>>
|
|
13
|
+
endobj
|
|
14
|
+
3 0 obj
|
|
15
|
+
<< /Type /Catalog
|
|
16
|
+
/Pages 2 0 R
|
|
17
|
+
>>
|
|
18
|
+
endobj
|
|
19
|
+
4 0 obj
|
|
20
|
+
<< /Length 275
|
|
21
|
+
>>
|
|
22
|
+
stream
|
|
23
|
+
0.000 0.000 0.000 rg
|
|
24
|
+
0.000 0.000 0.000 RG
|
|
25
|
+
q
|
|
26
|
+
0.000 0.000 1.000 rg
|
|
27
|
+
|
|
28
|
+
BT
|
|
29
|
+
36 733.024 Td
|
|
30
|
+
/F1.0 32 Tf
|
|
31
|
+
[<412073616d706c65205044462074686174206861732074686520706167650a>] TJ
|
|
32
|
+
ET
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
BT
|
|
36
|
+
36 696.032 Td
|
|
37
|
+
/F1.0 32 Tf
|
|
38
|
+
[<7265736f757263657320617320616e20696e646972656374206f626a656374>] TJ
|
|
39
|
+
ET
|
|
40
|
+
|
|
41
|
+
Q
|
|
42
|
+
|
|
43
|
+
endstream
|
|
44
|
+
endobj
|
|
45
|
+
5 0 obj
|
|
46
|
+
<< /Resources 6 0 R
|
|
47
|
+
/Type /Page
|
|
48
|
+
/Contents 4 0 R
|
|
49
|
+
/MediaBox [0 0 612.0 792.0]
|
|
50
|
+
/Parent 2 0 R
|
|
51
|
+
>>
|
|
52
|
+
endobj
|
|
53
|
+
6 0 obj
|
|
54
|
+
<< /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
|
|
55
|
+
/Font << /F1.0 7 0 R
|
|
56
|
+
>>
|
|
57
|
+
>>
|
|
58
|
+
endobj
|
|
59
|
+
7 0 obj
|
|
60
|
+
<< /Subtype /Type1
|
|
61
|
+
/Type /Font
|
|
62
|
+
/Encoding /WinAnsiEncoding
|
|
63
|
+
/BaseFont /Helvetica
|
|
64
|
+
>>
|
|
65
|
+
endobj
|
|
66
|
+
xref
|
|
67
|
+
0 8
|
|
68
|
+
0000000000 65535 f
|
|
69
|
+
0000000015 00000 n
|
|
70
|
+
0000000071 00000 n
|
|
71
|
+
0000000128 00000 n
|
|
72
|
+
0000000177 00000 n
|
|
73
|
+
0000000503 00000 n
|
|
74
|
+
0000000611 00000 n
|
|
75
|
+
0000000702 00000 n
|
|
76
|
+
trailer
|
|
77
|
+
<< /Size 8
|
|
78
|
+
/Info 1 0 R
|
|
79
|
+
/Root 3 0 R
|
|
80
|
+
>>
|
|
81
|
+
startxref
|
|
82
|
+
799
|
|
83
|
+
%%EOF
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
%PDF-1.3
|
|
2
|
+
%����
|
|
3
|
+
1 0 obj
|
|
4
|
+
<< /Creator (Prawn)
|
|
5
|
+
/Producer (Prawn)
|
|
6
|
+
>>
|
|
7
|
+
endobj
|
|
8
|
+
2 0 obj
|
|
9
|
+
<< /Count 2
|
|
10
|
+
/Kids [5 0 R 7 0 R]
|
|
11
|
+
/Type /Pages
|
|
12
|
+
>>
|
|
13
|
+
endobj
|
|
14
|
+
3 0 obj
|
|
15
|
+
<< /Type /Catalog
|
|
16
|
+
/Pages 2 0 R
|
|
17
|
+
>>
|
|
18
|
+
endobj
|
|
19
|
+
4 0 obj
|
|
20
|
+
<< /Length 195
|
|
21
|
+
>>
|
|
22
|
+
stream
|
|
23
|
+
0.000 0.000 0.000 rg
|
|
24
|
+
0.000 0.000 0.000 RG
|
|
25
|
+
q
|
|
26
|
+
1.000 0.000 0.000 rg
|
|
27
|
+
136.000 286.000 m
|
|
28
|
+
236.000 336.000 l
|
|
29
|
+
336.000 286.000 l
|
|
30
|
+
336.000 186.000 l
|
|
31
|
+
236.000 136.000 l
|
|
32
|
+
136.000 186.000 l
|
|
33
|
+
136.000 286.000 l
|
|
34
|
+
f
|
|
35
|
+
Q
|
|
36
|
+
|
|
37
|
+
endstream
|
|
38
|
+
endobj
|
|
39
|
+
5 0 obj
|
|
40
|
+
<< /Contents 4 0 R
|
|
41
|
+
/Parent 2 0 R
|
|
42
|
+
/MediaBox [0 0 612.0 792.0]
|
|
43
|
+
/Type /Page
|
|
44
|
+
>>
|
|
45
|
+
endobj
|
|
46
|
+
6 0 obj
|
|
47
|
+
<< /Length 195
|
|
48
|
+
>>
|
|
49
|
+
stream
|
|
50
|
+
1.000 0.000 0.000 rg
|
|
51
|
+
0.000 0.000 0.000 RG
|
|
52
|
+
q
|
|
53
|
+
1.000 0.000 0.000 rg
|
|
54
|
+
136.000 286.000 m
|
|
55
|
+
236.000 336.000 l
|
|
56
|
+
336.000 286.000 l
|
|
57
|
+
336.000 186.000 l
|
|
58
|
+
236.000 136.000 l
|
|
59
|
+
136.000 186.000 l
|
|
60
|
+
136.000 286.000 l
|
|
61
|
+
f
|
|
62
|
+
Q
|
|
63
|
+
|
|
64
|
+
endstream
|
|
65
|
+
endobj
|
|
66
|
+
7 0 obj
|
|
67
|
+
<< /Contents 6 0 R
|
|
68
|
+
/Parent 2 0 R
|
|
69
|
+
/MediaBox [0 0 612.0 792.0]
|
|
70
|
+
/Type /Page
|
|
71
|
+
>>
|
|
72
|
+
endobj
|
|
73
|
+
xref
|
|
74
|
+
0 8
|
|
75
|
+
0000000000 65535 f
|
|
76
|
+
0000000015 00000 n
|
|
77
|
+
0000000071 00000 n
|
|
78
|
+
0000000134 00000 n
|
|
79
|
+
0000000183 00000 n
|
|
80
|
+
0000000429 00000 n
|
|
81
|
+
0000000520 00000 n
|
|
82
|
+
0000000766 00000 n
|
|
83
|
+
trailer
|
|
84
|
+
<< /Info 1 0 R
|
|
85
|
+
/Root 3 0 R
|
|
86
|
+
/Size 8
|
|
87
|
+
>>
|
|
88
|
+
startxref
|
|
89
|
+
857
|
|
90
|
+
%%EOF
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
%PDF-1.6
|
|
2
|
+
%????
|
|
3
|
+
1 0 obj
|
|
4
|
+
<< /Creator (Prawn)
|
|
5
|
+
/Producer (Prawn)
|
|
6
|
+
>>
|
|
7
|
+
endobj
|
|
8
|
+
2 0 obj
|
|
9
|
+
<< /Kids [5 0 R]
|
|
10
|
+
/Type /Pages
|
|
11
|
+
/Count 1
|
|
12
|
+
>>
|
|
13
|
+
endobj
|
|
14
|
+
3 0 obj
|
|
15
|
+
<< /Type /Catalog
|
|
16
|
+
/Pages 2 0 R
|
|
17
|
+
>>
|
|
18
|
+
endobj
|
|
19
|
+
4 0 obj
|
|
20
|
+
<< /Length 195
|
|
21
|
+
>>
|
|
22
|
+
stream
|
|
23
|
+
0.000 0.000 0.000 rg
|
|
24
|
+
0.000 0.000 0.000 RG
|
|
25
|
+
q
|
|
26
|
+
1.000 0.000 0.000 rg
|
|
27
|
+
136.000 286.000 m
|
|
28
|
+
236.000 336.000 l
|
|
29
|
+
336.000 286.000 l
|
|
30
|
+
336.000 186.000 l
|
|
31
|
+
236.000 136.000 l
|
|
32
|
+
136.000 186.000 l
|
|
33
|
+
136.000 286.000 l
|
|
34
|
+
f
|
|
35
|
+
Q
|
|
36
|
+
|
|
37
|
+
endstream
|
|
38
|
+
endobj
|
|
39
|
+
5 0 obj
|
|
40
|
+
<< /Contents 4 0 R
|
|
41
|
+
/Type /Page
|
|
42
|
+
/MediaBox [0 0 612.0 792.0]
|
|
43
|
+
/Parent 2 0 R
|
|
44
|
+
>>
|
|
45
|
+
endobj
|
|
46
|
+
xref
|
|
47
|
+
0 6
|
|
48
|
+
0000000000 65535 f
|
|
49
|
+
0000000015 00000 n
|
|
50
|
+
0000000071 00000 n
|
|
51
|
+
0000000128 00000 n
|
|
52
|
+
0000000177 00000 n
|
|
53
|
+
0000000423 00000 n
|
|
54
|
+
trailer
|
|
55
|
+
<< /Info 1 0 R
|
|
56
|
+
/Size 6
|
|
57
|
+
/Root 3 0 R
|
|
58
|
+
>>
|
|
59
|
+
startxref
|
|
60
|
+
514
|
|
61
|
+
%%EOF
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
���C���y�[�W
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# This example demonstrates the basic functionality of Prawn's bounding boxes.
|
|
4
|
+
# Note that top level bounding boxes are positioned relative to the margin_box.
|
|
5
|
+
#
|
|
6
|
+
require "#{File.dirname(__FILE__)}/../example_helper.rb"
|
|
7
|
+
|
|
8
|
+
Prawn::Document.generate("bounding_boxes.pdf") do
|
|
9
|
+
|
|
10
|
+
# Generates a box with a top-left of [100,600] and a top-right of [300,600]
|
|
11
|
+
# The box automatically expands as the cursor moves down the page. Notice
|
|
12
|
+
# that the final coordinates are outlined by a top and bottom line drawn
|
|
13
|
+
# relatively using calculations from +bounds+.
|
|
14
|
+
#
|
|
15
|
+
bounding_box [100,600], :width => 200 do
|
|
16
|
+
move_down 10
|
|
17
|
+
text "The rain in spain falls mainly on the plains " * 5
|
|
18
|
+
move_down 20
|
|
19
|
+
stroke do
|
|
20
|
+
line bounds.top_left, bounds.top_right
|
|
21
|
+
line bounds.bottom_left, bounds.bottom_right
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Generates a bounding box from [100, cursor], [300, cursor - 200],
|
|
26
|
+
# where cursor is the current y position.
|
|
27
|
+
#
|
|
28
|
+
bounding_box [100,cursor], :width => 200, :height => 200 do
|
|
29
|
+
stroke do
|
|
30
|
+
circle_at [100,100], :radius => 100
|
|
31
|
+
line bounds.top_left, bounds.bottom_right
|
|
32
|
+
line bounds.top_right, bounds.bottom_left
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Generates a nested bonding box and strokes its boundaries. Note that
|
|
36
|
+
# this box is anchored relative to its parent bounding box, not the
|
|
37
|
+
# margin_box
|
|
38
|
+
bounding_box [50,150], :width => 100, :height => 100 do
|
|
39
|
+
stroke_bounds
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# This example demonstrates the basic functionality of Prawn's bounding boxes.
|
|
4
|
+
# Note that top level bounding boxes are positioned relative to the margin_box.
|
|
5
|
+
#
|
|
6
|
+
require "#{File.dirname(__FILE__)}/../example_helper.rb"
|
|
7
|
+
|
|
8
|
+
Prawn::Document.generate("indentation.pdf") do
|
|
9
|
+
|
|
10
|
+
text "No indentation"
|
|
11
|
+
indent(20) do
|
|
12
|
+
text "Some indentation"
|
|
13
|
+
# Generates a box with a top-left of [100,600] and a top-right of [300,600]
|
|
14
|
+
# The box automatically expands as the cursor moves down the page. Notice
|
|
15
|
+
# that the final coordinates are outlined by a top and bottom line drawn
|
|
16
|
+
# relatively using calculations from +bounds+.
|
|
17
|
+
#
|
|
18
|
+
bounding_box [100,600], :width => 200 do
|
|
19
|
+
text "A little more indentation"
|
|
20
|
+
indent(20) do
|
|
21
|
+
text "And some more indentation"
|
|
22
|
+
indent(20) do
|
|
23
|
+
text "And some deeper indentation"
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
text "Some indentation"
|
|
28
|
+
end
|
|
29
|
+
indent(10) do
|
|
30
|
+
text "A bit of indentation"
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
text "No indentation"
|
|
34
|
+
end
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# This example is mostly just for fun, and shows how nested bounding boxes
|
|
4
|
+
# can simplify calculations. See the other files in examples/bounding_box
|
|
5
|
+
# for more basic uses.
|
|
6
|
+
|
|
7
|
+
require "#{File.dirname(__FILE__)}/../example_helper.rb"
|
|
8
|
+
|
|
9
|
+
class Array
|
|
10
|
+
def combine(arr)
|
|
11
|
+
output = []
|
|
12
|
+
self.each do |i1|
|
|
13
|
+
arr.each do |i2|
|
|
14
|
+
output += [[i1,i2]]
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
output
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def recurse_bounding_box(pdf, max_depth=5, depth=1)
|
|
22
|
+
box = pdf.bounds
|
|
23
|
+
width = (box.width-15)/2
|
|
24
|
+
height = (box.height-15)/2
|
|
25
|
+
left_top_corners = [5, box.right-width-5].combine [box.top-5, height+5]
|
|
26
|
+
left_top_corners.each do |lt|
|
|
27
|
+
pdf.bounding_box(lt, :width=>width, :height=>height) do
|
|
28
|
+
pdf.stroke_bounds
|
|
29
|
+
recurse_bounding_box(pdf, max_depth, depth+1) if depth<max_depth
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
Prawn::Document.generate("russian_boxes.pdf") do |pdf|
|
|
35
|
+
recurse_bounding_box(pdf)
|
|
36
|
+
end
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
#
|
|
3
|
+
# This example demonstrates how nested bounding boxes work when the outer box is
|
|
4
|
+
# stretchy and includes several inner boxes of different sizes.
|
|
5
|
+
|
|
6
|
+
require "#{File.dirname(__FILE__)}/../example_helper.rb"
|
|
7
|
+
|
|
8
|
+
Prawn::Document.generate("stretched_nesting.pdf", :page_layout => :landscape) do
|
|
9
|
+
|
|
10
|
+
def stroke_dashed_bounds
|
|
11
|
+
dash(1)
|
|
12
|
+
stroke_bounds
|
|
13
|
+
undash
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
bounding_box [100,400], :width => 500 do
|
|
17
|
+
|
|
18
|
+
bounding_box [0, bounds.top], :width => 200, :height => 100 do
|
|
19
|
+
stroke_bounds
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
bounding_box [200, bounds.top], :width => 150 do
|
|
23
|
+
indent(5) do
|
|
24
|
+
text "This box is longest, so it stretches the parent box. \n"*5
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
bounding_box [350, bounds.top], :width => 150 do
|
|
29
|
+
text "I AM SANTA CLAUS!!!"
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
stroke_dashed_bounds
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
bounding_box [100, 250], :width => 500 do
|
|
37
|
+
|
|
38
|
+
bounding_box [0, bounds.top], :width => 100, :height => 100 do
|
|
39
|
+
text "1"
|
|
40
|
+
stroke_bounds
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
bounding_box [125, bounds.top], :width => 50, :height => 25 do
|
|
44
|
+
text "2"
|
|
45
|
+
stroke_bounds
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
bounding_box [200, bounds.top - 50], :width => 50, :height => 125 do
|
|
49
|
+
text "3"
|
|
50
|
+
stroke_bounds
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
bounding_box [350, bounds.top - 100], :width => 20, :height => 20 do
|
|
54
|
+
text "4"
|
|
55
|
+
stroke_bounds
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
bounding_box [400, bounds.height - 150], :width => 100, :height => 100 do
|
|
59
|
+
text "5"
|
|
60
|
+
stroke_bounds
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
stroke_dashed_bounds
|
|
64
|
+
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
require "#{File.dirname(__FILE__)}/../example_helper.rb"
|
|
2
|
+
|
|
3
|
+
builder = Prawn::DocumentBuilder.new
|
|
4
|
+
|
|
5
|
+
builder.line([100,100], [200,200])
|
|
6
|
+
builder.stroke
|
|
7
|
+
builder.start_new_page(:layout => :landscape)
|
|
8
|
+
builder.line([10,100], [300,300])
|
|
9
|
+
builder.stroke
|
|
10
|
+
builder.start_new_page
|
|
11
|
+
builder.text("The rain in Spain falls mainly on the plains. " * 200)
|
|
12
|
+
|
|
13
|
+
document = builder.compile
|
|
14
|
+
document.render_file("simple.pdf")
|
|
15
|
+
|
|
16
|
+
# page 1 automatically created for now
|
|
17
|
+
page_2 = builder.commands.find { |c| c.name == :new_page }
|
|
18
|
+
builder.commands.delete(page_2)
|
|
19
|
+
|
|
20
|
+
last_line = builder.commands.select { |c| c.name == :line }.last
|
|
21
|
+
last_line.params[:point1] = [200,100]
|
|
22
|
+
last_line.params[:point2] = [100,200]
|
|
23
|
+
|
|
24
|
+
text = builder.commands.find { |c| c.name == :text }
|
|
25
|
+
text.params[:contents] = "The rain in Spain is subject to change"
|
|
26
|
+
|
|
27
|
+
document = builder.compile
|
|
28
|
+
document.render_file("simple-mod.pdf")
|