prawn 2.0.2 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (277) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/GPLv2 +20 -21
  5. data/Gemfile +3 -9
  6. data/Rakefile +20 -23
  7. data/lib/prawn.rb +37 -49
  8. data/lib/prawn/document.rb +181 -133
  9. data/lib/prawn/document/bounding_box.rb +41 -29
  10. data/lib/prawn/document/column_box.rb +7 -7
  11. data/lib/prawn/document/internals.rb +18 -8
  12. data/lib/prawn/document/span.rb +21 -16
  13. data/lib/prawn/encoding.rb +69 -68
  14. data/lib/prawn/errors.rb +12 -7
  15. data/lib/prawn/font.rb +115 -69
  16. data/lib/prawn/font_metric_cache.rb +14 -8
  17. data/lib/prawn/{font → fonts}/afm.rb +102 -68
  18. data/lib/prawn/{font → fonts}/dfont.rb +5 -11
  19. data/lib/prawn/fonts/otf.rb +11 -0
  20. data/lib/prawn/fonts/ttc.rb +36 -0
  21. data/lib/prawn/{font → fonts}/ttf.rb +87 -68
  22. data/lib/prawn/graphics.rb +120 -80
  23. data/lib/prawn/graphics/blend_mode.rb +65 -0
  24. data/lib/prawn/graphics/cap_style.rb +3 -3
  25. data/lib/prawn/graphics/color.rb +27 -25
  26. data/lib/prawn/graphics/dash.rb +23 -11
  27. data/lib/prawn/graphics/join_style.rb +9 -3
  28. data/lib/prawn/graphics/patterns.rb +197 -67
  29. data/lib/prawn/graphics/transformation.rb +17 -8
  30. data/lib/prawn/graphics/transparency.rb +17 -13
  31. data/lib/prawn/grid.rb +48 -47
  32. data/lib/prawn/image_handler.rb +5 -5
  33. data/lib/prawn/images.rb +39 -30
  34. data/lib/prawn/images/image.rb +2 -1
  35. data/lib/prawn/images/jpg.rb +28 -22
  36. data/lib/prawn/images/png.rb +107 -66
  37. data/lib/prawn/measurement_extensions.rb +10 -9
  38. data/lib/prawn/measurements.rb +19 -15
  39. data/lib/prawn/outline.rb +97 -77
  40. data/lib/prawn/repeater.rb +14 -10
  41. data/lib/prawn/security.rb +81 -61
  42. data/lib/prawn/security/arcfour.rb +2 -2
  43. data/lib/prawn/soft_mask.rb +26 -26
  44. data/lib/prawn/stamp.rb +20 -13
  45. data/lib/prawn/text.rb +68 -52
  46. data/lib/prawn/text/box.rb +11 -8
  47. data/lib/prawn/text/formatted.rb +5 -5
  48. data/lib/prawn/text/formatted/arranger.rb +78 -49
  49. data/lib/prawn/text/formatted/box.rb +134 -100
  50. data/lib/prawn/text/formatted/fragment.rb +11 -14
  51. data/lib/prawn/text/formatted/line_wrap.rb +121 -63
  52. data/lib/prawn/text/formatted/parser.rb +139 -117
  53. data/lib/prawn/text/formatted/wrap.rb +43 -31
  54. data/lib/prawn/transformation_stack.rb +44 -0
  55. data/lib/prawn/utilities.rb +7 -22
  56. data/lib/prawn/version.rb +2 -2
  57. data/lib/prawn/view.rb +17 -7
  58. data/manual/basic_concepts/adding_pages.rb +6 -7
  59. data/manual/basic_concepts/basic_concepts.rb +31 -22
  60. data/manual/basic_concepts/creation.rb +10 -11
  61. data/manual/basic_concepts/cursor.rb +4 -5
  62. data/manual/basic_concepts/measurement.rb +6 -7
  63. data/manual/basic_concepts/origin.rb +5 -6
  64. data/manual/basic_concepts/other_cursor_helpers.rb +11 -12
  65. data/manual/basic_concepts/view.rb +22 -16
  66. data/manual/bounding_box/bounding_box.rb +29 -24
  67. data/manual/bounding_box/bounds.rb +11 -12
  68. data/manual/bounding_box/canvas.rb +4 -5
  69. data/manual/bounding_box/creation.rb +6 -7
  70. data/manual/bounding_box/indentation.rb +14 -15
  71. data/manual/bounding_box/nesting.rb +24 -17
  72. data/manual/bounding_box/russian_boxes.rb +14 -13
  73. data/manual/bounding_box/stretchy.rb +12 -13
  74. data/manual/contents.rb +28 -22
  75. data/manual/cover.rb +33 -28
  76. data/manual/document_and_page_options/background.rb +11 -13
  77. data/manual/document_and_page_options/document_and_page_options.rb +25 -20
  78. data/manual/document_and_page_options/metadata.rb +18 -16
  79. data/manual/document_and_page_options/page_margins.rb +18 -20
  80. data/manual/document_and_page_options/page_size.rb +13 -12
  81. data/manual/document_and_page_options/print_scaling.rb +17 -15
  82. data/manual/example_helper.rb +5 -4
  83. data/manual/graphics/blend_mode.rb +52 -0
  84. data/manual/graphics/circle_and_ellipse.rb +4 -5
  85. data/manual/graphics/color.rb +7 -9
  86. data/manual/graphics/common_lines.rb +7 -8
  87. data/manual/graphics/fill_and_stroke.rb +4 -5
  88. data/manual/graphics/fill_rules.rb +9 -10
  89. data/manual/graphics/gradients.rb +27 -21
  90. data/manual/graphics/graphics.rb +48 -39
  91. data/manual/graphics/helper.rb +12 -9
  92. data/manual/graphics/line_width.rb +8 -7
  93. data/manual/graphics/lines_and_curves.rb +7 -8
  94. data/manual/graphics/polygon.rb +6 -8
  95. data/manual/graphics/rectangle.rb +4 -5
  96. data/manual/graphics/rotate.rb +6 -7
  97. data/manual/graphics/scale.rb +14 -15
  98. data/manual/graphics/soft_masks.rb +4 -5
  99. data/manual/graphics/stroke_cap.rb +6 -7
  100. data/manual/graphics/stroke_dash.rb +11 -12
  101. data/manual/graphics/stroke_join.rb +5 -6
  102. data/manual/graphics/translate.rb +9 -10
  103. data/manual/graphics/transparency.rb +7 -8
  104. data/manual/how_to_read_this_manual.rb +6 -6
  105. data/manual/images/absolute_position.rb +6 -7
  106. data/manual/images/fit.rb +7 -8
  107. data/manual/images/horizontal.rb +9 -10
  108. data/manual/images/images.rb +28 -24
  109. data/manual/images/plain_image.rb +5 -6
  110. data/manual/images/scale.rb +9 -10
  111. data/manual/images/vertical.rb +13 -14
  112. data/manual/images/width_and_height.rb +10 -11
  113. data/manual/layout/boxes.rb +5 -6
  114. data/manual/layout/content.rb +7 -8
  115. data/manual/layout/layout.rb +18 -16
  116. data/manual/layout/simple_grid.rb +6 -7
  117. data/manual/outline/add_subsection_to.rb +20 -21
  118. data/manual/outline/insert_section_after.rb +15 -16
  119. data/manual/outline/outline.rb +21 -17
  120. data/manual/outline/sections_and_pages.rb +17 -18
  121. data/manual/repeatable_content/alternate_page_numbering.rb +21 -17
  122. data/manual/repeatable_content/page_numbering.rb +17 -16
  123. data/manual/repeatable_content/repeatable_content.rb +25 -19
  124. data/manual/repeatable_content/repeater.rb +14 -15
  125. data/manual/repeatable_content/stamp.rb +14 -15
  126. data/manual/security/encryption.rb +9 -10
  127. data/manual/security/permissions.rb +19 -14
  128. data/manual/security/security.rb +19 -16
  129. data/manual/table.rb +3 -3
  130. data/manual/text/alignment.rb +16 -17
  131. data/manual/text/color.rb +12 -11
  132. data/manual/text/column_box.rb +9 -10
  133. data/manual/text/fallback_fonts.rb +25 -21
  134. data/manual/text/font.rb +11 -12
  135. data/manual/text/font_size.rb +13 -14
  136. data/manual/text/font_style.rb +7 -8
  137. data/manual/text/formatted_callbacks.rb +25 -21
  138. data/manual/text/formatted_text.rb +33 -25
  139. data/manual/text/free_flowing_text.rb +20 -21
  140. data/manual/text/inline.rb +18 -19
  141. data/manual/text/kerning_and_character_spacing.rb +14 -15
  142. data/manual/text/leading.rb +7 -8
  143. data/manual/text/line_wrapping.rb +37 -18
  144. data/manual/text/paragraph_indentation.rb +13 -14
  145. data/manual/text/positioned_text.rb +15 -16
  146. data/manual/text/registering_families.rb +20 -21
  147. data/manual/text/rendering_and_color.rb +9 -10
  148. data/manual/text/right_to_left_text.rb +26 -19
  149. data/manual/text/rotation.rb +28 -23
  150. data/manual/text/single_usage.rb +8 -9
  151. data/manual/text/text.rb +57 -52
  152. data/manual/text/text_box_excess.rb +20 -17
  153. data/manual/text/text_box_extensions.rb +18 -15
  154. data/manual/text/text_box_overflow.rb +18 -19
  155. data/manual/text/utf8.rb +11 -12
  156. data/manual/text/win_ansi_charset.rb +21 -19
  157. data/prawn.gemspec +45 -33
  158. data/spec/extensions/encoding_helpers.rb +3 -3
  159. data/spec/prawn/document/bounding_box_spec.rb +546 -0
  160. data/spec/prawn/document/column_box_spec.rb +75 -0
  161. data/spec/prawn/document/security_spec.rb +176 -0
  162. data/spec/prawn/document_annotations_spec.rb +76 -0
  163. data/spec/prawn/document_destinations_spec.rb +15 -0
  164. data/spec/prawn/document_grid_spec.rb +99 -0
  165. data/spec/prawn/document_reference_spec.rb +27 -0
  166. data/spec/prawn/document_span_spec.rb +36 -0
  167. data/spec/prawn/document_spec.rb +802 -0
  168. data/spec/prawn/font_metric_cache_spec.rb +54 -0
  169. data/spec/prawn/font_spec.rb +542 -0
  170. data/spec/prawn/graphics/blend_mode_spec.rb +63 -0
  171. data/spec/prawn/graphics/transparency_spec.rb +81 -0
  172. data/spec/prawn/graphics_spec.rb +837 -0
  173. data/spec/prawn/graphics_stroke_styles_spec.rb +229 -0
  174. data/spec/prawn/image_handler_spec.rb +53 -0
  175. data/spec/prawn/images/jpg_spec.rb +20 -0
  176. data/spec/prawn/images/png_spec.rb +283 -0
  177. data/spec/prawn/images_spec.rb +224 -0
  178. data/spec/prawn/measurements_extensions_spec.rb +24 -0
  179. data/spec/prawn/outline_spec.rb +412 -0
  180. data/spec/prawn/repeater_spec.rb +165 -0
  181. data/spec/prawn/soft_mask_spec.rb +74 -0
  182. data/spec/prawn/stamp_spec.rb +172 -0
  183. data/spec/prawn/text/box_spec.rb +1112 -0
  184. data/spec/prawn/text/formatted/arranger_spec.rb +466 -0
  185. data/spec/prawn/text/formatted/box_spec.rb +846 -0
  186. data/spec/prawn/text/formatted/fragment_spec.rb +343 -0
  187. data/spec/prawn/text/formatted/line_wrap_spec.rb +494 -0
  188. data/spec/prawn/text/formatted/parser_spec.rb +697 -0
  189. data/spec/prawn/text_draw_text_spec.rb +149 -0
  190. data/spec/prawn/text_rendering_mode_spec.rb +48 -0
  191. data/spec/prawn/text_spacing_spec.rb +95 -0
  192. data/spec/prawn/text_spec.rb +603 -0
  193. data/spec/prawn/text_with_inline_formatting_spec.rb +35 -0
  194. data/spec/prawn/transformation_stack_spec.rb +66 -0
  195. data/spec/prawn/view_spec.rb +63 -0
  196. data/spec/prawn_manual_spec.rb +35 -0
  197. data/spec/spec_helper.rb +19 -23
  198. metadata +145 -185
  199. metadata.gz.sig +4 -0
  200. data/data/images/16bit.alpha +0 -0
  201. data/data/images/16bit.color +0 -0
  202. data/data/images/16bit.png +0 -0
  203. data/data/images/arrow.png +0 -0
  204. data/data/images/arrow2.png +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/letterhead.jpg +0 -0
  213. data/data/images/license.md +0 -8
  214. data/data/images/page_white_text.alpha +0 -0
  215. data/data/images/page_white_text.color +0 -0
  216. data/data/images/page_white_text.png +0 -0
  217. data/data/images/pal_bk.png +0 -0
  218. data/data/images/pigs.jpg +0 -0
  219. data/data/images/prawn.png +0 -0
  220. data/data/images/ruport.png +0 -0
  221. data/data/images/ruport_data.dat +0 -0
  222. data/data/images/ruport_transparent.png +0 -0
  223. data/data/images/ruport_type0.png +0 -0
  224. data/data/images/stef.jpg +0 -0
  225. data/data/images/tru256.bmp +0 -0
  226. data/data/images/web-links.dat +0 -1
  227. data/data/images/web-links.png +0 -0
  228. data/data/pdfs/complex_template.pdf +0 -0
  229. data/data/pdfs/contains_ttf_font.pdf +0 -0
  230. data/data/pdfs/encrypted.pdf +0 -0
  231. data/data/pdfs/form.pdf +1 -819
  232. data/data/pdfs/hexagon.pdf +0 -61
  233. data/data/pdfs/indirect_reference.pdf +0 -86
  234. data/data/pdfs/multipage_template.pdf +0 -127
  235. data/data/pdfs/nested_pages.pdf +0 -118
  236. data/data/pdfs/page_without_mediabox.pdf +0 -193
  237. data/data/pdfs/resources_as_indirect_object.pdf +0 -83
  238. data/data/pdfs/two_hexagons.pdf +0 -90
  239. data/data/pdfs/version_1_6.pdf +0 -61
  240. data/data/shift_jis_text.txt +0 -1
  241. data/spec/acceptance/png.rb +0 -24
  242. data/spec/annotations_spec.rb +0 -67
  243. data/spec/bounding_box_spec.rb +0 -501
  244. data/spec/column_box_spec.rb +0 -59
  245. data/spec/destinations_spec.rb +0 -13
  246. data/spec/document_spec.rb +0 -742
  247. data/spec/extensions/mocha.rb +0 -45
  248. data/spec/font_metric_cache_spec.rb +0 -52
  249. data/spec/font_spec.rb +0 -475
  250. data/spec/formatted_text_arranger_spec.rb +0 -423
  251. data/spec/formatted_text_box_spec.rb +0 -716
  252. data/spec/formatted_text_fragment_spec.rb +0 -299
  253. data/spec/graphics_spec.rb +0 -666
  254. data/spec/grid_spec.rb +0 -95
  255. data/spec/image_handler_spec.rb +0 -53
  256. data/spec/images_spec.rb +0 -167
  257. data/spec/inline_formatted_text_parser_spec.rb +0 -568
  258. data/spec/jpg_spec.rb +0 -23
  259. data/spec/line_wrap_spec.rb +0 -366
  260. data/spec/measurement_units_spec.rb +0 -22
  261. data/spec/outline_spec.rb +0 -409
  262. data/spec/png_spec.rb +0 -235
  263. data/spec/reference_spec.rb +0 -25
  264. data/spec/repeater_spec.rb +0 -154
  265. data/spec/security_spec.rb +0 -151
  266. data/spec/soft_mask_spec.rb +0 -78
  267. data/spec/span_spec.rb +0 -43
  268. data/spec/stamp_spec.rb +0 -179
  269. data/spec/stroke_styles_spec.rb +0 -208
  270. data/spec/text_at_spec.rb +0 -142
  271. data/spec/text_box_spec.rb +0 -1038
  272. data/spec/text_rendering_mode_spec.rb +0 -45
  273. data/spec/text_spacing_spec.rb +0 -93
  274. data/spec/text_spec.rb +0 -549
  275. data/spec/text_with_inline_formatting_spec.rb +0 -35
  276. data/spec/transparency_spec.rb +0 -91
  277. data/spec/view_spec.rb +0 -42
