prawn 2.1.0 → 2.2.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 (278) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +2 -0
  3. data.tar.gz.sig +0 -0
  4. data/Gemfile +1 -9
  5. data/Rakefile +12 -22
  6. data/lib/prawn.rb +29 -48
  7. data/lib/prawn/document.rb +148 -123
  8. data/lib/prawn/document/bounding_box.rb +33 -26
  9. data/lib/prawn/document/column_box.rb +5 -7
  10. data/lib/prawn/document/internals.rb +6 -6
  11. data/lib/prawn/document/span.rb +20 -17
  12. data/lib/prawn/encoding.rb +65 -67
  13. data/lib/prawn/errors.rb +10 -7
  14. data/lib/prawn/font.rb +78 -62
  15. data/lib/prawn/font/afm.rb +93 -66
  16. data/lib/prawn/font/dfont.rb +2 -10
  17. data/lib/prawn/font/ttc.rb +34 -0
  18. data/lib/prawn/font/ttf.rb +73 -65
  19. data/lib/prawn/font_metric_cache.rb +9 -8
  20. data/lib/prawn/graphics.rb +110 -70
  21. data/lib/prawn/graphics/blend_mode.rb +7 -8
  22. data/lib/prawn/graphics/cap_style.rb +2 -4
  23. data/lib/prawn/graphics/color.rb +23 -26
  24. data/lib/prawn/graphics/dash.rb +22 -12
  25. data/lib/prawn/graphics/join_style.rb +8 -4
  26. data/lib/prawn/graphics/patterns.rb +185 -96
  27. data/lib/prawn/graphics/transformation.rb +11 -9
  28. data/lib/prawn/graphics/transparency.rb +15 -13
  29. data/lib/prawn/grid.rb +20 -20
  30. data/lib/prawn/image_handler.rb +4 -6
  31. data/lib/prawn/images.rb +22 -15
  32. data/lib/prawn/images/image.rb +0 -1
  33. data/lib/prawn/images/jpg.rb +26 -22
  34. data/lib/prawn/images/png.rb +60 -57
  35. data/lib/prawn/measurement_extensions.rb +8 -9
  36. data/lib/prawn/measurements.rb +14 -15
  37. data/lib/prawn/outline.rb +96 -78
  38. data/lib/prawn/repeater.rb +12 -10
  39. data/lib/prawn/security.rb +66 -48
  40. data/lib/prawn/security/arcfour.rb +1 -3
  41. data/lib/prawn/soft_mask.rb +23 -25
  42. data/lib/prawn/stamp.rb +16 -12
  43. data/lib/prawn/text.rb +59 -45
  44. data/lib/prawn/text/box.rb +9 -8
  45. data/lib/prawn/text/formatted.rb +4 -6
  46. data/lib/prawn/text/formatted/arranger.rb +51 -30
  47. data/lib/prawn/text/formatted/box.rb +112 -88
  48. data/lib/prawn/text/formatted/fragment.rb +10 -15
  49. data/lib/prawn/text/formatted/line_wrap.rb +118 -61
  50. data/lib/prawn/text/formatted/parser.rb +134 -110
  51. data/lib/prawn/text/formatted/wrap.rb +42 -32
  52. data/lib/prawn/transformation_stack.rb +3 -4
  53. data/lib/prawn/utilities.rb +6 -21
  54. data/lib/prawn/version.rb +1 -3
  55. data/lib/prawn/view.rb +4 -2
  56. data/manual/basic_concepts/adding_pages.rb +4 -7
  57. data/manual/basic_concepts/basic_concepts.rb +29 -22
  58. data/manual/basic_concepts/creation.rb +8 -11
  59. data/manual/basic_concepts/cursor.rb +2 -5
  60. data/manual/basic_concepts/measurement.rb +3 -6
  61. data/manual/basic_concepts/origin.rb +3 -6
  62. data/manual/basic_concepts/other_cursor_helpers.rb +9 -12
  63. data/manual/basic_concepts/view.rb +20 -16
  64. data/manual/bounding_box/bounding_box.rb +27 -24
  65. data/manual/bounding_box/bounds.rb +9 -12
  66. data/manual/bounding_box/canvas.rb +2 -5
  67. data/manual/bounding_box/creation.rb +4 -7
  68. data/manual/bounding_box/indentation.rb +12 -15
  69. data/manual/bounding_box/nesting.rb +22 -17
  70. data/manual/bounding_box/russian_boxes.rb +8 -9
  71. data/manual/bounding_box/stretchy.rb +10 -13
  72. data/manual/contents.rb +26 -22
  73. data/manual/cover.rb +22 -20
  74. data/manual/document_and_page_options/background.rb +9 -13
  75. data/manual/document_and_page_options/document_and_page_options.rb +23 -20
  76. data/manual/document_and_page_options/metadata.rb +16 -16
  77. data/manual/document_and_page_options/page_margins.rb +16 -20
  78. data/manual/document_and_page_options/page_size.rb +11 -12
  79. data/manual/document_and_page_options/print_scaling.rb +15 -15
  80. data/manual/example_helper.rb +2 -4
  81. data/manual/graphics/blend_mode.rb +10 -9
  82. data/manual/graphics/circle_and_ellipse.rb +2 -5
  83. data/manual/graphics/color.rb +5 -9
  84. data/manual/graphics/common_lines.rb +5 -8
  85. data/manual/graphics/fill_and_stroke.rb +2 -5
  86. data/manual/graphics/fill_rules.rb +7 -10
  87. data/manual/graphics/gradients.rb +25 -21
  88. data/manual/graphics/graphics.rb +49 -43
  89. data/manual/graphics/helper.rb +10 -9
  90. data/manual/graphics/line_width.rb +5 -7
  91. data/manual/graphics/lines_and_curves.rb +5 -8
  92. data/manual/graphics/polygon.rb +4 -8
  93. data/manual/graphics/rectangle.rb +2 -5
  94. data/manual/graphics/rotate.rb +4 -7
  95. data/manual/graphics/scale.rb +12 -15
  96. data/manual/graphics/soft_masks.rb +1 -4
  97. data/manual/graphics/stroke_cap.rb +3 -6
  98. data/manual/graphics/stroke_dash.rb +9 -12
  99. data/manual/graphics/stroke_join.rb +2 -5
  100. data/manual/graphics/translate.rb +7 -10
  101. data/manual/graphics/transparency.rb +5 -8
  102. data/manual/how_to_read_this_manual.rb +4 -6
  103. data/manual/images/absolute_position.rb +4 -7
  104. data/manual/images/fit.rb +5 -8
  105. data/manual/images/horizontal.rb +6 -9
  106. data/manual/images/images.rb +25 -23
  107. data/manual/images/plain_image.rb +3 -6
  108. data/manual/images/scale.rb +7 -10
  109. data/manual/images/vertical.rb +10 -13
  110. data/manual/images/width_and_height.rb +8 -11
  111. data/manual/layout/boxes.rb +3 -6
  112. data/manual/layout/content.rb +5 -8
  113. data/manual/layout/layout.rb +16 -16
  114. data/manual/layout/simple_grid.rb +4 -7
  115. data/manual/outline/add_subsection_to.rb +18 -21
  116. data/manual/outline/insert_section_after.rb +13 -16
  117. data/manual/outline/outline.rb +19 -17
  118. data/manual/outline/sections_and_pages.rb +15 -18
  119. data/manual/repeatable_content/alternate_page_numbering.rb +19 -17
  120. data/manual/repeatable_content/page_numbering.rb +15 -16
  121. data/manual/repeatable_content/repeatable_content.rb +23 -19
  122. data/manual/repeatable_content/repeater.rb +12 -15
  123. data/manual/repeatable_content/stamp.rb +12 -15
  124. data/manual/security/encryption.rb +7 -10
  125. data/manual/security/permissions.rb +17 -14
  126. data/manual/security/security.rb +17 -16
  127. data/manual/table.rb +2 -4
  128. data/manual/text/alignment.rb +14 -17
  129. data/manual/text/color.rb +10 -11
  130. data/manual/text/column_box.rb +5 -8
  131. data/manual/text/fallback_fonts.rb +23 -21
  132. data/manual/text/font.rb +9 -12
  133. data/manual/text/font_size.rb +11 -14
  134. data/manual/text/font_style.rb +4 -7
  135. data/manual/text/formatted_callbacks.rb +23 -21
  136. data/manual/text/formatted_text.rb +31 -25
  137. data/manual/text/free_flowing_text.rb +18 -21
  138. data/manual/text/inline.rb +16 -19
  139. data/manual/text/kerning_and_character_spacing.rb +12 -15
  140. data/manual/text/leading.rb +5 -8
  141. data/manual/text/line_wrapping.rb +33 -17
  142. data/manual/text/paragraph_indentation.rb +11 -14
  143. data/manual/text/positioned_text.rb +13 -16
  144. data/manual/text/registering_families.rb +16 -19
  145. data/manual/text/rendering_and_color.rb +7 -10
  146. data/manual/text/right_to_left_text.rb +24 -19
  147. data/manual/text/rotation.rb +26 -23
  148. data/manual/text/single_usage.rb +6 -9
  149. data/manual/text/text.rb +56 -52
  150. data/manual/text/text_box_excess.rb +18 -17
  151. data/manual/text/text_box_extensions.rb +16 -15
  152. data/manual/text/text_box_overflow.rb +15 -18
  153. data/manual/text/utf8.rb +9 -12
  154. data/manual/text/win_ansi_charset.rb +18 -19
  155. data/prawn.gemspec +37 -27
  156. data/spec/extensions/encoding_helpers.rb +0 -2
  157. data/spec/manual_spec.rb +33 -0
  158. data/spec/prawn/document/bounding_box_spec.rb +546 -0
  159. data/spec/prawn/document/column_box_spec.rb +73 -0
  160. data/spec/prawn/document/security_spec.rb +173 -0
  161. data/spec/prawn/document_annotations_spec.rb +74 -0
  162. data/spec/prawn/document_destinations_spec.rb +13 -0
  163. data/spec/prawn/document_grid_spec.rb +96 -0
  164. data/spec/prawn/document_reference_spec.rb +25 -0
  165. data/spec/prawn/document_span_spec.rb +34 -0
  166. data/spec/prawn/document_spec.rb +751 -0
  167. data/spec/prawn/font_metric_cache_spec.rb +52 -0
  168. data/spec/prawn/font_spec.rb +513 -0
  169. data/spec/prawn/graphics/blend_mode_spec.rb +61 -0
  170. data/spec/prawn/graphics/transparency_spec.rb +79 -0
  171. data/spec/prawn/graphics_spec.rb +817 -0
  172. data/spec/prawn/graphics_stroke_styles_spec.rb +227 -0
  173. data/spec/{image_handler_spec.rb → prawn/image_handler_spec.rb} +13 -15
  174. data/spec/prawn/images/jpg_spec.rb +18 -0
  175. data/spec/prawn/images/png_spec.rb +281 -0
  176. data/spec/prawn/images_spec.rb +170 -0
  177. data/spec/prawn/measurements_extensions_spec.rb +22 -0
  178. data/spec/prawn/outline_spec.rb +408 -0
  179. data/spec/prawn/repeater_spec.rb +163 -0
  180. data/spec/prawn/soft_mask_spec.rb +72 -0
  181. data/spec/prawn/stamp_spec.rb +168 -0
  182. data/spec/prawn/text/box_spec.rb +1113 -0
  183. data/spec/prawn/text/formatted/arranger_spec.rb +464 -0
  184. data/spec/prawn/text/formatted/box_spec.rb +825 -0
  185. data/spec/prawn/text/formatted/fragment_spec.rb +341 -0
  186. data/spec/prawn/text/formatted/line_wrap_spec.rb +491 -0
  187. data/spec/prawn/text/formatted/parser_spec.rb +667 -0
  188. data/spec/prawn/text_draw_text_spec.rb +147 -0
  189. data/spec/prawn/text_rendering_mode_spec.rb +42 -0
  190. data/spec/prawn/text_spacing_spec.rb +93 -0
  191. data/spec/prawn/text_spec.rb +601 -0
  192. data/spec/prawn/text_with_inline_formatting_spec.rb +33 -0
  193. data/spec/{transformation_stack_spec.rb → prawn/transformation_stack_spec.rb} +21 -20
  194. data/spec/prawn/view_spec.rb +45 -0
  195. data/spec/spec_helper.rb +16 -16
  196. metadata +96 -151
  197. metadata.gz.sig +1 -0
  198. data/data/images/16bit.alpha +0 -0
  199. data/data/images/16bit.color +0 -0
  200. data/data/images/16bit.png +0 -0
  201. data/data/images/arrow.png +0 -0
  202. data/data/images/arrow2.png +0 -0
  203. data/data/images/blend_modes_bottom_layer.jpg +0 -0
  204. data/data/images/blend_modes_top_layer.jpg +0 -0
  205. data/data/images/dice.alpha +0 -0
  206. data/data/images/dice.color +0 -0
  207. data/data/images/dice.png +0 -0
  208. data/data/images/dice_interlaced.png +0 -0
  209. data/data/images/fractal.jpg +0 -0
  210. data/data/images/indexed_color.dat +0 -0
  211. data/data/images/indexed_color.png +0 -0
  212. data/data/images/indexed_transparency.png +0 -0
  213. data/data/images/indexed_transparency_alpha.dat +0 -0
  214. data/data/images/indexed_transparency_color.dat +0 -0
  215. data/data/images/letterhead.jpg +0 -0
  216. data/data/images/license.md +0 -8
  217. data/data/images/page_white_text.alpha +0 -0
  218. data/data/images/page_white_text.color +0 -0
  219. data/data/images/page_white_text.png +0 -0
  220. data/data/images/pigs.jpg +0 -0
  221. data/data/images/prawn.png +0 -0
  222. data/data/images/ruport.png +0 -0
  223. data/data/images/ruport_data.dat +0 -0
  224. data/data/images/ruport_transparent.png +0 -0
  225. data/data/images/ruport_type0.png +0 -0
  226. data/data/images/stef.jpg +0 -0
  227. data/data/images/tru256.bmp +0 -0
  228. data/data/images/web-links.dat +0 -1
  229. data/data/images/web-links.png +0 -0
  230. data/data/pdfs/complex_template.pdf +0 -0
  231. data/data/pdfs/contains_ttf_font.pdf +0 -0
  232. data/data/pdfs/encrypted.pdf +0 -0
  233. data/data/pdfs/form.pdf +1 -819
  234. data/data/pdfs/hexagon.pdf +0 -61
  235. data/data/pdfs/indirect_reference.pdf +0 -86
  236. data/data/pdfs/multipage_template.pdf +0 -127
  237. data/data/pdfs/nested_pages.pdf +0 -118
  238. data/data/pdfs/page_without_mediabox.pdf +0 -193
  239. data/data/pdfs/resources_as_indirect_object.pdf +0 -83
  240. data/data/pdfs/two_hexagons.pdf +0 -90
  241. data/data/pdfs/version_1_6.pdf +0 -61
  242. data/data/shift_jis_text.txt +0 -1
  243. data/spec/acceptance/png_spec.rb +0 -35
  244. data/spec/annotations_spec.rb +0 -67
  245. data/spec/blend_mode_spec.rb +0 -71
  246. data/spec/bounding_box_spec.rb +0 -501
  247. data/spec/column_box_spec.rb +0 -59
  248. data/spec/destinations_spec.rb +0 -13
  249. data/spec/document_spec.rb +0 -738
  250. data/spec/font_metric_cache_spec.rb +0 -52
  251. data/spec/font_spec.rb +0 -475
  252. data/spec/formatted_text_arranger_spec.rb +0 -452
  253. data/spec/formatted_text_box_spec.rb +0 -716
  254. data/spec/formatted_text_fragment_spec.rb +0 -299
  255. data/spec/graphics_spec.rb +0 -705
  256. data/spec/grid_spec.rb +0 -95
  257. data/spec/images_spec.rb +0 -167
  258. data/spec/inline_formatted_text_parser_spec.rb +0 -568
  259. data/spec/jpg_spec.rb +0 -23
  260. data/spec/line_wrap_spec.rb +0 -366
  261. data/spec/measurement_units_spec.rb +0 -22
  262. data/spec/outline_spec.rb +0 -409
  263. data/spec/png_spec.rb +0 -257
  264. data/spec/reference_spec.rb +0 -25
  265. data/spec/repeater_spec.rb +0 -154
  266. data/spec/security_spec.rb +0 -151
  267. data/spec/soft_mask_spec.rb +0 -78
  268. data/spec/span_spec.rb +0 -43
  269. data/spec/stamp_spec.rb +0 -179
  270. data/spec/stroke_styles_spec.rb +0 -208
  271. data/spec/text_at_spec.rb +0 -142
  272. data/spec/text_box_spec.rb +0 -1042
  273. data/spec/text_rendering_mode_spec.rb +0 -45
  274. data/spec/text_spacing_spec.rb +0 -93
  275. data/spec/text_spec.rb +0 -543
  276. data/spec/text_with_inline_formatting_spec.rb +0 -35
  277. data/spec/transparency_spec.rb +0 -91
  278. data/spec/view_spec.rb +0 -42
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Soft masks are used for more complex alpha channel manipulations. You can use
4
2
  # arbitrary drawing functions for creation of soft masks. The resulting alpha
