prawn 2.1.0 → 2.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
  # The <code>number_pages</code> method is a simple way to number the pages of
4
2
  # your document. It should be called towards the end of the document since
5
3
  # pages created after the call won't be numbered.
@@ -20,33 +18,34 @@
20
18
  # <code>color</code> which accepts the same values as <code>fill_color</code>
21
19
  #
22
20
  # As well as any option accepted by <code>text_box</code>
23
- #
24
- require File.expand_path(File.join(File.dirname(__FILE__),
25
- %w[.. example_helper]))
21
+
22
+ require_relative '../example_helper'
26
23
 
27
24
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
28
25
  Prawn::ManualBuilder::Example.generate(filename) do
29
- text "This is the first page!"
26
+ text 'This is the first page!'
30
27
 
31
28
  10.times do
32
29
  start_new_page
33
- text "Here comes yet another page."
30
+ text 'Here comes yet another page.'
34
31
  end
35
32
 
36
- string = "page <page> of <total>"
33
+ string = 'page <page> of <total>'
37
34
  # Green page numbers 1 to 7
38
- options = { :at => [bounds.right - 150, 0],
39
- :width => 150,
40
- :align => :right,
41
- :page_filter => (1..7),
42
- :start_count_at => 1,
43
- :color => "007700" }
35
+ options = {
36
+ at: [bounds.right - 150, 0],
37
+ width: 150,
38
+ align: :right,
39
+ page_filter: (1..7),
40
+ start_count_at: 1,
41
+ color: '007700'
42
+ }
44
43
  number_pages string, options
45
44
 
46
45
  # Gray page numbers from 8 on up
47
- options[:page_filter] = lambda{ |pg| pg > 7 }
46
+ options[:page_filter] = ->(pg) { pg > 7 }
48
47
  options[:start_count_at] = 8
49
- options[:color] = "333333"
48
+ options[:color] = '333333'
50
49
  number_pages string, options
51
50
 
52
51
  start_new_page
@@ -1,29 +1,33 @@
1
- # encoding: utf-8
2
- #
3
1
  # Examples for stamps and repeaters.
4
- #
5
- require File.expand_path(File.join(File.dirname(__FILE__),
6
- %w[.. example_helper]))
7
2
 
8
- Prawn::ManualBuilder::Example.generate("repeatable_content.pdf", :page_size => "FOLIO") do
9
- package "repeatable_content" do |p|
10
- p.example "repeater", :eval_source => false
11
- p.example "stamp"
12
- p.example "page_numbering", :eval_source => false
13
- p.example "alternate_page_numbering", :eval_source => false
3
+ require_relative '../example_helper'
4
+
5
+ filename = File.basename(__FILE__).gsub('.rb', '.pdf')
6
+ Prawn::ManualBuilder::Example.generate(filename, page_size: 'FOLIO') do
7
+ package 'repeatable_content' do |p|
8
+ p.example 'repeater', eval_source: false
9
+ p.example 'stamp'
10
+ p.example 'page_numbering', eval_source: false
11
+ p.example 'alternate_page_numbering', eval_source: false
14
12
 
15
13
  p.intro do