@@ -1,5 +1,5 @@
1
- # encoding: utf-8
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # The <code>encrypt_document</code> method, as you might have already guessed,
4
4
  # is used to encrypt the PDF document.
5
5
  #
@@ -12,18 +12,17 @@
12
12
  # documentation (you can find it here:
13
13
  # https://github.com/prawnpdf/prawn/blob/master/lib/prawn/security.rb ) before
14
14
  # using this for anything super serious.
15
- #
16
- require File.expand_path(File.join(File.dirname(__FILE__),
17
- %w[.. example_helper]))
15
+
16
+ require_relative '../example_helper'
18
17
 
19
18
  # Bare encryption. No password needed.
20
- Prawn::ManualBuilder::Example.generate("bare_encryption.pdf") do
21
- text "See, no password was asked but the document is still encrypted."
19
+ Prawn::ManualBuilder::Example.generate('bare_encryption.pdf') do
20
+ text 'See, no password was asked but the document is still encrypted.'
22
21
  encrypt_document
23
22
  end
24
23
 
25
24
  # Simple password. All permissions granted.
26
- Prawn::ManualBuilder::Example.generate("simple_password.pdf") do
27
- text "You was asked for a password."
28
- encrypt_document(:user_password => 'foo', :owner_password => 'bar')
25
+ Prawn::ManualBuilder::Example.generate('simple_password.pdf') do
26
+ text 'You was asked for a password.'
27
+ encrypt_document(user_password: 'foo', owner_password: 'bar')
29
28
  end
