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.
Files changed (244) hide show
  1. data/COPYING +340 -0
  2. data/HACKING +50 -0
  3. data/LICENSE +56 -0
  4. data/README +141 -0
  5. data/Rakefile +52 -0
  6. data/data/encodings/win_ansi.txt +29 -0
  7. data/data/fonts/Action Man.dfont +0 -0
  8. data/data/fonts/Activa.ttf +0 -0
  9. data/data/fonts/Chalkboard.ttf +0 -0
  10. data/data/fonts/Courier-Bold.afm +342 -0
  11. data/data/fonts/Courier-BoldOblique.afm +342 -0
  12. data/data/fonts/Courier-Oblique.afm +342 -0
  13. data/data/fonts/Courier.afm +342 -0
  14. data/data/fonts/DejaVuSans.ttf +0 -0
  15. data/data/fonts/Dustismo_Roman.ttf +0 -0
  16. data/data/fonts/Helvetica-Bold.afm +2827 -0
  17. data/data/fonts/Helvetica-BoldOblique.afm +2827 -0
  18. data/data/fonts/Helvetica-Oblique.afm +3051 -0
  19. data/data/fonts/Helvetica.afm +3051 -0
  20. data/data/fonts/MustRead.html +19 -0
  21. data/data/fonts/Symbol.afm +213 -0
  22. data/data/fonts/Times-Bold.afm +2588 -0
  23. data/data/fonts/Times-BoldItalic.afm +2384 -0
  24. data/data/fonts/Times-Italic.afm +2667 -0
  25. data/data/fonts/Times-Roman.afm +2419 -0
  26. data/data/fonts/ZapfDingbats.afm +225 -0
  27. data/data/fonts/comicsans.ttf +0 -0
  28. data/data/fonts/gkai00mp.ttf +0 -0
  29. data/data/images/16bit.alpha +0 -0
  30. data/data/images/16bit.dat +0 -0
  31. data/data/images/16bit.png +0 -0
  32. data/data/images/arrow.png +0 -0
  33. data/data/images/arrow2.png +0 -0
  34. data/data/images/barcode_issue.png +0 -0
  35. data/data/images/dice.alpha +0 -0
  36. data/data/images/dice.dat +0 -0
  37. data/data/images/dice.png +0 -0
  38. data/data/images/dice_interlaced.png +0 -0
  39. data/data/images/fractal.jpg +0 -0
  40. data/data/images/letterhead.jpg +0 -0
  41. data/data/images/page_white_text.alpha +0 -0
  42. data/data/images/page_white_text.dat +0 -0
  43. data/data/images/page_white_text.png +0 -0
  44. data/data/images/pigs.jpg +0 -0
  45. data/data/images/rails.dat +0 -0
  46. data/data/images/rails.png +0 -0
  47. data/data/images/ruport.png +0 -0
  48. data/data/images/ruport_data.dat +0 -0
  49. data/data/images/ruport_transparent.png +0 -0
  50. data/data/images/ruport_type0.png +0 -0
  51. data/data/images/stef.jpg +0 -0
  52. data/data/images/tru256.bmp +0 -0
  53. data/data/images/web-links.dat +1 -0
  54. data/data/images/web-links.png +0 -0
  55. data/data/pdfs/complex_template.pdf +0 -0
  56. data/data/pdfs/contains_ttf_font.pdf +0 -0
  57. data/data/pdfs/encrypted.pdf +0 -0
  58. data/data/pdfs/hexagon.pdf +61 -0
  59. data/data/pdfs/indirect_reference.pdf +86 -0
  60. data/data/pdfs/nested_pages.pdf +118 -0
  61. data/data/pdfs/resources_as_indirect_object.pdf +83 -0
  62. data/data/pdfs/two_hexagons.pdf +90 -0
  63. data/data/pdfs/version_1_6.pdf +61 -0
  64. data/data/shift_jis_text.txt +1 -0
  65. data/examples/bounding_box/bounding_boxes.rb +43 -0
  66. data/examples/bounding_box/indentation.rb +34 -0
  67. data/examples/bounding_box/russian_boxes.rb +36 -0
  68. data/examples/bounding_box/stretched_nesting.rb +67 -0
  69. data/examples/builder/simple.rb +28 -0
  70. data/examples/example_helper.rb +4 -0
  71. data/examples/general/background.rb +23 -0
  72. data/examples/general/canvas.rb +15 -0
  73. data/examples/general/context_sensitive_headers.rb +37 -0
  74. data/examples/general/float.rb +11 -0
  75. data/examples/general/margin.rb +36 -0
  76. data/examples/general/measurement_units.rb +51 -0
  77. data/examples/general/metadata-info.rb +16 -0
  78. data/examples/general/multi_page_layout.rb +18 -0
  79. data/examples/general/outlines.rb +50 -0
  80. data/examples/general/page_geometry.rb +31 -0
  81. data/examples/general/page_numbering.rb +15 -0
  82. data/examples/general/repeaters.rb +47 -0
  83. data/examples/general/stamp.rb +41 -0
  84. data/examples/general/templates.rb +13 -0
  85. data/examples/graphics/basic_images.rb +23 -0
  86. data/examples/graphics/chunkable.rb +38 -0
  87. data/examples/graphics/cmyk.rb +12 -0
  88. data/examples/graphics/curves.rb +11 -0
  89. data/examples/graphics/hexagon.rb +13 -0
  90. data/examples/graphics/image_fit.rb +15 -0
  91. data/examples/graphics/image_flow.rb +37 -0
  92. data/examples/graphics/image_position.rb +17 -0
  93. data/examples/graphics/line.rb +32 -0
  94. data/examples/graphics/png_types.rb +22 -0
  95. data/examples/graphics/polygons.rb +16 -0
  96. data/examples/graphics/remote_images.rb +12 -0
  97. data/examples/graphics/rounded_polygons.rb +19 -0
  98. data/examples/graphics/rounded_rectangle.rb +20 -0
  99. data/examples/graphics/ruport_style_helpers.rb +19 -0
  100. data/examples/graphics/stroke_bounds.rb +20 -0
  101. data/examples/graphics/stroke_cap_and_join.rb +45 -0
  102. data/examples/graphics/stroke_dash.rb +42 -0
  103. data/examples/graphics/transformations.rb +52 -0
  104. data/examples/graphics/transparency.rb +26 -0
  105. data/examples/m17n/chinese_text_wrapping.rb +17 -0
  106. data/examples/m17n/euro.rb +15 -0
  107. data/examples/m17n/sjis.rb +28 -0
  108. data/examples/m17n/utf8.rb +13 -0
  109. data/examples/m17n/win_ansi_charset.rb +54 -0
  110. data/examples/security/hello_foo.rb +8 -0
  111. data/examples/table/bill.rb +53 -0
  112. data/examples/table/cell.rb +12 -0
  113. data/examples/table/checkerboard.rb +22 -0
  114. data/examples/table/header.rb +14 -0
  115. data/examples/table/inline_format_table.rb +12 -0
  116. data/examples/table/multi_page_table.rb +9 -0
  117. data/examples/table/simple_table.rb +24 -0
  118. data/examples/table/subtable.rb +12 -0
  119. data/examples/table/widths.rb +20 -0
  120. data/examples/text/alignment.rb +18 -0
  121. data/examples/text/character_spacing.rb +12 -0
  122. data/examples/text/dfont.rb +48 -0
  123. data/examples/text/family_based_styling.rb +24 -0
  124. data/examples/text/font_calculations.rb +91 -0
  125. data/examples/text/font_size.rb +33 -0
  126. data/examples/text/hyphenation.rb +45 -0
  127. data/examples/text/indent_paragraphs.rb +22 -0
  128. data/examples/text/inline_format.rb +103 -0
  129. data/examples/text/kerning.rb +30 -0
  130. data/examples/text/rotated.rb +98 -0
  131. data/examples/text/shaped_text_box.rb +31 -0
  132. data/examples/text/simple_text.rb +17 -0
  133. data/examples/text/simple_text_ttf.rb +17 -0
  134. data/examples/text/text_box.rb +88 -0
  135. data/examples/text/text_box_returning_excess.rb +51 -0
  136. data/examples/text/text_flow.rb +67 -0
  137. data/lib/prawn.rb +27 -0
  138. data/lib/prawn/canvas.rb +119 -0
  139. data/lib/prawn/chunkable.rb +37 -0
  140. data/lib/prawn/compatibility.rb +51 -0
  141. data/lib/prawn/core.rb +85 -0
  142. data/lib/prawn/core/annotations.rb +61 -0
  143. data/lib/prawn/core/byte_string.rb +9 -0
  144. data/lib/prawn/core/chunk.rb +36 -0
  145. data/lib/prawn/core/destinations.rb +90 -0
  146. data/lib/prawn/core/document_state.rb +78 -0
  147. data/lib/prawn/core/literal_string.rb +16 -0
  148. data/lib/prawn/core/name_tree.rb +165 -0
  149. data/lib/prawn/core/object_store.rb +236 -0
  150. data/lib/prawn/core/page.rb +179 -0
  151. data/lib/prawn/core/pdf_object.rb +108 -0
  152. data/lib/prawn/core/reference.rb +112 -0
  153. data/lib/prawn/core/text.rb +140 -0
  154. data/lib/prawn/core/text/formatted/arranger.rb +266 -0
  155. data/lib/prawn/core/text/formatted/line_wrap.rb +127 -0
  156. data/lib/prawn/core/text/formatted/wrap.rb +112 -0
  157. data/lib/prawn/core/text/line_wrap.rb +209 -0
  158. data/lib/prawn/core/text/wrap.rb +80 -0
  159. data/lib/prawn/document.rb +573 -0
  160. data/lib/prawn/document/bounding_box.rb +425 -0
  161. data/lib/prawn/document/graphics_state.rb +48 -0
  162. data/lib/prawn/document/internals.rb +170 -0
  163. data/lib/prawn/document/page_geometry.rb +136 -0
  164. data/lib/prawn/document/snapshot.rb +87 -0
  165. data/lib/prawn/document_builder.rb +51 -0
  166. data/lib/prawn/document_builder/command.rb +38 -0
  167. data/lib/prawn/document_builder/constructs.rb +2 -0
  168. data/lib/prawn/document_builder/constructs/flowing_text_construct.rb +18 -0
  169. data/lib/prawn/document_builder/constructs/path_construct.rb +9 -0
  170. data/lib/prawn/document_builder/layout.rb +25 -0
  171. data/lib/prawn/document_builder/modifications.rb +2 -0
  172. data/lib/prawn/document_builder/modifications/layout_modification.rb +9 -0
  173. data/lib/prawn/document_builder/modifications/path_modification.rb +9 -0
  174. data/lib/prawn/encoding.rb +121 -0
  175. data/lib/prawn/errors.rb +94 -0
  176. data/lib/prawn/font.rb +341 -0
  177. data/lib/prawn/font/afm.rb +225 -0
  178. data/lib/prawn/font/dfont.rb +42 -0
  179. data/lib/prawn/font/ttf.rb +350 -0
  180. data/lib/prawn/graphics.rb +325 -0
  181. data/lib/prawn/graphics/cap_style.rb +38 -0
  182. data/lib/prawn/graphics/color.rb +205 -0
  183. data/lib/prawn/graphics/dash.rb +71 -0
  184. data/lib/prawn/graphics/join_style.rb +38 -0
  185. data/lib/prawn/graphics/transformation.rb +156 -0
  186. data/lib/prawn/graphics/transparency.rb +99 -0
  187. data/lib/prawn/images.rb +348 -0
  188. data/lib/prawn/images/jpg.rb +46 -0
  189. data/lib/prawn/images/png.rb +226 -0
  190. data/lib/prawn/measurement_extensions.rb +46 -0
  191. data/lib/prawn/measurements.rb +71 -0
  192. data/lib/prawn/outline.rb +278 -0
  193. data/lib/prawn/repeater.rb +129 -0
  194. data/lib/prawn/security.rb +262 -0
  195. data/lib/prawn/security/arcfour.rb +51 -0
  196. data/lib/prawn/stamp.rb +126 -0
  197. data/lib/prawn/table.rb +421 -0
  198. data/lib/prawn/table/accessors.rb +180 -0
  199. data/lib/prawn/table/cell.rb +350 -0
  200. data/lib/prawn/table/cell/in_table.rb +27 -0
  201. data/lib/prawn/table/cell/subtable.rb +65 -0
  202. data/lib/prawn/table/cell/text.rb +125 -0
  203. data/lib/prawn/text.rb +449 -0
  204. data/lib/prawn/text/box.rb +392 -0
  205. data/lib/prawn/text/formatted.rb +4 -0
  206. data/lib/prawn/text/formatted/box.rb +228 -0
  207. data/lib/prawn/text/formatted/fragment.rb +181 -0
  208. data/lib/prawn/text/formatted/parser.rb +213 -0
  209. data/spec/annotations_spec.rb +90 -0
  210. data/spec/bounding_box_spec.rb +190 -0
  211. data/spec/cell_spec.rb +348 -0
  212. data/spec/destinations_spec.rb +15 -0
  213. data/spec/document_spec.rb +473 -0
  214. data/spec/font_spec.rb +324 -0
  215. data/spec/formatted_text_arranger_spec.rb +426 -0
  216. data/spec/formatted_text_box_spec.rb +756 -0
  217. data/spec/formatted_text_fragment_spec.rb +211 -0
  218. data/spec/graphics_spec.rb +446 -0
  219. data/spec/images_spec.rb +96 -0
  220. data/spec/inline_formatted_text_parser_spec.rb +502 -0
  221. data/spec/jpg_spec.rb +25 -0
  222. data/spec/line_wrap_spec.rb +341 -0
  223. data/spec/measurement_units_spec.rb +23 -0
  224. data/spec/name_tree_spec.rb +112 -0
  225. data/spec/object_store_spec.rb +160 -0
  226. data/spec/outline_spec.rb +269 -0
  227. data/spec/pdf_object_spec.rb +170 -0
  228. data/spec/png_spec.rb +237 -0
  229. data/spec/reference_spec.rb +82 -0
  230. data/spec/repeater_spec.rb +96 -0
  231. data/spec/security_spec.rb +120 -0
  232. data/spec/snapshot_spec.rb +138 -0
  233. data/spec/spec_helper.rb +26 -0
  234. data/spec/stamp_spec.rb +108 -0
  235. data/spec/stroke_styles_spec.rb +163 -0
  236. data/spec/table_spec.rb +598 -0
  237. data/spec/template_spec.rb +158 -0
  238. data/spec/text_at_spec.rb +119 -0
  239. data/spec/text_box_spec.rb +742 -0
  240. data/spec/text_spacing_spec.rb +75 -0
  241. data/spec/text_spec.rb +333 -0
  242. data/spec/text_with_inline_formatting_spec.rb +193 -0
  243. data/spec/transparency_spec.rb +89 -0
  244. 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")