16
- prose("Prawn offers two ways to handle repeatable content blocks. Repeater is useful for content that gets repeated at well defined intervals while Stamp is more appropriate if you need better control of when to repeat it.
14
+ prose <<-END
15
+ Prawn offers two ways to handle repeatable content blocks. Repeater is
16
+ useful for content that gets repeated at well defined intervals while
17
+ Stamp is more appropriate if you need better control of when to repeat
18
+ it.
17
19
 
18
- There is also one very specific helper for numbering pages.
20
+ There is also one very specific helper for numbering pages.
19
21
 
20
- The examples show:")
22
+ The examples show:
23
+ END
21
24
 
22
- list( "How to repeat content on several pages with a single invocation",
23
- "How to create a new Stamp",
24
- 'How to "stamp" the content block on the page',
25
- "How to number the document pages with one simple call"
26
- )
25
+ list(
26
+ 'How to repeat content on several pages with a single invocation',
27
+ 'How to create a new Stamp',
28
+ 'How to "stamp" the content block on the page',
29
+ 'How to number the document pages with one simple call'
30
+ )
27
31
  end
28
32
  end
29
33
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # The <code>repeat</code> method is quite versatile when it comes to define
4
2
  # the intervals at which the content block should repeat.
5
3
  #
@@ -14,42 +12,41 @@
14
12
  #
15
13
  # It is also important to say that no matter where you define the repeater it
16
14
  # will be applied to all matching pages.
17
- #
18
- require File.expand_path(File.join(File.dirname(__FILE__),
19
- %w[.. example_helper]))
15
+
16
+ require_relative '../example_helper'
20
17
 
21
18
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
22
19
  Prawn::ManualBuilder::Example.generate(filename) do
23
20
  repeat(:all) do
24
- draw_text "All pages", :at => bounds.top_left
21
+ draw_text 'All pages', at: bounds.top_left
25
22
  end
26
23
 
27
24
  repeat(:odd) do
28
- draw_text "Only odd pages", :at => [0, 0]
25
+ draw_text 'Only odd pages', at: [0, 0]
29
26
  end
30
27
 
31
28
  repeat(:even) do
32
- draw_text "Only even pages", :at => [0, 0]
29
+ draw_text 'Only even pages', at: [0, 0]
33
30
  end
34
31
 
35
32
  repeat([1, 3, 7]) do
36
- draw_text "Only on pages 1, 3 and 7", :at => [100, 0]
33
+ draw_text 'Only on pages 1, 3 and 7', at: [100, 0]
37
34
  end
38
35
 
39
36
  repeat(2..4) do
40
- draw_text "From the 2nd to the 4th page", :at => [300, 0]
37
+ draw_text 'From the 2nd to the 4th page', at: [300, 0]
41
38
  end
42
39
 
43
- repeat(lambda { |pg| pg % 3 == 0 }) do
44
- draw_text "Every third page", :at => [250, 20]
40
+ repeat(->(pg) { (pg % 3).zero? }) do
41
+ draw_text 'Every third page', at: [250, 20]
45
42
  end
46
43
 
47
- repeat(:all, :dynamic => true) do
48
- draw_text page_number, :at => [500, 0]
44
+ repeat(:all, dynamic: true) do
45
+ draw_text page_number, at: [500, 0]
49
46
  end
50
47
 
51
48
  10.times do
52
49
  start_new_page
53
- draw_text "A wonderful page", :at => [400, 400]
50
+ draw_text 'A wonderful page', at: [400, 400]
54
51
  end
55
52
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Stamps should be used when you have content that will be included multiple
4
2
  # times in a document. Its advantages over creating the content anew each time
5
3
  # are:
@@ -15,27 +13,26 @@
15
13
  # There are two methods to render the stamp on a page <code>stamp</code> and
16
14
  # <code>stamp_at</code>. The first will render the stamp as is while the
17
15
  # second accepts a point to serve as an offset to the stamp content.
18
- #
19
- require File.expand_path(File.join(File.dirname(__FILE__),
20
- %w[.. example_helper]))
16
+
17
+ require_relative '../example_helper'
21
18
 
22
19
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
23
20
  Prawn::ManualBuilder::Example.generate(filename) do
24
- create_stamp("approved") do
25
- rotate(30, :origin => [-5, -5]) do
26
- stroke_color "FF3333"
21
+ create_stamp('approved') do
22
+ rotate(30, origin: [-5, -5]) do
23
+ stroke_color 'FF3333'
27
24
  stroke_ellipse [0, 0], 29, 15
28
- stroke_color "000000"
25
+ stroke_color '000000'
29
26
 
30
- fill_color "993333"
31
- font("Times-Roman") do
32
- draw_text "Approved", :at => [-23, -3]
27
+ fill_color '993333'
28
+ font('Times-Roman') do
29
+ draw_text 'Approved', at: [-23, -3]
33
30
  end
34
- fill_color "000000"
31
+ fill_color '000000'
35
32
  end
36
33
  end
37
34
 
38
- stamp "approved"
35
+ stamp 'approved'
39
36
 
40
- stamp_at "approved", [200, 200]
37
+ stamp_at 'approved', [200, 200]
41
38
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # The <code>encrypt_document</code> method, as you might have already guessed,
4
2
  # is used to encrypt the PDF document.
5
3
  #
@@ -12,18 +10,17 @@
12
10
  # documentation (you can find it here:
13
11
  # https://github.com/prawnpdf/prawn/blob/master/lib/prawn/security.rb ) before
14
12
  # using this for anything super serious.
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
  # 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."
17
+ Prawn::ManualBuilder::Example.generate('bare_encryption.pdf') do
18
+ text 'See, no password was asked but the document is still encrypted.'
22
19
  encrypt_document
23
20
  end
24
21
 
25
22
  # 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')
23
+ Prawn::ManualBuilder::Example.generate('simple_password.pdf') do
24
+ text 'You was asked for a password.'
25
+ encrypt_document(user_password: 'foo', owner_password: 'bar')
29
26
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Some permissions may be set for the regular user with the following options:
4
2
  # <code>:print_document</code>, <code>:modify_contents</code>,
5
3
  # <code>:copy_contents</code>, <code>:modify_annotations</code>. All this
@@ -14,23 +12,28 @@
14
12
  # documentation (you can find it here:
15
13
  # https://github.com/prawnpdf/prawn/blob/master/lib/prawn/security.rb ) before
16
14
  # using this for anything super serious.
17
- #
18
- require File.expand_path(File.join(File.dirname(__FILE__),
19
- %w[.. example_helper]))
15
+
16
+ require_relative '../example_helper'
20
17
 
21
18
  # User cannot print the document.
22
- Prawn::ManualBuilder::Example.generate("cannot_print.pdf") do
19
+ Prawn::ManualBuilder::Example.generate('cannot_print.pdf') do
23
20
  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 })
