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,38 +1,40 @@
1
- # encoding: utf-8
2
- #
3
1
  # Prawn manual how to read this manual page.
4
- #
5
2
 
6
- require_relative "example_helper"
3
+ require_relative 'example_helper'
7
4
 
8
5
  filename = File.basename(__FILE__).gsub('.rb', '.pdf')
9
6
  Prawn::ManualBuilder::Example.generate(filename) do
10
7
  move_down 200
11
8
 
12
9
  image "#{Prawn::DATADIR}/images/prawn.png",
13
- :scale => 0.9,
14
- :at => [10, cursor]
10
+ scale: 0.9,
11
+ at: [10, cursor]
15
12
 
16
- formatted_text_box([ { :text => "Prawn\n",
17
- :styles => [:bold],
18
- :size => 100 }
19
- ], :at => [170, cursor - 50])
13
+ formatted_text_box(
14
+ [{ text: "Prawn\n", styles: [:bold], size: 100 }],
15
+ at: [170, cursor - 50]
16
+ )
20
17
 
21
- formatted_text_box([ { :text => "by example",
22
- :font => 'Courier',
23
- :size => 60 }
24
- ], :at => [170, cursor - 160])
18
+ formatted_text_box(
19
+ [{ text: 'by example', font: 'Courier', size: 60 }],
20
+ at: [170, cursor - 160]
21
+ )
25
22
 
26
23
  if Dir.exist?("#{Prawn::BASEDIR}/.git")
27
24
  commit = `git show --pretty=%h`
28
25
  git_commit = "git commit: #{commit.lines.first}"
29
26
  else
30
- git_commit = ""
27
+ git_commit = ''
31
28
  end
32
29
 
33
- formatted_text_box([ { :text => "Last Update: #{Time.now.strftime("%Y-%m-%d")}\n" +
34
- "Prawn Version: #{Prawn::VERSION}\n" +
35
- git_commit,
36
- :size => 12 }
37
- ], :at => [390, cursor - 620])
30
+ unless ENV['CI']
31
+ formatted_text_box(
32
+ [{
33
+ text: "Last Update: #{Time.now.strftime('%Y-%m-%d')}\n" \
34
+ "Prawn Version: #{Prawn::VERSION}\n#{git_commit}",
35
+ size: 12
36
+ }],
37
+ at: [390, cursor - 620]
38
+ )
39
+ end
38
40
  end
@@ -1,27 +1,23 @@
1
- # encoding: utf-8
2
- #
3
1
  # Pass an image path to the <code>:background</code> option and it will be used
4
2
  # as the background for all pages.
5
3
  # This option can only be used on document creation.
6
- #
7
- require File.expand_path(File.join(File.dirname(__FILE__),
8
- %w[.. example_helper]))
4
+
5
+ require_relative '../example_helper'
6
+
7
+ filename = File.basename(__FILE__).gsub('.rb', '.pdf')
9
8
 
10
9
  img = "#{Prawn::DATADIR}/images/letterhead.jpg"
11
10
 
12
- Prawn::Document.generate("background.pdf",
13
- :background => img,
14
- :margin => 100
15
- ) do
16
- text "My report caption", :size => 18, :align => :right
11
+ Prawn::Document.generate(filename, background: img, margin: 100) do
12
+ text 'My report caption', size: 18, align: :right
17
13
 
18
14
  move_down font.height * 2
19
15
 
20
- text "Here is my text explaning this report. " * 20,
21
- :size => 12, :align => :left, :leading => 2
16
+ text 'Here is my text explaning this report. ' * 20,
17
+ size: 12, align: :left, leading: 2
22
18
 
23
19
  move_down font.height
24
20
 
25
21
  text "I'm using a soft background. " * 40,
26
- :size => 12, :align => :left, :leading => 2
22
+ size: 12, align: :left, leading: 2
27
23
  end
@@ -1,29 +1,32 @@
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("document_and_page_options.pdf",
9
- :page_size => "FOLIO") do
10
- package "document_and_page_options" do |p|
11
- p.example "page_size", :eval_source => false, :full_source => true
12
- p.example "page_margins", :eval_source => false, :full_source => true
13
- p.example "background", :eval_source => false, :full_source => true
14
- p.example "metadata", :eval_source => false, :full_source => true
15
- p.example "print_scaling", :eval_source => false, :full_source => true
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 'document_and_page_options' do |p|
8
+ p.example 'page_size', eval_source: false, full_source: true
9
+ p.example 'page_margins', eval_source: false, full_source: true
10
+ p.example 'background', eval_source: false, full_source: true
11
+ p.example 'metadata', eval_source: false, full_source: true
12
+ p.example 'print_scaling', eval_source: false, full_source: true
16
13
 
