prawn 2.4.0 → 2.5.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (203) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/prawn/document/bounding_box.rb +213 -141
  4. data/lib/prawn/document/column_box.rb +61 -26
  5. data/lib/prawn/document/internals.rb +25 -16
  6. data/lib/prawn/document/span.rb +20 -18
  7. data/lib/prawn/document.rb +257 -171
  8. data/lib/prawn/encoding.rb +2 -5
  9. data/lib/prawn/errors.rb +23 -34
  10. data/lib/prawn/font.rb +248 -135
  11. data/lib/prawn/font_metric_cache.rb +11 -10
  12. data/lib/prawn/fonts/afm.rb +85 -45
  13. data/lib/prawn/fonts/dfont.rb +7 -1
  14. data/lib/prawn/fonts/otf.rb +4 -1
  15. data/lib/prawn/fonts/to_unicode_cmap.rb +151 -0
  16. data/lib/prawn/fonts/ttc.rb +7 -2
  17. data/lib/prawn/fonts/ttf.rb +305 -93
  18. data/lib/prawn/fonts.rb +14 -0
  19. data/lib/prawn/graphics/blend_mode.rb +25 -28
  20. data/lib/prawn/graphics/cap_style.rb +9 -12
  21. data/lib/prawn/graphics/color.rb +57 -34
  22. data/lib/prawn/graphics/dash.rb +45 -42
  23. data/lib/prawn/graphics/join_style.rb +17 -11
  24. data/lib/prawn/graphics/patterns.rb +190 -69
  25. data/lib/prawn/graphics/transformation.rb +48 -41
  26. data/lib/prawn/graphics/transparency.rb +16 -40
  27. data/lib/prawn/graphics.rb +363 -253
  28. data/lib/prawn/grid.rb +184 -57
  29. data/lib/prawn/image_handler.rb +27 -10
  30. data/lib/prawn/images/image.rb +8 -10
  31. data/lib/prawn/images/jpg.rb +42 -19
  32. data/lib/prawn/images/png.rb +92 -41
  33. data/lib/prawn/images.rb +44 -57
  34. data/lib/prawn/measurement_extensions.rb +39 -8
  35. data/lib/prawn/measurements.rb +60 -5
  36. data/lib/prawn/outline.rb +114 -108
  37. data/lib/prawn/repeater.rb +51 -35
  38. data/lib/prawn/security/arcfour.rb +4 -4
  39. data/lib/prawn/security.rb +75 -70
  40. data/lib/prawn/soft_mask.rb +42 -30
  41. data/lib/prawn/stamp.rb +38 -42
  42. data/lib/prawn/text/box.rb +146 -96
  43. data/lib/prawn/text/formatted/arranger.rb +87 -26
  44. data/lib/prawn/text/formatted/box.rb +221 -150
  45. data/lib/prawn/text/formatted/fragment.rb +130 -14
  46. data/lib/prawn/text/formatted/line_wrap.rb +33 -24
  47. data/lib/prawn/text/formatted/parser.rb +112 -72
  48. data/lib/prawn/text/formatted/wrap.rb +12 -17
  49. data/lib/prawn/text/formatted.rb +75 -0
  50. data/lib/prawn/text.rb +441 -196
  51. data/lib/prawn/transformation_stack.rb +29 -10
  52. data/lib/prawn/utilities.rb +13 -13
  53. data/lib/prawn/version.rb +2 -1
  54. data/lib/prawn/view.rb +68 -53
  55. data/lib/prawn.rb +23 -18
  56. data.tar.gz.sig +0 -0
  57. metadata +54 -177
  58. metadata.gz.sig +0 -0
  59. data/.yardopts +0 -10
  60. data/Gemfile +0 -5
  61. data/Rakefile +0 -25
  62. data/manual/absolute_position.pdf +0 -0
  63. data/manual/basic_concepts/adding_pages.rb +0 -26
  64. data/manual/basic_concepts/basic_concepts.rb +0 -43
  65. data/manual/basic_concepts/creation.rb +0 -38
  66. data/manual/basic_concepts/cursor.rb +0 -32
  67. data/manual/basic_concepts/measurement.rb +0 -24
  68. data/manual/basic_concepts/origin.rb +0 -37
  69. data/manual/basic_concepts/other_cursor_helpers.rb +0 -39
  70. data/manual/basic_concepts/view.rb +0 -48
  71. data/manual/bounding_box/bounding_box.rb +0 -41
  72. data/manual/bounding_box/bounds.rb +0 -48
  73. data/manual/bounding_box/canvas.rb +0 -23
  74. data/manual/bounding_box/creation.rb +0 -22
  75. data/manual/bounding_box/indentation.rb +0 -45
  76. data/manual/bounding_box/nesting.rb +0 -52
  77. data/manual/bounding_box/russian_boxes.rb +0 -40
  78. data/manual/bounding_box/stretchy.rb +0 -29
  79. data/manual/contents.rb +0 -35
  80. data/manual/cover.rb +0 -43
  81. data/manual/document_and_page_options/background.rb +0 -29
  82. data/manual/document_and_page_options/document_and_page_options.rb +0 -34
  83. data/manual/document_and_page_options/metadata.rb +0 -25
  84. data/manual/document_and_page_options/page_margins.rb +0 -36
  85. data/manual/document_and_page_options/page_size.rb +0 -34
  86. data/manual/document_and_page_options/print_scaling.rb +0 -23
  87. data/manual/example_helper.rb +0 -8
  88. data/manual/graphics/blend_mode.rb +0 -52
  89. data/manual/graphics/circle_and_ellipse.rb +0 -21
  90. data/manual/graphics/color.rb +0 -22
  91. data/manual/graphics/common_lines.rb +0 -29
  92. data/manual/graphics/fill_and_stroke.rb +0 -41
  93. data/manual/graphics/fill_rules.rb +0 -38
  94. data/manual/graphics/gradients.rb +0 -43
  95. data/manual/graphics/graphics.rb +0 -64
  96. data/manual/graphics/helper.rb +0 -34
  97. data/manual/graphics/line_width.rb +0 -36
  98. data/manual/graphics/lines_and_curves.rb +0 -40
  99. data/manual/graphics/polygon.rb +0 -27
  100. data/manual/graphics/rectangle.rb +0 -20
  101. data/manual/graphics/rotate.rb +0 -25
  102. data/manual/graphics/scale.rb +0 -42
  103. data/manual/graphics/soft_masks.rb +0 -44
  104. data/manual/graphics/stroke_cap.rb +0 -30
  105. data/manual/graphics/stroke_dash.rb +0 -47
  106. data/manual/graphics/stroke_join.rb +0 -29
  107. data/manual/graphics/translate.rb +0 -29
  108. data/manual/graphics/transparency.rb +0 -33
  109. data/manual/how_to_read_this_manual.rb +0 -39
  110. data/manual/images/absolute_position.rb +0 -22
  111. data/manual/images/fit.rb +0 -20
  112. data/manual/images/horizontal.rb +0 -24
  113. data/manual/images/images.rb +0 -41
  114. data/manual/images/plain_image.rb +0 -17
  115. data/manual/images/scale.rb +0 -21
  116. data/manual/images/vertical.rb +0 -30
  117. data/manual/images/width_and_height.rb +0 -24
  118. data/manual/layout/boxes.rb +0 -26
  119. data/manual/layout/content.rb +0 -24
  120. data/manual/layout/layout.rb +0 -27
  121. data/manual/layout/simple_grid.rb +0 -22
  122. data/manual/outline/add_subsection_to.rb +0 -60
  123. data/manual/outline/insert_section_after.rb +0 -46
  124. data/manual/outline/outline.rb +0 -33
  125. data/manual/outline/sections_and_pages.rb +0 -66
  126. data/manual/repeatable_content/alternate_page_numbering.rb +0 -36
  127. data/manual/repeatable_content/page_numbering.rb +0 -55
  128. data/manual/repeatable_content/repeatable_content.rb +0 -35
  129. data/manual/repeatable_content/repeater.rb +0 -54
  130. data/manual/repeatable_content/stamp.rb +0 -40
  131. data/manual/security/encryption.rb +0 -28
  132. data/manual/security/permissions.rb +0 -43
  133. data/manual/security/security.rb +0 -28
  134. data/manual/table.rb +0 -16
  135. data/manual/text/alignment.rb +0 -43
  136. data/manual/text/color.rb +0 -24
  137. data/manual/text/column_box.rb +0 -30
  138. data/manual/text/fallback_fonts.rb +0 -41
  139. data/manual/text/font.rb +0 -40
  140. data/manual/text/font_size.rb +0 -44
  141. data/manual/text/font_style.rb +0 -25
  142. data/manual/text/formatted_callbacks.rb +0 -70
  143. data/manual/text/formatted_text.rb +0 -61
  144. data/manual/text/free_flowing_text.rb +0 -50
  145. data/manual/text/inline.rb +0 -40
  146. data/manual/text/kerning_and_character_spacing.rb +0 -38
  147. data/manual/text/leading.rb +0 -24
  148. data/manual/text/line_wrapping.rb +0 -60
  149. data/manual/text/paragraph_indentation.rb +0 -31
  150. data/manual/text/positioned_text.rb +0 -37
  151. data/manual/text/registering_families.rb +0 -51
  152. data/manual/text/rendering_and_color.rb +0 -36
  153. data/manual/text/right_to_left_text.rb +0 -54
  154. data/manual/text/rotation.rb +0 -52
  155. data/manual/text/single_usage.rb +0 -36
  156. data/manual/text/text.rb +0 -75
  157. data/manual/text/text_box_excess.rb +0 -35
  158. data/manual/text/text_box_extensions.rb +0 -48
  159. data/manual/text/text_box_overflow.rb +0 -51
  160. data/manual/text/utf8.rb +0 -27
  161. data/manual/text/win_ansi_charset.rb +0 -62
  162. data/prawn.gemspec +0 -51
  163. data/spec/data/curves.pdf +0 -66
  164. data/spec/extensions/encoding_helpers.rb +0 -11
  165. data/spec/prawn/document/bounding_box_spec.rb +0 -550
  166. data/spec/prawn/document/column_box_spec.rb +0 -75
  167. data/spec/prawn/document/security_spec.rb +0 -176
  168. data/spec/prawn/document_annotations_spec.rb +0 -76
  169. data/spec/prawn/document_destinations_spec.rb +0 -15
  170. data/spec/prawn/document_grid_spec.rb +0 -99
  171. data/spec/prawn/document_reference_spec.rb +0 -27
  172. data/spec/prawn/document_span_spec.rb +0 -44
  173. data/spec/prawn/document_spec.rb +0 -805
  174. data/spec/prawn/font_metric_cache_spec.rb +0 -54
  175. data/spec/prawn/font_spec.rb +0 -544
  176. data/spec/prawn/graphics/blend_mode_spec.rb +0 -63
  177. data/spec/prawn/graphics/transparency_spec.rb +0 -81
  178. data/spec/prawn/graphics_spec.rb +0 -872
  179. data/spec/prawn/graphics_stroke_styles_spec.rb +0 -229
  180. data/spec/prawn/image_handler_spec.rb +0 -53
  181. data/spec/prawn/images/jpg_spec.rb +0 -20
  182. data/spec/prawn/images/png_spec.rb +0 -283
  183. data/spec/prawn/images_spec.rb +0 -229
  184. data/spec/prawn/measurements_extensions_spec.rb +0 -24
  185. data/spec/prawn/outline_spec.rb +0 -512
  186. data/spec/prawn/repeater_spec.rb +0 -166
  187. data/spec/prawn/soft_mask_spec.rb +0 -74
  188. data/spec/prawn/stamp_spec.rb +0 -173
  189. data/spec/prawn/text/box_spec.rb +0 -1110
  190. data/spec/prawn/text/formatted/arranger_spec.rb +0 -466
  191. data/spec/prawn/text/formatted/box_spec.rb +0 -849
  192. data/spec/prawn/text/formatted/fragment_spec.rb +0 -343
  193. data/spec/prawn/text/formatted/line_wrap_spec.rb +0 -495
  194. data/spec/prawn/text/formatted/parser_spec.rb +0 -697
  195. data/spec/prawn/text_draw_text_spec.rb +0 -150
  196. data/spec/prawn/text_rendering_mode_spec.rb +0 -48
  197. data/spec/prawn/text_spacing_spec.rb +0 -95
  198. data/spec/prawn/text_spec.rb +0 -603
  199. data/spec/prawn/text_with_inline_formatting_spec.rb +0 -35
  200. data/spec/prawn/transformation_stack_spec.rb +0 -66
  201. data/spec/prawn/view_spec.rb +0 -63
  202. data/spec/prawn_manual_spec.rb +0 -35
  203. data/spec/spec_helper.rb +0 -48