5
3
  # channel is made of greyscale version of the drawing (luminosity channel to be
@@ -11,8 +9,7 @@
11
9
  # only to a part of page you need to enclose drawing instructions in
12
10
  # <code>save_graphics_state</code> block.
13
11
 
14
- require File.expand_path(File.join(File.dirname(__FILE__),
15
- %w[.. example_helper]))
12
+ require_relative '../example_helper'
16
13
 
17
14
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
18
15
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # The cap style defines how the edge of a line or curve will be drawn. There are
4
2
  # three types: <code>:butt</code> (the default), <code>:round</code> and
5
3
  # <code>:projecting_square</code>
@@ -11,9 +9,8 @@
11
9
  #
12
10
  # Just like <code>line_width=</code> the <code>cap_style=</code> method needs an
13
11
  # explicit receiver to work.
14
- #
15
- require File.expand_path(File.join(File.dirname(__FILE__),
16
- %w[.. example_helper]))
12
+
13
+ require_relative '../example_helper'
17
14
 
18
15
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
19
16
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -25,7 +22,7 @@ Prawn::ManualBuilder::Example.generate(filename) do
25
22
  self.cap_style = cap
26
23
 
27
24
  y = 250 - i * 100
28
- stroke_horizontal_line 100, 300, :at => y
25
+ stroke_horizontal_line 100, 300, at: y
29
26
  stroke_circle [400, y], 15