21
+ encrypt_document(
22
+ user_password: 'foo', owner_password: 'bar',
23
+ permissions: { print_document: false }
24
+ )
26
25
  end
27
26
 
28
27
  # All permissions revoked and owner password set to random
29
- Prawn::ManualBuilder::Example.generate("no_permissions.pdf") do
28
+ Prawn::ManualBuilder::Example.generate('no_permissions.pdf') do
30
29
  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 })
30
+ encrypt_document(
31
+ user_password: 'foo', owner_password: :random,
32
+ permissions: {
33
+ print_document: false,
34
+ modify_contents: false,
35
+ copy_contents: false,
36
+ modify_annotations: false
37
+ }
38
+ )
36
39
  end
@@ -1,25 +1,26 @@
1
- # encoding: utf-8
2
- #
3
1
  # Examples for document encryption.
4
- #
5
- require File.expand_path(File.join(File.dirname(__FILE__),
6
- %w[.. example_helper]))
7
2
 
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
3
+ require_relative '../example_helper'
4
+
5
+ Prawn::ManualBuilder::Example.generate('security.pdf', page_size: 'FOLIO') do
6
+ package 'security' do |p|
7
+ p.example 'encryption', eval_source: false, full_source: true
8
+ p.example 'permissions', eval_source: false, full_source: true
12
9
 
13
10
  p.intro do
14
- prose("Security lets you control who can read the document by defining a password.
11
+ prose <<-END
12
+ Security lets you control who can read the document by defining
13
+ a password.
15
14
 
16
- The examples include:")
15
+ The examples include:
16
+ END
17
17
 
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
- )
18
+ list(
19
+ 'How to encrypt the document without the need for a password',
20
+ 'How to configure the regular user permissions',
21
+ 'How to require a password for the regular user',
22
+ 'How to set a owner password that bypass the document permissions'
23
+ )
23
24
  end
24
25
  end
25
26
  end
@@ -1,11 +1,9 @@
1
- # encoding: UTF-8
2
-
3
- require_relative "example_helper"
1
+ require_relative 'example_helper'
4
2
 
5
3
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
6
4
 
7
5
  Prawn::ManualBuilder::Example.generate(filename) do
8
- header("Prawn::Table")
6
+ header('Prawn::Table')
9
7
 
10
8
  prose <<-END_TEXT