@@ -1,5 +1,5 @@
1
- # encoding: utf-8
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Some permissions may be set for the regular user with the following options:
4
4
  # <code>:print_document</code>, <code>:modify_contents</code>,
5
5
  # <code>:copy_contents</code>, <code>:modify_annotations</code>. All this
@@ -14,23 +14,28 @@
14
14
  # documentation (you can find it here:
15
15
  # https://github.com/prawnpdf/prawn/blob/master/lib/prawn/security.rb ) before
16
16
  # using this for anything super serious.
17
- #
18
- require File.expand_path(File.join(File.dirname(__FILE__),
19
- %w[.. example_helper]))
17
+
18
+ require_relative '../example_helper'
20
19
 
21
20
  # User cannot print the document.
22
- Prawn::ManualBuilder::Example.generate("cannot_print.pdf") do
21
+ Prawn::ManualBuilder::Example.generate('cannot_print.pdf') do
23
22
  text "If you used the user password you won't be able to print the doc."
24
- encrypt_document(:user_password => 'foo', :owner_password => 'bar',
25
- :permissions => { :print_document => false })
23
+ encrypt_document(
24
+ user_password: 'foo', owner_password: 'bar',
25
+ permissions: { print_document: false }
26
+ )
26
27
  end
27
28
 
28
29
  # All permissions revoked and owner password set to random