30
27
  end
31
28
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # This sets the dashed pattern for lines and curves. The (dash) length defines
4
2
  # how long each dash will be.
5
3
  #
@@ -12,18 +10,17 @@
12
10
  # Complex dash patterns can be specified by using an array with alternating
13
11
  # dash/gap lengths for the first parameter (note that the <code>:space</code>
14
12
  # option is ignored in this case).
15
- #
16
- require File.expand_path(File.join(File.dirname(__FILE__),
17
- %w[.. example_helper]))
13
+
14
+ require_relative '../example_helper'
18
15
 
19
16
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
20
17
  Prawn::ManualBuilder::Example.generate(filename) do
21
18
  stroke_axis
22
19
 
23
- dash([1, 2, 3, 2, 1, 5], :phase => 6)
24
- stroke_horizontal_line 50, 500, :at => 230
20
+ dash([1, 2, 3, 2, 1, 5], phase: 6)
21
+ stroke_horizontal_line 50, 500, at: 230
25
22
  dash([1, 2, 3, 4, 5, 6, 7, 8])
26
- stroke_horizontal_line 50, 500, :at => 220
23
+ stroke_horizontal_line 50, 500, at: 220
27
24
 
28
25
  base_y = 210
29
26
 
@@ -34,15 +31,15 @@ Prawn::ManualBuilder::Example.generate(filename) do
34
31
 