11
9
  As of Prawn 1.2.0, Prawn::Table has been extracted into its own
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Horizontal text alignment can be achieved by supplying the <code>:align</code>
4
2
  # option to the text methods. Available options are <code>:left</code>
5
3
  # (default), <code>:right</code>, <code>:center</code>, and
@@ -11,34 +9,33 @@
11
9
  #
12
10
  # Both forms of alignment will be evaluated in the context of the current
13
11
  # bounding_box.
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
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
17
+ text 'This text should be left aligned'
18
+ text 'This text should be centered', align: :center
19
+ text 'This text should be right aligned', align: :right
23
20
 
24
- bounding_box([0, 220], :width => 250, :height => 220) do
25
- text "This text is flowing from the left. " * 4
21
+ bounding_box([0, 220], width: 250, height: 220) do
22
+ text 'This text is flowing from the left. ' * 4
26
23
 
27
24
  move_down 15
28
- text "This text is flowing from the center. " * 3, :align => :center
25
+ text 'This text is flowing from the center. ' * 3, align: :center
29
26
 
30
27
  move_down 15
31
- text "This text is flowing from the right. " * 4, :align => :right
28
+ text 'This text is flowing from the right. ' * 4, align: :right
32
29
 
33
30
  move_down 15
34
- text "This text is justified. " * 6, :align => :justify
31
+ text 'This text is justified. ' * 6, align: :justify
35
32
  transparent(0.5) { stroke_bounds }
36
33
  end
37
34
 
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
35
+ bounding_box([300, 220], width: 250, height: 220) do
36
+ text 'This text should be vertically top aligned'
37
+ text 'This text should be vertically centered', valign: :center
38
+ text 'This text should be vertically bottom aligned', valign: :bottom
42
39
  transparent(0.5) { stroke_bounds }
43
40
  end
44
41
  end
@@ -1,23 +1,22 @@
1
- # encoding: utf-8
2
- #
3
1
  # The <code>:color</code> attribute can give a block of text a default color,
4
2
  # in RGB hex format or 4-value CMYK.
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
11
- text "Default color is black"
8
+ text 'Default color is black'
12
9
  move_down 25
13
10
 
14
- text "Changed to red", :color => "FF0000"
11
+ text 'Changed to red', color: 'FF0000'
15
12
  move_down 25
16
13
 
17
- text "CMYK color", :color => [22, 55, 79, 30]
14
+ text 'CMYK color', color: [22, 55, 79, 30]
18
15
  move_down 25
19
16
 
20
- text "Also works with <color rgb='ff0000'>inline</color> formatting",
21
- :color => "0000FF",
22
- :inline_format => true
17
+ text(
18
+ "Also works with <color rgb='ff0000'>inline</color> formatting",
19
+ color: '0000FF',
20
+ inline_format: true
21
+ )
23
22
  end
@@ -1,20 +1,17 @@
1
- # encoding: utf-8
2
- #
3
1
  # The <code>column_box</code> method allows you to define columns that flow
4
2
  # their contents from one section to the next. You can have a number of columns
5
3
  # on the page, and only when the last column overflows will a new page be
6
4
  # created.
7
- #
8
- require File.expand_path(File.join(File.dirname(__FILE__),
9
- %w[.. example_helper]))
5
+
6
+ require_relative '../example_helper'
10
7
 
11
8
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
12
9
  Prawn::ManualBuilder::Example.generate(filename) do
13
- text "The Prince", :align => :center, :size => 18
14
- text "Niccolò Machiavelli", :align => :center, :size => 14
10
+ text 'The Prince', align: :center, size: 18
11
+ text 'Niccolò Machiavelli', align: :center, size: 14
15
12
  move_down 12
16
13
 
17
- column_box([0, cursor], :columns => 2, :width => bounds.width) do
14
+ column_box([0, cursor], columns: 2, width: bounds.width) do
18
15
  text((<<-END.gsub(/\s+/, ' ') + "\n\n") * 3)
19
16
  All the States and Governments by which men are or ever have been ruled,
20
17
  have been and are either Republics or Princedoms. Princedoms are either