metadata CHANGED
@@ -1,9 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: prawn
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.0
4
+ version: 2.5.0
5
5
  platform: ruby
6
6
  authors:
7
+ - Alexander Mankuta
7
8
  - Gregory Brown
8
9
  - Brad Ediger
9
10
  - Daniel Nelson
@@ -14,55 +15,67 @@ bindir: bin
14
15
  cert_chain:
15
16
  - |
16
17
  -----BEGIN CERTIFICATE-----
17
- MIIDODCCAiCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhhbGV4
18
- L0RDPXBvaW50bGVzcy9EQz1vbmUwHhcNMjAwODAxMTQxMjE1WhcNMjEwODAxMTQx
19
- MjE1WjAjMSEwHwYDVQQDDBhhbGV4L0RDPXBvaW50bGVzcy9EQz1vbmUwggEiMA0G
18
+ MIIC+jCCAeKgAwIBAgIBAzANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhhbGV4
19
+ L0RDPXBvaW50bGVzcy9EQz1vbmUwHhcNMjMxMTA5MTA1MzIxWhcNMjQxMTA4MTA1
20
+ MzIxWjAjMSEwHwYDVQQDDBhhbGV4L0RDPXBvaW50bGVzcy9EQz1vbmUwggEiMA0G
20
21
  CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPOVLPGEK+eaP6zJfifrpWvPTg4qo3