35
32
  case i % 4
36
33
  when 0 then base_y -= 5
37
- when 1 then phase = length # start with space between dashes
38
- when 2 then space = length * 0.5 # space between dashes half as long as dash
34
+ when 1 then phase = length # start with space between dashes
35
+ when 2 then space = length * 0.5 # space between dashes half as long as dash
39
36
  when 3
40
37
  space = length * 0.5 # space between dashes half as long as dash
41
38
  phase = length # start with space between dashes
42
39
  end
43
40
  base_y -= 5
44
41
 
45
- dash(length, :space => space, :phase => phase)
46
- stroke_horizontal_line 50, 500, :at => base_y - (2 * i)
42
+ dash(length, space: space, phase: phase)
43
+ stroke_horizontal_line 50, 500, at: base_y - (2 * i)
47
44
  end
48
45
  end
@@ -1,14 +1,11 @@
1
- # encoding: utf-8
2
- #
3
1
  # The join style defines how the intersection between two lines is drawn. There
4
2
  # are three types: <code>:miter</code> (the default), <code>:round</code> and
5
3
  # <code>:bevel</code>
6
4
  #
7
5
  # Just like <code>cap_style</code>, the difference between styles is better
8
6
  # seen with thicker lines.
9
- #
10
- require File.expand_path(File.join(File.dirname(__FILE__),
11
- %w[.. example_helper]))
7
+
8
+ require_relative '../example_helper'
12
9
 