17
14
  p.intro do
18
- prose("So far we've already seen how to create new documents and start new pages. This chapter expands on the previous examples by showing other options avialable. Some of the options are only available when creating new documents.
15
+ prose <<-END
16
+ So far we've already seen how to create new documents and start new
17
+ pages. This chapter expands on the previous examples by showing other
18
+ options avialable. Some of the options are only available when creating
19
+ new documents.
19
20
 
20
- The examples show:")
21
+ The examples show:
22
+ END
21
23
 
22
- list( "How to configure page size",
23
- "How to configure page margins",
24
- "How to use a background image",
25
- "How to add metadata to the generated PDF"
26
- )
24
+ list(
25
+ 'How to configure page size',
26
+ 'How to configure page margins',
27
+ 'How to use a background image',
28
+ 'How to add metadata to the generated PDF'
29
+ )
27
30
  end
28
31
  end
29
32
  end
@@ -1,23 +1,23 @@
1
- # encoding: utf-8
2
- #
3
1
  # To set the document metadata just pass a hash to the <code>:info</code>
4
2
  # option when creating new documents.
5
- # The keys in the example below are arbitrary, so you may add whatever keys you want
6
- #
7
- require File.expand_path(File.join(File.dirname(__FILE__),
8
- %w[.. example_helper]))
3
+ # The keys in the example below are arbitrary, so you may add whatever keys you
4
+ # want.
5
+
6
+ require_relative '../example_helper'
7
+
8
+ filename = File.basename(__FILE__).gsub('.rb', '.pdf')
9
9
 
10
10
  info = {
11
- :Title => "My title",
12
- :Author => "John Doe",
13
- :Subject => "My Subject",
14
- :Keywords => "test metadata ruby pdf dry",
15
- :Creator => "ACME Soft App",
16
- :Producer => "Prawn",
17
- :CreationDate => Time.now
11
+ Title: 'My title',
12
+ Author: 'John Doe',
13
+ Subject: 'My Subject',
14
+ Keywords: 'test metadata ruby pdf dry',
15
+ Creator: 'ACME Soft App',
16
+ Producer: 'Prawn',
17
+ CreationDate: Time.now
18
18
  }
19
19
 
20
- Prawn::Document.generate("metadata.pdf", :info => info) do
21
- text "This is a test of setting metadata properties via the info option."
22
- text "While the keys are arbitrary, the above example sets common attributes."
20
+ Prawn::Document.generate(filename, info: info) do
21
+ text 'This is a test of setting metadata properties via the info option.'
22
+ text 'While the keys are arbitrary, the above example sets common attributes.'
23
23
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # The default margin for pages is 0.5 inch but you can change that with the
4
2
  # <code>:margin</code> option or if you'd like to have different margins you
5
3
  # can use the <code>:left_margin</code>, <code>:right_margin</code>,
@@ -7,32 +5,30 @@
7
5
  #
8
6
  # These options are available both for starting new pages and creating new
9
7
  # documents.
10
- #
11
- require File.expand_path(File.join(File.dirname(__FILE__),
12
- %w[.. example_helper]))
13
8
 
14
- Prawn::Document.generate("page_margins.pdf",
15
- :margin => 100
16
- ) do
17
- text "100 pts margins."
9
+ require_relative '../example_helper'
10
+
11
+ filename = File.basename(__FILE__).gsub('.rb', '.pdf')
12
+ Prawn::Document.generate(filename, margin: 100) do
13
+ text '100 pts margins.'
18
14
  stroke_bounds
19
15
 
20
- start_new_page(:left_margin => 300)
21
- text "300 pts margin on the left."
16
+ start_new_page(left_margin: 300)
17
+ text '300 pts margin on the left.'
22
18
  stroke_bounds
23
19
 
24
- start_new_page(:top_margin => 300)
25
- text "300 pts margin both on the top and on the left. Notice that whenever " +
26
- "you set an option for a new page it will remain the default for the " +
27
- "following pages."
20
+ start_new_page(top_margin: 300)
21
+ text '300 pts margin both on the top and on the left. Notice that whenever ' \
22
+ 'you set an option for a new page it will remain the default for the ' \
23
+ 'following pages.'
28
24
  stroke_bounds
29
25
 
30
- start_new_page(:margin => 50)
31
- text "50 pts margins. Using the margin option will reset previous specific " +
32
- "calls to left, right, top and bottom margins."
26
+ start_new_page(margin: 50)
27
+ text '50 pts margins. Using the margin option will reset previous specific ' \
28
+ 'calls to left, right, top and bottom margins.'
33
29
  stroke_bounds
34
30
 
35
- start_new_page(:margin => [50, 100, 150, 200])
36
- text "There is also the shorthand CSS like syntax used here."
31
+ start_new_page(margin: [50, 100, 150, 200])
32
+ text 'There is also the shorthand CSS like syntax used here.'
37
33
  stroke_bounds
38
34
  end
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Prawn comes with support for most of the common page sizes so you'll only need
4
2
  # to provide specific values if your intended format is not supported. To see a
5
3
  # list with all supported sizes take a look at PDF::Core::PageGeometry
@@ -11,23 +9,24 @@
11
9
  # You may also define the orientation of the page to be either portrait
12
10
  # (default) or landscape. Use <code>:page_layout</code> when creating new
13
11
  # documents and <code>:layout</code> when starting new pages.
14
- #
15
- require File.expand_path(File.join(File.dirname(__FILE__),
16
- %w[.. example_helper]))
17
12
 
18
- Prawn::Document.generate("page_size.pdf",
19
- :page_size => "EXECUTIVE",
20
- :page_layout => :landscape
13
+ require_relative '../example_helper'
14
+
15
+ filename = File.basename(__FILE__).gsub('.rb', '.pdf')
16
+ Prawn::Document.generate(
17
+ filename,
18
+ page_size: 'EXECUTIVE',
19
+ page_layout: :landscape
21
20
  ) do
22
- text "EXECUTIVE landscape page."
21
+ text 'EXECUTIVE landscape page.'
23
22
 
24
23
  custom_size = [275, 326]
25
24
 
26
- ["A4", "TABLOID", "B7", custom_size ].each do |size|
27
- start_new_page(:size => size, :layout => :portrait)
25
+ ['A4', 'TABLOID', 'B7', custom_size].each do |size|
26
+ start_new_page(size: size, layout: :portrait)
28
27
  text "#{size} portrait page."
29
28
 
30
- start_new_page(:size => size, :layout => :landscape)
29
+ start_new_page(size: size, layout: :landscape)
31
30
  text "#{size} landscape page."
32
31
  end
33
32
  end
@@ -1,20 +1,20 @@
1
- # encoding: utf-8
2
- #
3
- # (Optional; PDF 1.6) The page scaling option to be selected when a print dialog is displayed for this document.
4
- # Valid values are <code>None</code>, which indicates that the print dialog should reflect no page scaling,
5
- # and <code>AppDefault</code>, which indicates that applications should use the current print scaling.
6
- # If this entry has an unrecognized value, applications should use the current print scaling.
7
- # Default value: <code>AppDefault</code>.
8
- #
9
- # Note: If the print dialog is suppressed and its parameters are provided directly by the application, the value of this entry should still be used.
1
+ # (Optional; PDF 1.6) The page scaling option to be selected when a print dialog
2
+ # is displayed for this document. Valid values are <code>None</code>, which
3
+ # indicates that the print dialog should reflect no page scaling, and
4
+ # <code>AppDefault</code>, which indicates that applications should use the
5
+ # current print scaling. If this entry has an unrecognized value, applications
6
+ # should use the current print scaling. Default value: <code>AppDefault</code>.
10
7
  #
8
+ # Note: If the print dialog is suppressed and its parameters are provided
9
+ # directly by the application, the value of this entry should still be used.
11
10
 
12
- require File.expand_path(File.join(File.dirname(__FILE__),
13
- %w[.. example_helper]))
11
+ require_relative '../example_helper'
14
12
 
15
- Prawn::Document.generate("print_scaling.pdf",
16
- :page_layout => :landscape,
17
- :print_scaling => :none
13
+ filename = File.basename(__FILE__).gsub('.rb', '.pdf')
14
+ Prawn::Document.generate(
15
+ filename,
16
+ page_layout: :landscape, print_scaling: :none
18
17
  ) do
19
- text "When you print this document, the scale to fit in print preview should be disabled by default."
18
+ text 'When you print this document, the scale to fit in print preview '\
19
+ 'should be disabled by default.'
20
20
  end
@@ -1,7 +1,5 @@
1
- # encoding: UTF-8
2
-
3
- require_relative "../lib/prawn"
4
- require "prawn/manual_builder"
1
+ require_relative '../lib/prawn'
2
+ require 'prawn/manual_builder'
5
3
 
6
4
  Prawn::ManualBuilder.manual_dir = File.dirname(__FILE__)
7
5
  Prawn::Font::AFM.hide_m17n_warning = true
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Blend modes can be used to change the way two layers (images, graphics,
4
2
  # text, etc.) are blended together. The <code>blend_mode</code> method
5
3
  # accepts a single blend mode or an array of blend modes. PDF viewers should
@@ -8,9 +6,8 @@
8
6
  # Valid blend modes in v1.4 of the PDF spec include :Normal, :Multiply, :Screen,
9
7
  # :Overlay, :Darken, :Lighten, :ColorDodge, :ColorBurn, :HardLight, :SoftLight,
10
8
  # :Difference, :Exclusion, :Hue, :Saturation, :Color, and :Luminosity.
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
@@ -22,14 +19,18 @@ Prawn::ManualBuilder::Example.generate(filename) do
22
19
  # https://commons.wikimedia.org/wiki/File:Blend_modes_1.-top-layer.jpg#/media/File:Blend_modes_1.-top-layer.jpg
23
20
  top_layer = "#{Prawn::DATADIR}/images/blend_modes_top_layer.jpg"
24
21
 
25
- blend_modes = [:Normal, :Multiply, :Screen, :Overlay, :Darken, :Lighten, :ColorDodge, :ColorBurn, :HardLight, :SoftLight, :Difference, :Exclusion, :Hue, :Saturation, :Color, :Luminosity]
22
+ blend_modes = [
23
+ :Normal, :Multiply, :Screen, :Overlay, :Darken, :Lighten, :ColorDodge,
24
+ :ColorBurn, :HardLight, :SoftLight, :Difference, :Exclusion, :Hue,
25
+ :Saturation, :Color, :Luminosity
26
+ ]
26
27
  blend_modes.each_with_index do |blend_mode, index|
27
28
  x = index % 4 * 135
28
29
  y = cursor - (index / 4 * 200)
29
30
 
30
- image bottom_layer, :at => [x, y], :fit => [125, 125]
31
+ image bottom_layer, at: [x, y], fit: [125, 125]
31
32
  blend_mode(blend_mode) do
32
- image top_layer, :at => [x, y], :fit => [125, 125]
33
+ image top_layer, at: [x, y], fit: [125, 125]
33
34
  end
34
35
 
35
36
  y -= 130
@@ -44,6 +45,6 @@ Prawn::ManualBuilder::Example.generate(filename) do
44
45
  y -= 30
45
46
 
46
47
  fill_color '000000'
47
- text_box blend_mode.to_s, :at => [x, y]
48
+ text_box blend_mode.to_s, at: [x, y]
48
49
  end
49
50
  end
@@ -1,14 +1,11 @@
1
- # encoding: utf-8
2
- #
3
1
  # To define a <code>circle</code> all you need is the center point and the
4
2
  # radius.
5
3
  #
6
4
  # To define an <code>ellipse</code> you provide the center point and two radii
7
5
  # (or axes) values. If the second radius value is ommitted, both radii will be
8
6
  # equal and you will end up drawing a circle.
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,19 +1,15 @@
1
- # encoding: utf-8
2
- #
3
1
  # We can change the stroke and fill colors providing an HTML rgb 6 digit color
4
2
  # code string ("AB1234") or 4 values for 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
8
  stroke_axis
12
9
 
13
- # Fill with Yellow using RGB
14
- fill_color "FFFFCC"
15
- fill_polygon [50, 150], [150, 200], [250, 150],
16
- [250, 50], [150, 0], [50, 50]
10
+ # Fill with Yellow using RGB (Unlike css, there is no leading #)
11
+ fill_color 'FFFFCC'
12
+ fill_polygon [50, 150], [150, 200], [250, 150], [250, 50], [150, 0], [50, 50]
17
13
 
18
14
  # Stroke with Purple using CMYK
19
15
  stroke_color 50, 100, 0, 0
@@ -1,5 +1,3 @@
1
- # encoding: utf-8
2
- #
3
1
  # Prawn provides helpers for drawing some commonly used lines:
4
2
  #
5
3
  # <code>vertical_line</code> and <code>horizontal_line</code> do just what their
@@ -8,23 +6,22 @@
8
6
  #
9
7
  # <code>horizontal_rule</code> draws a horizontal line on the current bounding
10
8
  # box from border to border, using the current y position.
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
  stroke_axis
18
15
 
19
- stroke_color "ff0000"
16
+ stroke_color 'ff0000'
20
17
 
21
18
  stroke do
22
19
  # just lower the current y position
23
20
  move_down 50
24
21
  horizontal_rule
25
22
 
26
- vertical_line 100, 300, :at => 50
23
+ vertical_line 100, 300, at: 50
27
24
 
28
- horizontal_line 200, 500, :at => 150
25
+ horizontal_line 200, 500, at: 150
29
26
  end
30
27
  end