21
22
  XNJJPom80SwqX2hVCVsRDK4RYgKUQqKRQzHhlx14wZHwWLETBVbNDGX3uqyCnTWU
22
23
  JUKh3ydiZShXpNHoV/NW7hhEYvNsDcBAjYTmbvXOhuYCo0Tz/0N2Oiun/0wIICtP
23
24
  vytY9TY0/lklWjAbsqJjNOu3o8IYkJBAN/rU96E/6WhFwjnxLcTnV9RfFRXdjG5j
24
25
  CughoB2xSwKX8gwbQ8fsnaZRmdyDGYNpz6sGF0zycfiLkTttbLA2nYATCALy98CH
25
26
  nsyZNsTjb4WINCuY2yEDjwesw9f/ROkNC68EgQ5M+aMjp+D0WcYGfzojAgMBAAGj
26
- dzB1MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRPgIwSVbeonua/
27
- Ny/8576oxdUbrjAdBgNVHREEFjAUgRJhbGV4QHBvaW50bGVzcy5vbmUwHQYDVR0S
28
- BBYwFIESYWxleEBwb2ludGxlc3Mub25lMA0GCSqGSIb3DQEBCwUAA4IBAQAzhGxF
29
- M0bXJ9GWD9vdVHOyzBQBJcJAvnsz2yV3+r4eJBsQynFIscsea8lHFL/d1eHYP0mN
30
- k0fhK+WDcPlrj0Sn/Ezhk2qogTIekwDOK6pZkGRQzD45leJqQMnYd+/TXK3ri485
31
- Gi4oJ6NitnnUT59SQnjD5JcENfc0EcRzclmVRFE8W4O+ORgo4Dypq1rwYUzxeyUk
32
- mP5jNBWtH+hGUph28GQb0Hph6YnQb8zEFB88Xq80PK1SzkIPHpbTBk9mwPf6ypeX
33
- Un1TJEahAlgENVml6CyDXSwk0H8N1V3gm1mb9Fe1T2Z/kAzvjo0qTDEtMVLU7Bxh
34
- uqMUrdETjTnRYCVq
27
+ OTA3MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRPgIwSVbeonua/
28
+ Ny/8576oxdUbrjANBgkqhkiG9w0BAQsFAAOCAQEAX28QLxNNz5EgaZZuQQUkbOXB
29
+ 4b5luBO22535+Vgj2jw7yjV8KKoGMWKrnB00ijgntqPEPXCzaPNibOcPZV5WfWVS
30
+ t0Ls8lWE/8kezPwV4SbRe4Y7C+D4J+oirs0L5PtpREV9CJ7kfdW/AN9MtvjjBFlb
31
+ jHquD/MiOOMyHtuO0FiTL265m10thcAUsbyi0MehKgGbtJ5fGceHvZDqDouvbMjT
32
+ hoijFk1oTY939JhjdcHuJzMiS2TrqIw8Dr5DkQu2vAjHpw0aOOWhlRjNJ7RHYJNm
33
+ QugXmCnHQxSKTmc7imKuotyMdRRKFh8UEFCLRsFtBbNxkXyNuB4xBMuUYodhEw==
35
34
  -----END CERTIFICATE-----