13
10
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
14
11
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -1,10 +1,7 @@
1
- # encoding: utf-8
2
- #
3
1
  # This transformation is used to translate the user space. Just provide the
4
2
  # x and y coordinates for the new origin.
5
- #
6
- require File.expand_path(File.join(File.dirname(__FILE__),
7
- %w[.. example_helper]))
3
+
4
+ require_relative '../example_helper'
8
5
 
9
6
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
10
7
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -17,13 +14,13 @@ Prawn::ManualBuilder::Example.generate(filename) do
17
14
  # Draw a point on the new origin
18
15
  fill_circle [0, 0], 2
19
16
  draw_text "New origin after translation to [#{x}, #{y}]",
20
- :at => [5, -2], :size => 8
17
+ at: [5, -2], size: 8
21
18
 
22
19
  stroke_rectangle [100, 75], 100, 50
23
- text_box "Top left corner at [100,75]",
24
- :at => [110, 65],
25
- :width => 80,
26
- :size => 8
20
+ text_box 'Top left corner at [100,75]',
21
+ at: [110, 65],
22
+ width: 80,
23
+ size: 8
27
24
  end
28
25
  end
29
26
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Although the name of the method is <code>transparency</code>, what we are
4
2
  # actually setting is the opacity for fill and stroke. So <code>0</code> means