29
- Prawn::ManualBuilder::Example.generate("no_permissions.pdf") do
30
+ Prawn::ManualBuilder::Example.generate('no_permissions.pdf') do
30
31
  text "You may only view this and won't be able to use the owner password."
31
- encrypt_document(:user_password => 'foo', :owner_password => :random,
32
- :permissions => { :print_document => false,
33
- :modify_contents => false,
34
- :copy_contents => false,
35
- :modify_annotations => false })
32
+ encrypt_document(
33
+ user_password: 'foo', owner_password: :random,
34
+ permissions: {
35
+ print_document: false,
36
+ modify_contents: false,
37
+ copy_contents: false,
38
+ modify_annotations: false
39
+ }
40
+ )
36
41
  end
@@ -1,25 +1,28 @@
1
- # encoding: utf-8
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Examples for document encryption.
4
- #
5
- require File.expand_path(File.join(File.dirname(__FILE__),
6
- %w[.. example_helper]))
7
4
 
8
- Prawn::ManualBuilder::Example.generate("security.pdf", :page_size => "FOLIO") do
9
- package "security" do |p|
10
- p.example "encryption", :eval_source => false, :full_source => true
11
- p.example "permissions", :eval_source => false, :full_source => true
5
+ require_relative '../example_helper'
6
+
7
+ Prawn::ManualBuilder::Example.generate('security.pdf', page_size: 'FOLIO') do
8
+ package 'security' do |p|
9
+ p.example 'encryption', eval_source: false, full_source: true
10
+ p.example 'permissions', eval_source: false, full_source: true
12
11
 