36
- date: 2020-12-29 00:00:00.000000000 Z
35
+ date: 2024-03-05 00:00:00.000000000 Z
37
36
  dependencies:
37
+ - !ruby/object:Gem::Dependency
38
+ name: matrix
39
+ requirement: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '0.4'
44
+ type: :runtime
45
+ prerelease: false
46
+ version_requirements: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - "~>"
49
+ - !ruby/object:Gem::Version
50
+ version: '0.4'
38
51
  - !ruby/object:Gem::Dependency
39
52
  name: pdf-core
40
53
  requirement: !ruby/object:Gem::Requirement
41
54
  requirements:
42
55
  - - "~>"
43
56
  - !ruby/object:Gem::Version
44
- version: 0.9.0
57
+ version: 0.10.0
45
58
  type: :runtime
46
59
  prerelease: false
47
60
  version_requirements: !ruby/object:Gem::Requirement
48
61
  requirements:
49
62
  - - "~>"
50
63
  - !ruby/object:Gem::Version
51
- version: 0.9.0
64
+ version: 0.10.0
52
65
  - !ruby/object:Gem::Dependency
53
66
  name: ttfunk
54
67
  requirement: !ruby/object:Gem::Requirement
55
68
  requirements:
56
69
  - - "~>"
57
70
  - !ruby/object:Gem::Version
58
- version: '1.7'
71
+ version: '1.8'
59
72
  type: :runtime
60
73
  prerelease: false
61
74
  version_requirements: !ruby/object:Gem::Requirement
62
75
  requirements:
63
76
  - - "~>"
64
77
  - !ruby/object:Gem::Version
65
- version: '1.7'
78
+ version: '1.8'
66
79
  - !ruby/object:Gem::Dependency
67
80
  name: pdf-inspector
68
81
  requirement: !ruby/object:Gem::Requirement
@@ -109,30 +122,31 @@ dependencies:
109
122
  requirements:
110
123
  - - "~>"
111
124
  - !ruby/object:Gem::Version
112
- version: 0.1.0
125
+ version: 0.4.0
113
126
  type: :development
114
127
  prerelease: false
115
128
  version_requirements: !ruby/object:Gem::Requirement
116
129
  requirements:
117
130
  - - "~>"
118
131
  - !ruby/object:Gem::Version
119
- version: 0.1.0
132
+ version: 0.4.0
120
133
  - !ruby/object:Gem::Dependency
121
134
  name: prawn-manual_builder
122
135
  requirement: !ruby/object:Gem::Requirement
123
136
  requirements:
124
- - - ">="
137
+ - - "~>"
125
138
  - !ruby/object:Gem::Version
126
- version: 0.3.0
139
+ version: 0.4.0
127
140
  type: :development
128
141
  prerelease: false
129
142
  version_requirements: !ruby/object:Gem::Requirement
130
143
  requirements:
131
- - - ">="
144
+ - - "~>"
132
145
  - !ruby/object:Gem::Version
133
- version: 0.3.0
134
- description: " Prawn is a fast, tiny, and nimble PDF generator for Ruby\n"
146
+ version: 0.4.0
147
+ description: Prawn is a fast, tiny, and nimble PDF generator for Ruby
135
148
  email:
149
+ - alex@pointless.one
136
150
  - gregory.t.brown@gmail.com
137
151
  - brad@bradediger.com
138
152
  - dnelson@bluejade.com
@@ -142,13 +156,10 @@ executables: []
142
156
  extensions: []
143
157
  extra_rdoc_files: []
144
158
  files:
145
- - ".yardopts"
146
159
  - COPYING
147
160
  - GPLv2
148
161
  - GPLv3
149
- - Gemfile
150
162
  - LICENSE
151
- - Rakefile
152
163
  - data/fonts/Courier-Bold.afm
153
164
  - data/fonts/Courier-BoldOblique.afm
154
165
  - data/fonts/Courier-Oblique.afm
@@ -174,9 +185,11 @@ files:
174
185
  - lib/prawn/errors.rb
175
186
  - lib/prawn/font.rb
176
187
  - lib/prawn/font_metric_cache.rb
188
+ - lib/prawn/fonts.rb
177
189
  - lib/prawn/fonts/afm.rb
178
190
  - lib/prawn/fonts/dfont.rb
179
191
  - lib/prawn/fonts/otf.rb
192
+ - lib/prawn/fonts/to_unicode_cmap.rb
180
193
  - lib/prawn/fonts/ttc.rb
181
194
  - lib/prawn/fonts/ttf.rb
182
195
  - lib/prawn/graphics.rb
@@ -215,154 +228,18 @@ files:
215
228
  - lib/prawn/utilities.rb
216
229
  - lib/prawn/version.rb
217
230
  - lib/prawn/view.rb