5
3
  # completely transparent and <code>1.0</code> means completely opaque
@@ -7,20 +5,19 @@
7
5
  # You may call it providing one or two values. The first value sets fill opacity
8
6
  # and the second value sets stroke opacity. If the second value is omitted fill
9
7
  # and stroke will have the same opacity.
10
- #
11
- require File.expand_path(File.join(File.dirname(__FILE__),
12
- %w[.. example_helper]))
8
+
9
+ require_relative '../example_helper'
13
10
 
14
11
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
15
12
  Prawn::ManualBuilder::Example.generate(filename) do
16
13
  stroke_axis
17
14
 
18
15
  self.line_width = 5
19
- fill_color "ff0000"
16
+ fill_color 'ff0000'
20
17
  fill_rectangle [0, 100], 500, 100
21
18
 
22
- fill_color "000000"
23
- stroke_color "ffffff"
19
+ fill_color '000000'
20
+ stroke_color 'ffffff'
24
21
 
25
22
  base_x = 100
26
23
  [[0.5, 1], 0.5, [1, 0.5]].each do |args|
@@ -1,12 +1,10 @@
1
- # encoding: utf-8
2
- #
3
1
  # Prawn manual how to read this manual page.
4
2
 
5
- require_relative "example_helper"
3
+ require_relative 'example_helper'
6
4
 
7
5
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
8
6
  Prawn::ManualBuilder::Example.generate(filename) do
9
- header("How to read this manual")
7
+ header('How to read this manual')
10
8
 
11
9
  prose <<-END_TEXT
12
10
  This manual is a collection of examples categorized by theme and organized from the least to the most complex. While it covers most of the common use cases it is not a comprehensive guide.
@@ -21,12 +19,12 @@ Prawn::ManualBuilder::Example.generate(filename) do
21
19
  END_TEXT
22
20
 
23
21
  move_down(Prawn::ManualBuilder::Example::BOX_MARGIN)
24
- header("Reading the examples")
22
+ header('Reading the examples')
25
23
 
26
24
  prose <<-END_TEXT
27
25
  The title of each example is the relative path from the Prawn source manual/ folder.
28
26
 
29
- The first body of text is the introductory text for the example. Generaly it is a short description of the features illustrated by the example.
27
+ The first body of text is the introductory text for the example. Generally it is a short description of the features illustrated by the example.
30
28
 
31
29
  Next comes the example source code block in fixed width font.
32
30
 
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # One of the options that the <code>image</code> method accepts is
4
2
  # <code>:at</code>. If you've read some of the graphics examples you are
5
3
  # probably already familiar with it. Just provide it the upper-left corner where
@@ -8,16 +6,15 @@
8
6
  # While sometimes useful this option won't be practical. Notice that the cursor
9
7
  # won't be moved after the image is rendered and there is nothing forbidding the
10
8
  # text to overlap with the image.
11
- #
12
- require File.expand_path(File.join(File.dirname(__FILE__),
13
- %w[.. example_helper]))
9
+
10
+ require_relative '../example_helper'
14
11
 
15
12
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
16
13
  Prawn::ManualBuilder::Example.generate(filename) do
17
14
  y_position = cursor
18
15
  text "The image won't go below this line of text."
19
16
 
20
- image "#{Prawn::DATADIR}/images/fractal.jpg", :at => [200, y_position]
17
+ image "#{Prawn::DATADIR}/images/fractal.jpg", at: [200, y_position]
21
18
 
