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,37 +1,39 @@
1
- # encoding: utf-8
2
- #
3
1
  # Prawn enables the declaration of fallback fonts for those glyphs that may not
4
2
  # be present in the desired font. Use the <code>:fallback_fonts</code> option
5
3
  # with any of the text or text box methods, or set fallback_fonts document-wide.
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
9
  file = "#{Prawn::DATADIR}/fonts/gkai00mp.ttf"
13
- font_families["Kai"] = {
14
- :normal => { :file => file, :font => "Kai" }
10
+ font_families['Kai'] = {
11
+ normal: { file: file, font: 'Kai' }
15
12
  }
16
13
 
17
14
  file = "#{Prawn::DATADIR}/fonts/Panic+Sans.dfont"
18
- font_families["Panic Sans"] = {
19
- :normal => { :file => file, :font => "PanicSans" }
15
+ font_families['Panic Sans'] = {
16
+ normal: { file: file, font: 'PanicSans' }
20
17
  }
21
18
 
22
- font("Panic Sans") do
23
- text("When fallback fonts are included, each glyph will be rendered " +
24
- "using the first font that includes the glyph, starting with the " +
25
- "current font and then moving through the fallback fonts from left " +
26
- "to right." +
27
- "\n\n" +
28
- "hello ƒ 你好\n再见 ƒ goodbye",
29
- :fallback_fonts => ["Times-Roman", "Kai"])
19
+ font('Panic Sans') do
20
+ text(
21
+ 'When fallback fonts are included, each glyph will be rendered ' \
22
+ 'using the first font that includes the glyph, starting with the ' \
23
+ 'current font and then moving through the fallback fonts from left ' \
24
+ 'to right.' \
25
+ "\n\n" \
26
+ "hello ƒ 你好\n再见 ƒ goodbye",
27
+ fallback_fonts: ['Times-Roman', 'Kai']
28
+ )
30
29
  end
31
30
  move_down 20
32
31
 
33
- formatted_text([ { :text => "Fallback fonts can even override" },
34
- { :text => "fragment fonts (你好)", :font => "Times-Roman" }
35
- ],
36
- :fallback_fonts => ["Times-Roman", "Kai"])
32
+ formatted_text(
33
+ [
34
+ { text: 'Fallback fonts can even override' },
35
+ { text: 'fragment fonts (你好)', font: 'Times-Roman' }
36
+ ],
37
+ fallback_fonts: ['Times-Roman', 'Kai']
38
+ )
37
39
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # The <code>font</code> method can be used in three different ways.
4
2
  #
5
3
  # If we don't pass it any arguments it will return the current font being used
@@ -12,30 +10,29 @@
12
10
  # specified font will only be used to render text inside the block.
13
11
  #
14
12
  # The default font is Helvetica.
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
  text "Let's see which font we are using: #{font.inspect}"
22
19
 
23
20
  move_down 20
24
- font "Times-Roman"
25
- text "Written in Times."
21
+ font 'Times-Roman'
22
+ text 'Written in Times.'
26
23
 
27
24
  move_down 20
28
- font("Courier") do
29
- text "Written in Courier because we are inside the block."
25
+ font('Courier') do
26
+ text 'Written in Courier because we are inside the block.'
30
27
  end
31
28
 
32
29
  move_down 20
33
- text "Written in Times again as we left the previous block."
30
+ text 'Written in Times again as we left the previous block.'
34
31
 
35
32
  move_down 20
36
33
  text "Let's see which font we are using again: #{font.inspect}"
37
34
 
38
35
  move_down 20
39
- font "Helvetica"
40
- text "Back to normal."
36
+ font 'Helvetica'
37
+ text 'Back to normal.'
41
38
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # The <code>font_size</code> method works just like the <code>font</code>
4
2
  # method.
5
3
  #
@@ -10,9 +8,8 @@
10
8
  # option to the text methods.
11
9
  #
12
10
  # The default font size is <code>12</code>.
13
- #
14
- require File.expand_path(File.join(File.dirname(__FILE__),
15
- %w[.. example_helper]))
11
+
12
+ require_relative '../example_helper'
16
13
 
17
14
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
18
15
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -20,26 +17,26 @@ Prawn::ManualBuilder::Example.generate(filename) do
20
17
 
21
18
  move_down 10
22
19
  font_size 16
23
- text "Yeah, something bigger!"
20
+ text 'Yeah, something bigger!'
24
21
 
25
22
  move_down 10
26
- font_size(25) { text "Even bigger!" }
23
+ font_size(25) { text 'Even bigger!' }
27
24
 
28
25
  move_down 10
29
- text "Back to 16 again."
26
+ text 'Back to 16 again.'
30
27
 
31
28
  move_down 10
32
- text "Single line on 20 using the :size option.", :size => 20
29
+ text 'Single line on 20 using the :size option.', size: 20
33
30
 
34
31
  move_down 10
35
- text "Back to 16 once more."
32
+ text 'Back to 16 once more.'
36
33
 
37
34
  move_down 10
38
- font("Courier", :size => 10) do
39
- text "Yeah, using Courier 10 courtesy of the font method."
35
+ font('Courier', size: 10) do
36
+ text 'Yeah, using Courier 10 courtesy of the font method.'
40
37
  end
41
38
 
42
39
  move_down 10
43
- font("Helvetica", :size => 12)
44
- text "Back to normal"
40
+ font('Helvetica', size: 12)
41
+ text 'Back to normal'
45
42
  end
@@ -1,22 +1,19 @@
1
- # encoding: utf-8
2
- #
3
1
  # Most font families come with some styles other than normal. Most common are
4
2
  # <code>bold</code>, <code>italic</code> and <code>bold_italic</code>.
5
3
  #
6
4
  # The style can be set the using the <code>:style</code> option, with either the
7
5
  # <code>font</code> method which will set the font and style for rest of the
8
6
  # document, or with the inline text methods.
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
15
- ["Courier", "Helvetica", "Times-Roman"].each do |example_font|
12
+ ['Courier', 'Helvetica', 'Times-Roman'].each do |example_font|
16
13
  move_down 20
17
14
 
18
15
  [:bold, :bold_italic, :italic, :normal].each do |style|
19
- font example_font, :style => style
16
+ font example_font, style: style
20
17
  text "I'm writing in #{example_font} (#{style})"
21
18
  end
22
19
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # The <code>:callback</code> option is also available for the formatted text
4
2
  # methods.
5
3
  #
@@ -10,37 +8,40 @@
10
8
  #
11
9
  # This example defines two new callback classes and provide callback objects
12
10
  # for the formatted_text
13
- #
14
- require File.expand_path(File.join(File.dirname(__FILE__),
15
- %w[.. example_helper]))
11
+
12
+ require_relative '../example_helper'
16
13
 
17
14
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
18
15
  Prawn::ManualBuilder::Example.generate(filename) do
19
16
  class HighlightCallback
20
17
  def initialize(options)
21
- @color = options[:color]
18
+ @color = options[:color]
22
19
  @document = options[:document]
23
20
  end
24
21
 
25
22
  def render_behind(fragment)
26
- original_color = @document.fill_color
23
+ original_color = @document.fill_color
27
24
  @document.fill_color = @color
28
- @document.fill_rectangle(fragment.top_left,
29
- fragment.width,
30
- fragment.height)
25
+ @document.fill_rectangle(
26
+ fragment.top_left,
27
+ fragment.width,
28
+ fragment.height
29
+ )
31
30
  @document.fill_color = original_color
32
31
  end
33
32
  end
34
33
 
35
34
  class ConnectedBorderCallback
36
35
  def initialize(options)
37
- @radius = options[:radius]
36
+ @radius = options[:radius]
38
37
  @document = options[:document]
39
38
  end
40
39
 
41
40
  def render_in_front(fragment)
42
- @document.stroke_polygon(fragment.top_left, fragment.top_right,
43
- fragment.bottom_right, fragment.bottom_left)
41
+ @document.stroke_polygon(
42
+ fragment.top_left, fragment.top_right,
43
+ fragment.bottom_right, fragment.bottom_left
44
+ )
44
45
 
45
46
  @document.fill_circle(fragment.top_left, @radius)
46
47
  @document.fill_circle(fragment.top_right, @radius)
@@ -49,13 +50,14 @@ Prawn::ManualBuilder::Example.generate(filename) do
49
50
  end
50
51
  end
51
52
 
52
- highlight = HighlightCallback.new(:color => 'ffff00', :document => self)
53
- border = ConnectedBorderCallback.new(:radius => 2.5, :document => self)
53
+ highlight = HighlightCallback.new(color: 'ffff00', document: self)
54
+ border = ConnectedBorderCallback.new(radius: 2.5, document: self)
54
55
 
55
- formatted_text [ { :text => "hello", :callback => highlight },
56
- { :text => " " },
57
- { :text => "world", :callback => border },
58
- { :text => " " },
59
- { :text => "hello world", :callback => [highlight, border] }
60
- ], :size => 20
56
+ formatted_text [
57
+ { text: 'hello', callback: highlight },
58
+ { text: ' ' },
59
+ { text: 'world', callback: border },
60
+ { text: ' ' },
61
+ { text: 'hello world', callback: [highlight, border] }
62
+ ], size: 20
61
63
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # There are two other text methods available: <code>formatted_text</code> and
4
2
  # <code>formatted_text_box</code>.
5
3
  #
@@ -20,31 +18,39 @@
20
18
  # <code>:link</code> (an URL to create a link), and <code>:local</code>
21
19
  # (a link to a local file).
22
20
 
23
- require File.expand_path(File.join(File.dirname(__FILE__),
24
- %w[.. example_helper]))
21
+ require_relative '../example_helper'
25
22
 
26
23
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
27
24
  Prawn::ManualBuilder::Example.generate(filename) do
28
- formatted_text [ { :text => "Some bold. ", :styles => [:bold] },
29
- { :text => "Some italic. ", :styles => [:italic] },
30
- { :text => "Bold italic. ", :styles => [:bold, :italic] },
31
- { :text => "Bigger Text. ", :size => 20 },
32
- { :text => "More spacing. ", :character_spacing => 3 },
33
- { :text => "Different Font. ", :font => "Courier" },
34
- { :text => "Some coloring. ", :color => "FF00FF" },
35
- { :text => "Link to the wiki. ",
36
- :color => "0000FF",
37
- :link => "https://github.com/prawnpdf/prawn/wiki" },
38
- { :text => "Link to a local file. ",
39
- :color => "0000FF",
40
- :local => "./local_file.txt" }
41
- ]
25
+ formatted_text [
26
+ { text: 'Some bold. ', styles: [:bold] },
27
+ { text: 'Some italic. ', styles: [:italic] },
28
+ { text: 'Bold italic. ', styles: [:bold, :italic] },
29
+ { text: 'Bigger Text. ', size: 20 },
30
+ { text: 'More spacing. ', character_spacing: 3 },
31
+ { text: 'Different Font. ', font: 'Courier' },
32
+ { text: 'Some coloring. ', color: 'FF00FF' },
33
+ {
34
+ text: 'Link to the wiki. ',
35
+ color: '0000FF',
36
+ link: 'https://github.com/prawnpdf/prawn/wiki'
37
+ },
38
+ {
39
+ text: 'Link to a local file. ',
40
+ color: '0000FF',
41
+ local: './local_file.txt'
42
+ }
43
+ ]
42
44
 
43
- formatted_text_box [ { :text => "Just your regular" },
44
- { :text => " text_box ", :font => "Courier" },
45
- { :text => "with some additional formatting options " +
46
- "added to the mix.",
47
- :color => [50, 100, 0, 0],
48
- :styles => [:italic] }
49
- ], :at => [100, 100], :width => 200, :height => 100
45
+ formatted_text_box(
46
+ [
47
+ { text: 'Just your regular' },
48
+ { text: ' text_box ', font: 'Courier' },
49
+ {
50
+ text: 'with some additional formatting options added to the mix.',
51
+ color: [50, 100, 0, 0], styles: [:italic]
52
+ }
53
+ ],
54
+ at: [100, 100], width: 200, height: 100
55
+ )
50
56
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Text rendering can be as simple or as complex as you want.
4
2
  #
5
3
  # This example covers the most basic method: <code>text</code>. It is meant for
@@ -12,40 +10,39 @@
12
10
  #
13
11
  # This example also shows text flowing across pages following the margin box and
14
12
  # other bounding boxes.
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
  move_cursor_to 50
22
- text "This text will flow to the next page. " * 20
19
+ text 'This text will flow to the next page. ' * 20
23
20
 
24
21
  y_position = cursor - 50
25
- bounding_box([0, y_position], :width => 200, :height => 150) do
22
+ bounding_box([0, y_position], width: 200, height: 150) do
26
23
  transparent(0.5) { stroke_bounds }
27
- text "This text will flow along this bounding box we created for it. " * 5
24
+ text 'This text will flow along this bounding box we created for it. ' * 5
28
25
  end
29
26
 
30
- bounding_box([300, y_position], :width => 200, :height => 150) do
27
+ bounding_box([300, y_position], width: 200, height: 150) do
31
28
  transparent(0.5) { stroke_bounds } # This will stroke on one page
32
29
 
33
- text "Now look what happens when the free flowing text reaches the end " +
34
- "of a bounding box that is narrower than the margin box." +
35
- " . " * 200 +
36
- "It continues on the next page as if the previous bounding box " +
37
- "was cloned. If we want it to have the same border as the one on " +
38
- "the previous page we will need to stroke the boundaries again."
30
+ text 'Now look what happens when the free flowing text reaches the end ' \
31
+ 'of a bounding box that is narrower than the margin box.' +
32
+ ' . ' * 200 +
33
+ 'It continues on the next page as if the previous bounding box ' \
34
+ 'was cloned. If we want it to have the same border as the one on ' \
35
+ 'the previous page we will need to stroke the boundaries again.'
39
36
 
40
37
  transparent(0.5) { stroke_bounds } # And this will stroke on the next
41
38
  end
42
39
 
43
40
  move_cursor_to 200
44
- span(350, :position => :center) do
45
- text "Span is a different kind of bounding box as it lets the text " +
46
- "flow gracefully onto the next page. It doesn't matter if the text " +
47
- "started on the middle of the previous page, when it flows to the " +
48
- "next page it will start at the beginning." + " _ " * 500 +
49
- "I told you it would start on the beginning of this page."
41
+ span(350, position: :center) do
42
+ text 'Span is a different kind of bounding box as it lets the text ' \
43
+ "flow gracefully onto the next page. It doesn't matter if the text " \
44
+ 'started on the middle of the previous page, when it flows to the ' \
45
+ 'next page it will start at the beginning.' + ' _ ' * 500 +
46
+ 'I told you it would start on the beginning of this page.'
50
47
  end
51
48
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Inline formatting gives you the option to format specific portions of a text.
4
2
  # It uses HTML-esque syntax inside the text string. Supported tags are:
5
3
  # <code>b</code> (bold), <code>i</code> (italic), <code>u</code> (underline),
@@ -10,32 +8,31 @@
10
8
  # <code>size</code>, <code>name</code>, and <code>character_spacing</code>;
11
9
  # <code>color</code> accepts <code>rgb</code> and <code>cmyk</code>;
12
10
  # <code>link</code> accepts <code>href</code> for external links.
13
- #
14
- require File.expand_path(File.join(File.dirname(__FILE__),
15
- %w[.. example_helper]))
11
+
12
+ require_relative '../example_helper'
16
13
 
17
14
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
18
15
  Prawn::ManualBuilder::Example.generate(filename) do
19
16
  %w[b i u strikethrough sub sup].each do |tag|
20
- text "Just your regular text <#{tag}>except this portion</#{tag}> " +
21
- "is using the #{tag} tag",
22
- :inline_format => true
17
+ text "Just your regular text <#{tag}>except this portion</#{tag}> " \
18
+ "is using the #{tag} tag",
19
+ inline_format: true
23
20
  move_down 10
24
21
  end
25
22
 
26
- text "This <font size='18'>line</font> uses " +
27
- "<font name='Courier'>all the font tag</font> attributes in " +
28
- "<font character_spacing='2'>a single line</font>. ",
29
- :inline_format => true
23
+ text "This <font size='18'>line</font> uses " \
24
+ "<font name='Courier'>all the font tag</font> attributes in " \
25
+ "<font character_spacing='2'>a single line</font>. ",
26
+ inline_format: true
30
27
  move_down 10
31
28
 
32
- text "Coloring in <color rgb='FF00FF'>both RGB</color> " +
33
- "<color c='100' m='0' y='0' k='0'>and CMYK</color>",
34
- :inline_format => true
29
+ text "Coloring in <color rgb='FF00FF'>both RGB</color> " \
30
+ "<color c='100' m='0' y='0' k='0'>and CMYK</color>",
31
+ inline_format: true
35
32
  move_down 10
36
33
 
37
- text "This an external link to the " +
38
- "<u><link href='https://github.com/prawnpdf/prawn/wiki'>Prawn wiki" +
39
- "</link></u>",
40
- :inline_format => true
34
+ text 'This an external link to the ' \
35
+ "<u><link href='https://github.com/prawnpdf/prawn/wiki'>Prawn wiki" \
36
+ '</link></u>',
37
+ inline_format: true
41
38
  end