218
- - manual/absolute_position.pdf
219
- - manual/basic_concepts/adding_pages.rb
220
- - manual/basic_concepts/basic_concepts.rb
221
- - manual/basic_concepts/creation.rb
222
- - manual/basic_concepts/cursor.rb
223
- - manual/basic_concepts/measurement.rb
224
- - manual/basic_concepts/origin.rb
225
- - manual/basic_concepts/other_cursor_helpers.rb
226
- - manual/basic_concepts/view.rb
227
- - manual/bounding_box/bounding_box.rb
228
- - manual/bounding_box/bounds.rb
229
- - manual/bounding_box/canvas.rb
230
- - manual/bounding_box/creation.rb
231
- - manual/bounding_box/indentation.rb
232
- - manual/bounding_box/nesting.rb
233
- - manual/bounding_box/russian_boxes.rb
234
- - manual/bounding_box/stretchy.rb
235
- - manual/contents.rb
236
- - manual/cover.rb
237
- - manual/document_and_page_options/background.rb
238
- - manual/document_and_page_options/document_and_page_options.rb
239
- - manual/document_and_page_options/metadata.rb
240
- - manual/document_and_page_options/page_margins.rb
241
- - manual/document_and_page_options/page_size.rb
242
- - manual/document_and_page_options/print_scaling.rb
243
- - manual/example_helper.rb
244
- - manual/graphics/blend_mode.rb
245
- - manual/graphics/circle_and_ellipse.rb
246
- - manual/graphics/color.rb
247
- - manual/graphics/common_lines.rb
248
- - manual/graphics/fill_and_stroke.rb
249
- - manual/graphics/fill_rules.rb
250
- - manual/graphics/gradients.rb
251
- - manual/graphics/graphics.rb
252
- - manual/graphics/helper.rb
253
- - manual/graphics/line_width.rb
254
- - manual/graphics/lines_and_curves.rb
255
- - manual/graphics/polygon.rb
256
- - manual/graphics/rectangle.rb
257
- - manual/graphics/rotate.rb
258
- - manual/graphics/scale.rb
259
- - manual/graphics/soft_masks.rb
260
- - manual/graphics/stroke_cap.rb
261
- - manual/graphics/stroke_dash.rb
262
- - manual/graphics/stroke_join.rb
263
- - manual/graphics/translate.rb
264
- - manual/graphics/transparency.rb
265
- - manual/how_to_read_this_manual.rb
266
- - manual/images/absolute_position.rb
267
- - manual/images/fit.rb
268
- - manual/images/horizontal.rb
269
- - manual/images/images.rb
270
- - manual/images/plain_image.rb
271
- - manual/images/scale.rb
272
- - manual/images/vertical.rb
273
- - manual/images/width_and_height.rb
274
- - manual/layout/boxes.rb
275
- - manual/layout/content.rb
276
- - manual/layout/layout.rb
277
- - manual/layout/simple_grid.rb
278
- - manual/outline/add_subsection_to.rb
279
- - manual/outline/insert_section_after.rb
280
- - manual/outline/outline.rb
281
- - manual/outline/sections_and_pages.rb
282
- - manual/repeatable_content/alternate_page_numbering.rb
283
- - manual/repeatable_content/page_numbering.rb
284
- - manual/repeatable_content/repeatable_content.rb
285
- - manual/repeatable_content/repeater.rb
286
- - manual/repeatable_content/stamp.rb
287
- - manual/security/encryption.rb
288
- - manual/security/permissions.rb
289
- - manual/security/security.rb
290
- - manual/table.rb
291
- - manual/text/alignment.rb
292
- - manual/text/color.rb
293
- - manual/text/column_box.rb
294
- - manual/text/fallback_fonts.rb
295
- - manual/text/font.rb
296
- - manual/text/font_size.rb
297
- - manual/text/font_style.rb
298
- - manual/text/formatted_callbacks.rb
299
- - manual/text/formatted_text.rb
300
- - manual/text/free_flowing_text.rb
301
- - manual/text/inline.rb
302
- - manual/text/kerning_and_character_spacing.rb
303
- - manual/text/leading.rb
304
- - manual/text/line_wrapping.rb
305
- - manual/text/paragraph_indentation.rb
306
- - manual/text/positioned_text.rb
307
- - manual/text/registering_families.rb
308
- - manual/text/rendering_and_color.rb
309
- - manual/text/right_to_left_text.rb
310
- - manual/text/rotation.rb
311
- - manual/text/single_usage.rb
312
- - manual/text/text.rb
313
- - manual/text/text_box_excess.rb
314
- - manual/text/text_box_extensions.rb
315
- - manual/text/text_box_overflow.rb
316
- - manual/text/utf8.rb
317
- - manual/text/win_ansi_charset.rb
318
- - prawn.gemspec
319
- - spec/data/curves.pdf
320
- - spec/extensions/encoding_helpers.rb
321
- - spec/prawn/document/bounding_box_spec.rb
322
- - spec/prawn/document/column_box_spec.rb
323
- - spec/prawn/document/security_spec.rb
324
- - spec/prawn/document_annotations_spec.rb
325
- - spec/prawn/document_destinations_spec.rb
326
- - spec/prawn/document_grid_spec.rb
327
- - spec/prawn/document_reference_spec.rb
328
- - spec/prawn/document_span_spec.rb
329
- - spec/prawn/document_spec.rb
330
- - spec/prawn/font_metric_cache_spec.rb
331
- - spec/prawn/font_spec.rb
332
- - spec/prawn/graphics/blend_mode_spec.rb
333
- - spec/prawn/graphics/transparency_spec.rb
334
- - spec/prawn/graphics_spec.rb
335
- - spec/prawn/graphics_stroke_styles_spec.rb
336
- - spec/prawn/image_handler_spec.rb
337
- - spec/prawn/images/jpg_spec.rb
338
- - spec/prawn/images/png_spec.rb
339
- - spec/prawn/images_spec.rb
340
- - spec/prawn/measurements_extensions_spec.rb
341
- - spec/prawn/outline_spec.rb
342
- - spec/prawn/repeater_spec.rb
343
- - spec/prawn/soft_mask_spec.rb
344
- - spec/prawn/stamp_spec.rb
345
- - spec/prawn/text/box_spec.rb
346
- - spec/prawn/text/formatted/arranger_spec.rb
347
- - spec/prawn/text/formatted/box_spec.rb
348
- - spec/prawn/text/formatted/fragment_spec.rb
349
- - spec/prawn/text/formatted/line_wrap_spec.rb
350
- - spec/prawn/text/formatted/parser_spec.rb
351
- - spec/prawn/text_draw_text_spec.rb
352
- - spec/prawn/text_rendering_mode_spec.rb
353
- - spec/prawn/text_spacing_spec.rb
354
- - spec/prawn/text_spec.rb
355
- - spec/prawn/text_with_inline_formatting_spec.rb
356
- - spec/prawn/transformation_stack_spec.rb
357
- - spec/prawn/view_spec.rb
358
- - spec/prawn_manual_spec.rb
359
- - spec/spec_helper.rb
360
- homepage: http://prawnpdf.org
231
+ homepage: http://prawnpdf.org/
361
232
  licenses:
362
- - PRAWN
363
- - GPL-2.0
364
- - GPL-3.0
365
- metadata: {}
233
+ - Nonstandard
234
+ - GPL-2.0-only
235
+ - GPL-3.0-only
236
+ metadata:
237
+ rubygems_mfa_required: 'true'
238
+ homepage_uri: http://prawnpdf.org/
239
+ changelog_uri: https://github.com/prawnpdf/prawn/blob/2.5.0/CHANGELOG.md
240
+ source_code_uri: https://github.com/prawnpdf/prawn
241
+ documentation_uri: https://prawnpdf.org/docs/prawn/2.5.0/
242
+ bug_tracker_uri: https://github.com/prawnpdf/prawn/issues
366
243
  post_install_message:
367
244
  rdoc_options: []
368
245
  require_paths:
@@ -371,14 +248,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
371
248
  requirements:
372
249
  - - ">="
373
250
  - !ruby/object:Gem::Version
374
- version: '2.5'
251
+ version: '2.7'
375
252
  required_rubygems_version: !ruby/object:Gem::Requirement
376
253
  requirements:
377
254
  - - ">="
378
255
  - !ruby/object:Gem::Version
379
256
  version: 1.3.6
380
257
  requirements: []
381
- rubygems_version: 3.1.4
258
+ rubygems_version: 3.5.3
382
259
  signing_key:
383
260
  specification_version: 4
384
261
  summary: A fast and nimble PDF generator for Ruby