22
- text "And this line of text will go just below the previous one."
19
+ text 'And this line of text will go just below the previous one.'
23
20
  end
@@ -1,21 +1,18 @@
1
- # encoding: utf-8
2
- #
3
1
  # <code>:fit</code> option is useful when you want the image to have the
4
2
  # maximum size within a container preserving the aspect ratio without
5
3
  # overlapping.
6
4
  #
7
5
  # Just provide the container width and height pair.
8
- #
9
- require File.expand_path(File.join(File.dirname(__FILE__),
10
- %w[.. example_helper]))
6
+
7
+ require_relative '../example_helper'
11
8
 
12
9
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
13
10
  Prawn::ManualBuilder::Example.generate(filename) do
14
11
  size = 300
15
12
 
16
- text "Using the fit option"
17
- bounding_box([0, cursor], :width => size, :height => size) do
18
- image "#{Prawn::DATADIR}/images/pigs.jpg", :fit => [size, size]
13
+ text 'Using the fit option'
14
+ bounding_box([0, cursor], width: size, height: size) do
15
+ image "#{Prawn::DATADIR}/images/pigs.jpg", fit: [size, size]
19
16
  stroke_bounds
20
17
  end
21
18
  end
@@ -1,25 +1,22 @@
1
- # encoding: utf-8
2
- #
3
1
  # The image may be positioned relatively to the current bounding box. The
4
2
  # horizontal position may be set with the <code>:position</code> option.
5
3
  #
6
4
  # It may be <code>:left</code>, <code>:center</code>, <code>:right</code> or a
7
5
  # number representing an x-offset from the left boundary.
8
- #
9
- require File.expand_path(File.join(File.dirname(__FILE__),
10
- %w[.. example_helper]))
6
+
7
+ require_relative '../example_helper'
11
8
 
12
9
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
13
10
  Prawn::ManualBuilder::Example.generate(filename) do
14
- bounding_box([50, cursor], :width => 400, :height => 450) do
11
+ bounding_box([50, cursor], width: 400, height: 450) do
15
12
  stroke_bounds
16
13
 
17
14
  [:left, :center, :right].each do |position|
18
15
  text "Image aligned to the #{position}."
19
- image "#{Prawn::DATADIR}/images/stef.jpg", :position => position
16
+ image "#{Prawn::DATADIR}/images/stef.jpg", position: position
20
17
  end
21
18
 
22
- text "The next image has a 50 point offset from the left boundary"
23
- image "#{Prawn::DATADIR}/images/stef.jpg", :position => 50
19
+ text 'The next image has a 50 point offset from the left boundary'
20
+ image "#{Prawn::DATADIR}/images/stef.jpg", position: 50
24
21
  end
25
22
  end
@@ -1,37 +1,39 @@
1
- # encoding: utf-8
2
- #
3
1
  # Examples for embedding images.
4
- #
5
- require File.expand_path(File.join(File.dirname(__FILE__),
6
- %w[.. example_helper]))
7
2
 
8
- Prawn::ManualBuilder::Example.generate("images.pdf", :page_size => "FOLIO") do
9
- package "images" do |p|
10
- p.section "Basics" do |s|
11
- s.example "plain_image"
12
- s.example "absolute_position"
3
+ require_relative '../example_helper'
4
+
5
+ Prawn::ManualBuilder::Example.generate('images.pdf', page_size: 'FOLIO') do
6
+ package 'images' do |p|
7
+ p.section 'Basics' do |s|
8
+ s.example 'plain_image'
9
+ s.example 'absolute_position'
13
10
  end
14
11
 
15
- p.section "Relative Positioning" do |s|
16
- s.example "horizontal"
17
- s.example "vertical"
12
+ p.section 'Relative Positioning' do |s|
13
+ s.example 'horizontal'
14
+ s.example 'vertical'
18
15
  end
19
16
 
20
- p.section "Size" do |s|
21
- s.example "width_and_height"
22
- s.example "scale"
23
- s.example "fit"
17
+ p.section 'Size' do |s|
18
+ s.example 'width_and_height'
19
+ s.example 'scale'
20
+ s.example 'fit'
24
21
  end
25
22
 
26
23
  p.intro do