13
12
  p.intro do
14
- prose("Security lets you control who can read the document by defining a password.
13
+ prose <<-TEXT
14
+ Security lets you control who can read the document by defining
15
+ a password.
15
16
 
16
- The examples include:")
17
+ The examples include:
18
+ TEXT
17
19
 
18
- list( "How to encrypt the document without the need for a password",
19
- "How to configure the regular user permissions",
20
- "How to require a password for the regular user",
21
- "How to set a owner password that bypass the document permissions"
22
- )
20
+ list(
21
+ 'How to encrypt the document without the need for a password',
22
+ 'How to configure the regular user permissions',
23
+ 'How to require a password for the regular user',
24
+ 'How to set a owner password that bypass the document permissions'
25
+ )
23
26
  end
24
27
  end
25
28
  end
@@ -1,11 +1,11 @@
1
- # encoding: UTF-8
1
+ # frozen_string_literal: true
2
2
 
3
- require_relative "example_helper"
3
+ require_relative 'example_helper'
4
4
 
5
5
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
6
6
 
7
7
  Prawn::ManualBuilder::Example.generate(filename) do
8
- header("Prawn::Table")
8
+ header('Prawn::Table')
9
9
 
10
10
  prose <<-END_TEXT
11
11
  As of Prawn 1.2.0, Prawn::Table has been extracted into its own
@@ -1,5 +1,5 @@
1
- # encoding: utf-8
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Horizontal text alignment can be achieved by supplying the <code>:align</code>
4
4
  # option to the text methods. Available options are <code>:left</code>
5
5
  # (default), <code>:right</code>, <code>:center</code>, and
@@ -11,34 +11,33 @@
11
11
  #
12
12
  # Both forms of alignment will be evaluated in the context of the current
13
13
  # bounding_box.
14
- #
15
- require File.expand_path(File.join(File.dirname(__FILE__),
16
- %w[.. example_helper]))
14
+
15
+ require_relative '../example_helper'
17
16
 
18
17
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
19
18
  Prawn::ManualBuilder::Example.generate(filename) do
20
- text "This text should be left aligned"
21
- text "This text should be centered", :align => :center
22
- text "This text should be right aligned", :align => :right
19
+ text 'This text should be left aligned'
20
+ text 'This text should be centered', align: :center
21
+ text 'This text should be right aligned', align: :right
23
22
 
24
- bounding_box([0, 220], :width => 250, :height => 220) do
25
- text "This text is flowing from the left. " * 4
23
+ bounding_box([0, 220], width: 250, height: 220) do
24
+ text 'This text is flowing from the left. ' * 4
26
25
 
27
26
  move_down 15
28
- text "This text is flowing from the center. " * 3, :align => :center
27
+ text 'This text is flowing from the center. ' * 3, align: :center
29
28
 
30
29
  move_down 15
31
- text "This text is flowing from the right. " * 4, :align => :right
30
+ text 'This text is flowing from the right. ' * 4, align: :right
32
31
 
33
32
  move_down 15
34
- text "This text is justified. " * 6, :align => :justify
33
+ text 'This text is justified. ' * 6, align: :justify
35
34
  transparent(0.5) { stroke_bounds }
36
35
  end
37
36
 
38
- bounding_box([300, 220], :width => 250, :height => 220) do
39
- text "This text should be vertically top aligned"
40
- text "This text should be vertically centered", :valign => :center
41
- text "This text should be vertically bottom aligned", :valign => :bottom
37
+ bounding_box([300, 220], width: 250, height: 220) do
38
+ text 'This text should be vertically top aligned'
39
+ text 'This text should be vertically centered', valign: :center
40
+ text 'This text should be vertically bottom aligned', valign: :bottom
42
41
  transparent(0.5) { stroke_bounds }
43
42
  end
44
43
  end
@@ -1,23 +1,24 @@
1
- # encoding: utf-8
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # The <code>:color</code> attribute can give a block of text a default color,
4
4
  # in RGB hex format or 4-value CMYK.
5
- #
6
- require File.expand_path(File.join(File.dirname(__FILE__),
7
- %w[.. example_helper]))
5
+
6
+ require_relative '../example_helper'
8
7
 
9
8
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
10
9
  Prawn::ManualBuilder::Example.generate(filename) do
11
- text "Default color is black"
10
+ text 'Default color is black'
12
11
  move_down 25
13
12
 
14
- text "Changed to red", :color => "FF0000"
13
+ text 'Changed to red', color: 'FF0000'
15
14
  move_down 25
16
15
 
17
- text "CMYK color", :color => [22, 55, 79, 30]
16
+ text 'CMYK color', color: [22, 55, 79, 30]
18
17
  move_down 25
19
18
 
20
- text "Also works with <color rgb='ff0000'>inline</color> formatting",
21
- :color => "0000FF",
22
- :inline_format => true
19
+ text(
20
+ "Also works with <color rgb='ff0000'>inline</color> formatting",
21
+ color: '0000FF',
22
+ inline_format: true
23
+ )
23
24
  end
@@ -1,21 +1,20 @@
1
- # encoding: utf-8
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # The <code>column_box</code> method allows you to define columns that flow
4
4
  # their contents from one section to the next. You can have a number of columns
5
5
  # on the page, and only when the last column overflows will a new page be
6
6
  # created.
7
- #
8
- require File.expand_path(File.join(File.dirname(__FILE__),
9
- %w[.. example_helper]))
7
+
8
+ require_relative '../example_helper'
10
9
 
11
10
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
12
11
  Prawn::ManualBuilder::Example.generate(filename) do
13
- text "The Prince", :align => :center, :size => 18
14
- text "Niccolò Machiavelli", :align => :center, :size => 14
12
+ text 'The Prince', align: :center, size: 18
13
+ text 'Niccolò Machiavelli', align: :center, size: 14
15
14
  move_down 12
16
15
 
17
- column_box([0, cursor], :columns => 2, :width => bounds.width) do
18
- text((<<-END.gsub(/\s+/, ' ') + "\n\n") * 3)
16
+ column_box([0, cursor], columns: 2, width: bounds.width) do
17
+ text((<<-TEXT.gsub(/\s+/, ' ') + "\n\n") * 3)
19
18
  All the States and Governments by which men are or ever have been ruled,
20
19
  have been and are either Republics or Princedoms. Princedoms are either
21
20
  hereditary, in which the sovereignty is derived through an ancient line
@@ -26,6 +25,6 @@ Prawn::ManualBuilder::Example.generate(filename) do
26
25
  acquired have either been used to live under a Prince or have been free;
27
26
  and he who acquires them does so either by his own arms or by the arms of
28
27
  others, and either by good fortune or by merit.
29
- END
28
+ TEXT
30
29
  end
31
30
  end
@@ -1,37 +1,41 @@
1
- # encoding: utf-8
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Prawn enables the declaration of fallback fonts for those glyphs that may not
4
4
  # be present in the desired font. Use the <code>:fallback_fonts</code> option
5
5
  # 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]))
6
+
7
+ require_relative '../example_helper'
9
8
 
10
9
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
11
10
  Prawn::ManualBuilder::Example.generate(filename) do
12
11
  file = "#{Prawn::DATADIR}/fonts/gkai00mp.ttf"
13
- font_families["Kai"] = {
14
- :normal => { :file => file, :font => "Kai" }
12
+ font_families['Kai'] = {
13
+ normal: { file: file, font: 'Kai' }
15
14
  }
16
15
 
17
16
  file = "#{Prawn::DATADIR}/fonts/Panic+Sans.dfont"
18
- font_families["Panic Sans"] = {
19
- :normal => { :file => file, :font => "PanicSans" }
17
+ font_families['Panic Sans'] = {
18
+ normal: { file: file, font: 'PanicSans' }
20
19
  }
21
20
 
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"])
21
+ font('Panic Sans') do
22
+ text(
23
+ '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: %w[Times-Roman Kai]
30
+ )
30
31
  end
31
32
  move_down 20
32
33
 
33
- formatted_text([ { :text => "Fallback fonts can even override" },
34
- { :text => "fragment fonts (你好)", :font => "Times-Roman" }
35
- ],
36
- :fallback_fonts => ["Times-Roman", "Kai"])
34
+ formatted_text(
35
+ [
36
+ { text: 'Fallback fonts can even override' },
37
+ { text: 'fragment fonts (你好)', font: 'Times-Roman' }
38
+ ],
39
+ fallback_fonts: %w[Times-Roman Kai]
40
+ )
37
41
  end
@@ -1,5 +1,5 @@
1
- # encoding: utf-8
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # The <code>font</code> method can be used in three different ways.
4
4
  #
5
5
  # If we don't pass it any arguments it will return the current font being used
@@ -12,30 +12,29 @@
12
12
  # specified font will only be used to render text inside the block.
13
13
  #
14
14
  # The default font is Helvetica.
15
- #
16
- require File.expand_path(File.join(File.dirname(__FILE__),
17
- %w[.. example_helper]))
15
+
16
+ require_relative '../example_helper'
18
17
 
19
18
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
20
19
  Prawn::ManualBuilder::Example.generate(filename) do
21
20
  text "Let's see which font we are using: #{font.inspect}"
22
21
 
23
22
  move_down 20
24
- font "Times-Roman"
25
- text "Written in Times."
23
+ font 'Times-Roman'
24
+ text 'Written in Times.'
26
25
 
27
26
  move_down 20
28
- font("Courier") do
29
- text "Written in Courier because we are inside the block."
27
+ font('Courier') do
28
+ text 'Written in Courier because we are inside the block.'
30
29
  end
31
30
 
32
31
  move_down 20
33
- text "Written in Times again as we left the previous block."
32
+ text 'Written in Times again as we left the previous block.'
34
33
 
35
34
  move_down 20
36
35
  text "Let's see which font we are using again: #{font.inspect}"
37
36
 
38
37
  move_down 20
39
- font "Helvetica"
40
- text "Back to normal."
38
+ font 'Helvetica'
39
+ text 'Back to normal.'
41
40
  end
@@ -1,5 +1,5 @@
1
- # encoding: utf-8
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # The <code>font_size</code> method works just like the <code>font</code>
4
4
  # method.
5
5
  #
@@ -10,9 +10,8 @@
10
10
  # option to the text methods.
11
11
  #
12
12
  # The default font size is <code>12</code>.
13
- #
14
- require File.expand_path(File.join(File.dirname(__FILE__),
15
- %w[.. example_helper]))
13
+
14
+ require_relative '../example_helper'
16
15
 
17
16
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
18
17
  Prawn::ManualBuilder::Example.generate(filename) do
@@ -20,26 +19,26 @@ Prawn::ManualBuilder::Example.generate(filename) do
20
19
 
21
20
  move_down 10
22
21
  font_size 16
23
- text "Yeah, something bigger!"
22
+ text 'Yeah, something bigger!'
24
23
 
25
24
  move_down 10
26
- font_size(25) { text "Even bigger!" }
25
+ font_size(25) { text 'Even bigger!' }
27
26
 
28
27
  move_down 10
29
- text "Back to 16 again."
28
+ text 'Back to 16 again.'
30
29
 
31
30
  move_down 10
32
- text "Single line on 20 using the :size option.", :size => 20
31
+ text 'Single line on 20 using the :size option.', size: 20
33
32
 
34
33
  move_down 10
35
- text "Back to 16 once more."
34
+ text 'Back to 16 once more.'
36
35
 
37
36
  move_down 10
38
- font("Courier", :size => 10) do
39
- text "Yeah, using Courier 10 courtesy of the font method."
37
+ font('Courier', size: 10) do
38
+ text 'Yeah, using Courier 10 courtesy of the font method.'
40
39
  end
41
40
 
42
41
  move_down 10
43
- font("Helvetica", :size => 12)
44
- text "Back to normal"
42
+ font('Helvetica', size: 12)
43
+ text 'Back to normal'
45
44
  end
@@ -1,22 +1,21 @@
1
- # encoding: utf-8
2
- #
1
+ # frozen_string_literal: true
2
+
3
3
  # Most font families come with some styles other than normal. Most common are
4
4
  # <code>bold</code>, <code>italic</code> and <code>bold_italic</code>.
5
5
  #
6
6
  # The style can be set the using the <code>:style</code> option, with either the
7
7
  # <code>font</code> method which will set the font and style for rest of the
8
8
  # document, or with the inline text methods.
9
- #
10
- require File.expand_path(File.join(File.dirname(__FILE__),
11
- %w[.. example_helper]))
9
+
10
+ require_relative '../example_helper'
12
11
 
13
12
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
14
13
  Prawn::ManualBuilder::Example.generate(filename) do
15
- ["Courier", "Helvetica", "Times-Roman"].each do |example_font|
14
+ %w[Courier Helvetica Times-Roman].each do |example_font|
16
15
  move_down 20
17
16
 
18
- [:bold, :bold_italic, :italic, :normal].each do |style|
19
- font example_font, :style => style
17
+ %i[bold bold_italic italic normal].each do |style|
18
+ font example_font, style: style
20
19
  text "I'm writing in #{example_font} (#{style})"
21
20
  end
22
21
  end