metadata.gz.sig CHANGED
Binary file
data/.yardopts DELETED
@@ -1,10 +0,0 @@
1
- --charset UTF-8
2
- --main README.md
3
- --title 'Prawn Documentation'
4
- --no-private
5
- -
6
- CONTRIBUTING.md
7
- COPYING
8
- LICENSE
9
- README.md
10
- CHANGELOG.md
data/Gemfile DELETED
@@ -1,5 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- source 'https://rubygems.org'
4
-
5
- gemspec
data/Rakefile DELETED
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- GEMSPEC = File.expand_path('prawn.gemspec', __dir__)
4
- require 'prawn/dev/tasks'
5
-
6
- task default: %i[spec rubocop]
7
-
8
- desc "Generate the 'Prawn by Example' manual"
9
- task :manual do
10
- puts 'Building manual...'
11
- require File.expand_path(File.join(__dir__, %w[manual contents]))
12
- prawn_manual_document.render_file('manual.pdf')
13
- puts 'The Prawn manual is available at manual.pdf. Happy Prawning!'
14
- end
15
-
16
- desc 'Run a console with Prawn loaded'
17
- task :console do
18
- require 'irb'
19
- require 'irb/completion'
20
- require_relative 'lib/prawn'
21
- Prawn.debug = true
22
-
23
- ARGV.clear
24
- IRB.start
25
- end
Binary file
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # A PDF document is a collection of pages. When we create a new document be it
4
- # with <code>Document.new</code> or on a <code>Document.generate</code> block
5
- # one initial page is created for us.
6
- #
7
- # Some methods might create new pages automatically like <code>text</code> which
8
- # will create a new page whenever the text string cannot fit on the current
9
- # page.
10
- #
11
- # But what if you want to go to the next page by yourself? That is easy.
12
- #
13
- # Just use the <code>start_new_page</code> method and a shiny new page will be
14
- # created for you just like in the following snippet.
15
-
16
- require_relative '../example_helper'
17
-
18
- filename = File.basename(__FILE__).gsub('.rb', '.pdf')
19
- Prawn::ManualBuilder::Example.generate(filename) do
20
- text "We are still on the initial page for this example. Now I'll ask " \
21
- 'Prawn to gently start a new page. Please follow me to the next page.'
22
-
23
- start_new_page
24
-
25
- text "See. We've left the previous page behind."
26
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Examples for Prawn basic concepts.
4
- #
5
-
6
- require_relative '../example_helper'
7
-
8
- filename = File.basename(__FILE__).gsub('.rb', '.pdf')
9
- Prawn::ManualBuilder::Example.generate(filename, page_size: 'FOLIO') do
10
- package 'basic_concepts' do |p|
11
- p.example 'creation', eval_source: false, full_source: true
12
- p.example 'origin'
13
- p.example 'cursor'
14
- p.example 'other_cursor_helpers'
15
- p.example 'adding_pages'
16
- p.example 'measurement'
17
- p.example 'view', eval_source: false, full_source: true
18
-
19
- p.intro do
20
- prose <<-TEXT
21
- This chapter covers the minimum amount of functionality you'll need to
22
- start using Prawn.
23
-
24
- If you are new to Prawn this is the first chapter to read. Once you are
25
- comfortable with the concepts shown here you might want to check the
26
- Basics section of the Graphics, Bounding Box and Text sections.
27
-
28
- The examples show:
29
- TEXT
30
-
31
- list(
32
- 'How to create new pdf documents in every possible way',
33
- 'Where the origin for the document coordinates is. What are Bounding '\
34
- 'Boxes and how they interact with the origin',
35
- 'How the cursor behaves',
36
- 'How to start new pages',
37
- 'What the base unit for measurement and coordinates is and how to use '\
38
- 'other convenient measures',
39
- "How to build custom view objects that use Prawn's DSL"
40
- )
41
- end
42
- end
43
- end
@@ -1,38 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # There are three ways to create a PDF Document in Prawn: creating a new
4
- # <code>Prawn::Document</code> instance, or using the
5
- # <code>Prawn::Document.generate</code> method with and without block arguments.
6
- #
7
- # The following snippet showcase each way by creating a simple document with
8
- # some text drawn.
9
- #
10
- # When we instantiate the <code>Prawn::Document</code> object the actual pdf
11
- # document will only be created after we call <code>render_file</code>.
12
- #
13
- # The generate method will render the actual pdf object after exiting the block.
14
- # When we use it without a block argument the provided block is evaluated in the
15
- # context of a newly created <code>Prawn::Document</code> instance. When we use
16
- # it with a block argument a <code>Prawn::Document</code> instance is created
17
- # and passed to the block.
18
- #
19
- # The generate method without block arguments requires
20
- # less typing and defines and renders the pdf document in one shot.
21
- # Almost all of the examples are coded this way.
22
-
23
- require_relative '../example_helper'
24
-
25
- # Assignment
26
- pdf = Prawn::Document.new
27
- pdf.text 'Hello World'
28
- pdf.render_file 'assignment.pdf'
29
-
30
- # Implicit Block
31
- Prawn::Document.generate('implicit.pdf') do
32
- text 'Hello World'
33
- end
34
-
35
- # Explicit Block
36
- Prawn::Document.generate('explicit.pdf') do |pdf|
37
- pdf.text 'Hello World'
38
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # We normally write our documents from top to bottom and it is no different with
4
- # Prawn. Even if the origin is on the bottom left corner we still fill the page
5
- # from the top to the bottom. In other words the cursor for inserting content
6
- # starts on the top of the page.
7
- #
8
- # Most of the functions that insert content on the page will start at the
9
- # current cursor position and proceed to the bottom of the page.
10
- #
11
- # The following snippet shows how the cursor behaves when we add some text to
12
- # the page and demonstrates some of the helpers to manage the cursor position.
13
- # The <code>cursor</code> method returns the current cursor position.
14
-
15
- require_relative '../example_helper'
16
-
17
- filename = File.basename(__FILE__).gsub('.rb', '.pdf')
18
- Prawn::ManualBuilder::Example.generate(filename) do
19
- stroke_axis
20
-
21
- text "the cursor is here: #{cursor}"
22
- text "now it is here: #{cursor}"
23
-
24
- move_down 200
25
- text "on the first move the cursor went down to: #{cursor}"
26
-
27
- move_up 100
28
- text "on the second move the cursor went up to: #{cursor}"
29
-
30
- move_cursor_to 50
31
- text "on the last move the cursor went directly to: #{cursor}"
32
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # The base unit in Prawn is the PDF Point. One PDF Point is equal to 1/72 of
4
- # an inch.
5
- #
6
- # There is no need to waste time converting this measure. Prawn provides
7
- # helpers for converting from other measurements
8
- # to PDF Points.
9
- #
10
- # Just <code>require "prawn/measurement_extensions"</code> and it will mix some
11
- # helpers onto <code>Numeric</code> for converting common measurement units to
12
- # PDF Points.
13
-
14
- require_relative '../example_helper'
15
-
16
- filename = File.basename(__FILE__).gsub('.rb', '.pdf')
17
- Prawn::ManualBuilder::Example.generate(filename) do
18
- require 'prawn/measurement_extensions'
19
-
20
- %i[mm cm dm m in yd ft].each do |measurement|
21
- text "1 #{measurement} in PDF Points: #{1.public_send(measurement)} pt"
22
- move_down 5.mm
23
- end
24
- end
@@ -1,37 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # This is the most important concept you need to learn about Prawn:
4
- #
5
- # PDF documents have the origin <code>[0,0]</code> at the bottom-left corner of
6
- # the page.
7
- #
8
- # A bounding box is a structure which provides boundaries for inserting content.
9
- # A bounding box also has the property of relocating the origin to its relative
10
- # bottom-left corner. However, be aware that the location specified when
11
- # creating a bounding box is its top-left corner, not bottom-left (hence the
12
- # <code>[100, 300]</code> coordinates below).
13
- #
14
- # Even if you never create a bounding box explictly, each document already comes
15
- # with one called the margin box. This initial bounding box is the one
16
- # responsible for the document margins.
17
- #
18
- # So practically speaking the origin of a page on a default generated document
19
- # isn't the absolute bottom left corner but the bottom left corner of the margin
20
- # box.
21
- #
22
- # The following snippet strokes a circle on the margin box origin. Then strokes
23
- # the boundaries of a bounding box and a circle on its origin.
24
-
25
- require_relative '../example_helper'
26
-
27
- filename = File.basename(__FILE__).gsub('.rb', '.pdf')
28
- Prawn::ManualBuilder::Example.generate(filename) do
29
- stroke_axis
30
-
31
- stroke_circle [0, 0], 10
32
-
33
- bounding_box([100, 300], width: 300, height: 200) do
34
- stroke_bounds
35
- stroke_circle [0, 0], 10
36
- end
37
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # Another group of helpers for changing the cursor position are the pad methods.
4
- # They accept a numeric value and a block. <code>pad</code> will use the numeric
5
- # value to move the cursor down both before and after the block content.
6
- # <code>pad_top</code> will only move the cursor before the block while
7
- # <code>pad_bottom</code> will only move after.
8
- #
9
- # <code>float</code> is a method for not changing the cursor. Pass it a block
10
- # and the cursor will remain on the same place when the block returns.
11
-
12
- require_relative '../example_helper'
13
-
14
- filename = File.basename(__FILE__).gsub('.rb', '.pdf')
15
- Prawn::ManualBuilder::Example.generate(filename) do
16
- stroke_horizontal_rule
17
- pad(20) { text 'Text padded both before and after.' }
18
-
19
- stroke_horizontal_rule
20
- pad_top(20) { text 'Text padded on the top.' }
21
-
22
- stroke_horizontal_rule
23
- pad_bottom(20) { text 'Text padded on the bottom.' }
24
-
25
- stroke_horizontal_rule
26
- move_down 30
27
-
28
- text 'Text written before the float block.'
29
-
30
- float do
31
- move_down 30
32
- bounding_box([0, cursor], width: 200) do
33
- text 'Text written inside the float block.'
34
- stroke_bounds
35
- end
36
- end
37
-
38
- text 'Text written after the float block.'
39
- end