27
- prose("Embedding images on PDF documents is fairly easy. Prawn supports both JPG and PNG images.
24
+ prose <<-END
25
+ Embedding images on PDF documents is fairly easy. Prawn supports both
26
+ JPG and PNG images.
28
27
 
29
- The examples show:")
28
+ The examples show:
29
+ END
30
30
 
31
- list( "How to add an image to a page",
32
- "How place the image on a specific position",
33
- "How to configure the image dimensions by setting the width and height or by scaling it"
34
- )
31
+ list(
32
+ 'How to add an image to a page',
33
+ 'How place the image on a specific position',
34
+ 'How to configure the image dimensions by setting the width and '\
35
+ 'height or by scaling it'
36
+ )
35
37
  end
36
38
  end
37
39
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # To embed images onto your PDF file use the <code>image</code> method.
4
2
  # It accepts the file path of the image to be loaded and some optional
5
3
  # arguments.
@@ -7,12 +5,11 @@
7
5
  # If only the image path is provided the image will be rendered starting on
8
6
  # the cursor position. No manipulation is done with the image even if it doesn't
9
7
  # fit entirely on the page like the following snippet.
10
- #
11
- require File.expand_path(File.join(File.dirname(__FILE__),
12
- %w[.. example_helper]))
8
+
9
+ require_relative '../example_helper'
13
10
 
14
11
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
15
12
  Prawn::ManualBuilder::Example.generate(filename) do
16
- text "The image will go right below this line of text."
13
+ text 'The image will go right below this line of text.'
17
14
  image "#{Prawn::DATADIR}/images/pigs.jpg"
18
15
  end
@@ -1,22 +1,19 @@
1
- # encoding: utf-8
2
- #
3
1
  # To scale an image use the <code>:scale</code> option.
4
2
  #
5
3
  # It scales the image proportionally given the provided value.
6
- #
7
- require File.expand_path(File.join(File.dirname(__FILE__),
8
- %w[.. example_helper]))
4
+
5
+ require_relative '../example_helper'
9
6
 
10
7
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
11
8
  Prawn::ManualBuilder::Example.generate(filename) do
12
- text "Normal size"
9
+ text 'Normal size'
13
10
  image "#{Prawn::DATADIR}/images/stef.jpg"
14
11
  move_down 20
15
12
 
16
- text "Scaled to 50%"
17
- image "#{Prawn::DATADIR}/images/stef.jpg", :scale => 0.5
13
+ text 'Scaled to 50%'
14
+ image "#{Prawn::DATADIR}/images/stef.jpg", scale: 0.5
18
15
  move_down 20
19
16
 
20
- text "Scaled to 200%"
21
- image "#{Prawn::DATADIR}/images/stef.jpg", :scale => 2
17
+ text 'Scaled to 200%'
18
+ image "#{Prawn::DATADIR}/images/stef.jpg", scale: 2
22
19
  end
@@ -1,28 +1,25 @@
1
- # encoding: utf-8
2
- #
3
1
  # To set the vertical position of an image use the <code>:vposition</code>
4
2
  # option.
5
3
  #
6
4
  # It may be <code>:top</code>, <code>:center</code>, <code>:bottom</code> or a
7
5
  # number representing the y-offset from the top boundary.
8
- #
9
- require File.expand_path(File.join(File.dirname(__FILE__),
10
- %w[.. example_helper]))
6
+
7
+ require_relative '../example_helper'
11
8
 
12
9
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
13
10
  Prawn::ManualBuilder::Example.generate(filename) do
14
- bounding_box([0, cursor], :width => 500, :height => 450) do
11
+ bounding_box([0, cursor], width: 500, height: 450) do
15
12
  stroke_bounds
16
13
 
17
14
  [:top, :center, :bottom].each do |vposition|
18
- text "Image vertically aligned to the #{vposition}.", :valign => vposition
19
- image "#{Prawn::DATADIR}/images/stef.jpg", :position => 250,
20
- :vposition => vposition
15
+ text "Image vertically aligned to the #{vposition}.", valign: vposition
16
+ image "#{Prawn::DATADIR}/images/stef.jpg",
17
+ position: 250, vposition: vposition
21
18
  end
22
19
 
23
- text_box "The next image has a 100 point offset from the top boundary",
24
- :at => [bounds.width - 110, bounds.top - 10], :width => 100
25
- image "#{Prawn::DATADIR}/images/stef.jpg", :position => :right,
26
- :vposition => 100
20
+ text_box 'The next image has a 100 point offset from the top boundary',
21
+ at: [bounds.width - 110, bounds.top - 10], width: 100
22
+ image "#{Prawn::DATADIR}/images/stef.jpg",
23
+ position: :right, vposition: 100
27
24
  end
28
25
  end