prawn 2.3.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/lib/prawn/document/bounding_box.rb +223 -143
  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 +21 -18
  7. data/lib/prawn/document.rb +273 -182
  8. data/lib/prawn/encoding.rb +2 -5
  9. data/lib/prawn/errors.rb +23 -34
  10. data/lib/prawn/font.rb +254 -139
  11. data/lib/prawn/font_metric_cache.rb +18 -16
  12. data/lib/prawn/fonts/afm.rb +99 -57
  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 +345 -107
  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 +75 -50
  22. data/lib/prawn/graphics/dash.rb +45 -42
  23. data/lib/prawn/graphics/join_style.rb +18 -12
  24. data/lib/prawn/graphics/patterns.rb +239 -110
  25. data/lib/prawn/graphics/transformation.rb +51 -44
  26. data/lib/prawn/graphics/transparency.rb +16 -40
  27. data/lib/prawn/graphics.rb +370 -260
  28. data/lib/prawn/grid.rb +219 -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 +46 -20
  32. data/lib/prawn/images/png.rb +94 -42
  33. data/lib/prawn/images.rb +70 -81
  34. data/lib/prawn/measurement_extensions.rb +39 -8
  35. data/lib/prawn/measurements.rb +60 -5
  36. data/lib/prawn/outline.rb +120 -113
  37. data/lib/prawn/repeater.rb +52 -36
  38. data/lib/prawn/security/arcfour.rb +4 -4
  39. data/lib/prawn/security.rb +106 -98
  40. data/lib/prawn/soft_mask.rb +42 -30
  41. data/lib/prawn/stamp.rb +38 -42
  42. data/lib/prawn/text/box.rb +156 -105
  43. data/lib/prawn/text/formatted/arranger.rb +121 -41
  44. data/lib/prawn/text/formatted/box.rb +239 -163
  45. data/lib/prawn/text/formatted/fragment.rb +130 -14
  46. data/lib/prawn/text/formatted/line_wrap.rb +49 -38
  47. data/lib/prawn/text/formatted/parser.rb +116 -74
  48. data/lib/prawn/text/formatted/wrap.rb +25 -26
  49. data/lib/prawn/text/formatted.rb +75 -0
  50. data/lib/prawn/text.rb +456 -211
  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 +69 -54
  55. data/lib/prawn.rb +24 -18
  56. data.tar.gz.sig +0 -0
  57. metadata +55 -262
  58. metadata.gz.sig +3 -4
  59. data/.yardopts +0 -10
  60. data/Gemfile +0 -5
  61. data/Rakefile +0 -54
  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 -25
  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 -22
  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 -37
  94. data/manual/graphics/gradients.rb +0 -43
  95. data/manual/graphics/graphics.rb +0 -64
  96. data/manual/graphics/helper.rb +0 -27
  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 -28
  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 -27
  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 -41
  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 -22
  142. data/manual/text/formatted_callbacks.rb +0 -65
  143. data/manual/text/formatted_text.rb +0 -58
  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 -32
  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 -47
  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 -49
  160. data/manual/text/utf8.rb +0 -27
  161. data/manual/text/win_ansi_charset.rb +0 -62
  162. data/prawn.gemspec +0 -57
  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 -546
  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 -36
  173. data/spec/prawn/document_spec.rb +0 -802
  174. data/spec/prawn/font_metric_cache_spec.rb +0 -54
  175. data/spec/prawn/font_spec.rb +0 -542
  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 -837
  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 -224
  184. data/spec/prawn/measurements_extensions_spec.rb +0 -24
  185. data/spec/prawn/outline_spec.rb +0 -412
  186. data/spec/prawn/repeater_spec.rb +0 -165
  187. data/spec/prawn/soft_mask_spec.rb +0 -74
  188. data/spec/prawn/stamp_spec.rb +0 -172
  189. data/spec/prawn/text/box_spec.rb +0 -1112
  190. data/spec/prawn/text/formatted/arranger_spec.rb +0 -466
  191. data/spec/prawn/text/formatted/box_spec.rb +0 -846
  192. data/spec/prawn/text/formatted/fragment_spec.rb +0 -343
  193. data/spec/prawn/text/formatted/line_wrap_spec.rb +0 -494
  194. data/spec/prawn/text/formatted/parser_spec.rb +0 -697
  195. data/spec/prawn/text_draw_text_spec.rb +0 -149
  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.3.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-08-01 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.8.1
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.8.1
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.6'
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.6'
78
+ version: '1.8'
66
79
  - !ruby/object:Gem::Dependency
67
80
  name: pdf-inspector
68
81
  requirement: !ruby/object:Gem::Requirement
@@ -104,119 +117,36 @@ dependencies:
104
117
  - !ruby/object:Gem::Version
105
118
  version: 1.4.1
106
119
  - !ruby/object:Gem::Dependency
107
- name: prawn-manual_builder
108
- requirement: !ruby/object:Gem::Requirement
109
- requirements:
110
- - - ">="
111
- - !ruby/object:Gem::Version
112
- version: 0.3.0
113
- type: :development
114
- prerelease: false
115
- version_requirements: !ruby/object:Gem::Requirement
116
- requirements:
117
- - - ">="
118
- - !ruby/object:Gem::Version
119
- version: 0.3.0
120
- - !ruby/object:Gem::Dependency
121
- name: rake
122
- requirement: !ruby/object:Gem::Requirement
123
- requirements:
124
- - - "~>"
125
- - !ruby/object:Gem::Version
126
- version: '12.0'
127
- type: :development
128
- prerelease: false
129
- version_requirements: !ruby/object:Gem::Requirement
130
- requirements:
131
- - - "~>"
132
- - !ruby/object:Gem::Version
133
- version: '12.0'
134
- - !ruby/object:Gem::Dependency
135
- name: rspec
136
- requirement: !ruby/object:Gem::Requirement
137
- requirements:
138
- - - "~>"
139
- - !ruby/object:Gem::Version
140
- version: '3.0'
141
- type: :development
142
- prerelease: false
143
- version_requirements: !ruby/object:Gem::Requirement
144
- requirements:
145
- - - "~>"
146
- - !ruby/object:Gem::Version
147
- version: '3.0'
148
- - !ruby/object:Gem::Dependency
149
- name: rubocop
150
- requirement: !ruby/object:Gem::Requirement
151
- requirements:
152
- - - "~>"
153
- - !ruby/object:Gem::Version
154
- version: 0.84.0
155
- type: :development
156
- prerelease: false
157
- version_requirements: !ruby/object:Gem::Requirement
158
- requirements:
159
- - - "~>"
160
- - !ruby/object:Gem::Version
161
- version: 0.84.0
162
- - !ruby/object:Gem::Dependency
163
- name: rubocop-performance
120
+ name: prawn-dev
164
121
  requirement: !ruby/object:Gem::Requirement
165
122
  requirements:
166
123
  - - "~>"
167
124
  - !ruby/object:Gem::Version
168
- version: '1.1'
125
+ version: 0.4.0
169
126
  type: :development
170
127
  prerelease: false
171
128
  version_requirements: !ruby/object:Gem::Requirement
172
129
  requirements:
173
130
  - - "~>"
174
131
  - !ruby/object:Gem::Version
175
- version: '1.1'
132
+ version: 0.4.0
176
133
  - !ruby/object:Gem::Dependency
177
- name: rubocop-rspec
134
+ name: prawn-manual_builder
178
135
  requirement: !ruby/object:Gem::Requirement
179
136
  requirements:
180
137
  - - "~>"
181
138
  - !ruby/object:Gem::Version
182
- version: '1.32'
139
+ version: 0.4.0
183
140
  type: :development
184
141
  prerelease: false
185
142
  version_requirements: !ruby/object:Gem::Requirement
186
143
  requirements:
187
144
  - - "~>"
188
145
  - !ruby/object:Gem::Version
189
- version: '1.32'
190
- - !ruby/object:Gem::Dependency
191
- name: simplecov
192
- requirement: !ruby/object:Gem::Requirement
193
- requirements:
194
- - - ">="
195
- - !ruby/object:Gem::Version
196
- version: '0'
197
- type: :development
198
- prerelease: false
199
- version_requirements: !ruby/object:Gem::Requirement
200
- requirements:
201
- - - ">="
202
- - !ruby/object:Gem::Version
203
- version: '0'
204
- - !ruby/object:Gem::Dependency
205
- name: yard
206
- requirement: !ruby/object:Gem::Requirement
207
- requirements:
208
- - - ">="
209
- - !ruby/object:Gem::Version
210
- version: '0'
211
- type: :development
212
- prerelease: false
213
- version_requirements: !ruby/object:Gem::Requirement
214
- requirements:
215
- - - ">="
216
- - !ruby/object:Gem::Version
217
- version: '0'
218
- 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
219
148
  email:
149
+ - alex@pointless.one
220
150
  - gregory.t.brown@gmail.com
221
151
  - brad@bradediger.com
222
152
  - dnelson@bluejade.com
@@ -226,13 +156,10 @@ executables: []
226
156
  extensions: []
227
157
  extra_rdoc_files: []
228
158
  files:
229
- - ".yardopts"
230
159
  - COPYING
231
160
  - GPLv2
232
161
  - GPLv3
233
- - Gemfile
234
162
  - LICENSE
235
- - Rakefile
236
163
  - data/fonts/Courier-Bold.afm
237
164
  - data/fonts/Courier-BoldOblique.afm
238
165
  - data/fonts/Courier-Oblique.afm
@@ -258,9 +185,11 @@ files:
258
185
  - lib/prawn/errors.rb
259
186
  - lib/prawn/font.rb
260
187
  - lib/prawn/font_metric_cache.rb
188
+ - lib/prawn/fonts.rb
261
189
  - lib/prawn/fonts/afm.rb
262
190
  - lib/prawn/fonts/dfont.rb
263
191
  - lib/prawn/fonts/otf.rb
192
+ - lib/prawn/fonts/to_unicode_cmap.rb
264
193
  - lib/prawn/fonts/ttc.rb
265
194
  - lib/prawn/fonts/ttf.rb
266
195
  - lib/prawn/graphics.rb
@@ -299,170 +228,34 @@ files:
299
228
  - lib/prawn/utilities.rb
300
229
  - lib/prawn/version.rb
301
230
  - lib/prawn/view.rb
302
- - manual/absolute_position.pdf
303
- - manual/basic_concepts/adding_pages.rb
304
- - manual/basic_concepts/basic_concepts.rb
305
- - manual/basic_concepts/creation.rb
306
- - manual/basic_concepts/cursor.rb
307
- - manual/basic_concepts/measurement.rb
308
- - manual/basic_concepts/origin.rb
309
- - manual/basic_concepts/other_cursor_helpers.rb
310
- - manual/basic_concepts/view.rb
311
- - manual/bounding_box/bounding_box.rb
312
- - manual/bounding_box/bounds.rb
313
- - manual/bounding_box/canvas.rb
314
- - manual/bounding_box/creation.rb
315
- - manual/bounding_box/indentation.rb
316
- - manual/bounding_box/nesting.rb
317
- - manual/bounding_box/russian_boxes.rb
318
- - manual/bounding_box/stretchy.rb
319
- - manual/contents.rb
320
- - manual/cover.rb
321
- - manual/document_and_page_options/background.rb
322
- - manual/document_and_page_options/document_and_page_options.rb
323
- - manual/document_and_page_options/metadata.rb
324
- - manual/document_and_page_options/page_margins.rb
325
- - manual/document_and_page_options/page_size.rb
326
- - manual/document_and_page_options/print_scaling.rb
327
- - manual/example_helper.rb
328
- - manual/graphics/blend_mode.rb
329
- - manual/graphics/circle_and_ellipse.rb
330
- - manual/graphics/color.rb
331
- - manual/graphics/common_lines.rb
332
- - manual/graphics/fill_and_stroke.rb
333
- - manual/graphics/fill_rules.rb
334
- - manual/graphics/gradients.rb
335
- - manual/graphics/graphics.rb
336
- - manual/graphics/helper.rb
337
- - manual/graphics/line_width.rb
338
- - manual/graphics/lines_and_curves.rb
339
- - manual/graphics/polygon.rb
340
- - manual/graphics/rectangle.rb
341
- - manual/graphics/rotate.rb
342
- - manual/graphics/scale.rb
343
- - manual/graphics/soft_masks.rb
344
- - manual/graphics/stroke_cap.rb
345
- - manual/graphics/stroke_dash.rb
346
- - manual/graphics/stroke_join.rb
347
- - manual/graphics/translate.rb
348
- - manual/graphics/transparency.rb
349
- - manual/how_to_read_this_manual.rb
350
- - manual/images/absolute_position.rb
351
- - manual/images/fit.rb
352
- - manual/images/horizontal.rb
353
- - manual/images/images.rb
354
- - manual/images/plain_image.rb
355
- - manual/images/scale.rb
356
- - manual/images/vertical.rb
357
- - manual/images/width_and_height.rb
358
- - manual/layout/boxes.rb
359
- - manual/layout/content.rb
360
- - manual/layout/layout.rb
361
- - manual/layout/simple_grid.rb
362
- - manual/outline/add_subsection_to.rb
363
- - manual/outline/insert_section_after.rb
364
- - manual/outline/outline.rb
365
- - manual/outline/sections_and_pages.rb
366
- - manual/repeatable_content/alternate_page_numbering.rb
367
- - manual/repeatable_content/page_numbering.rb
368
- - manual/repeatable_content/repeatable_content.rb
369
- - manual/repeatable_content/repeater.rb
370
- - manual/repeatable_content/stamp.rb
371
- - manual/security/encryption.rb
372
- - manual/security/permissions.rb
373
- - manual/security/security.rb
374
- - manual/table.rb
375
- - manual/text/alignment.rb
376
- - manual/text/color.rb
377
- - manual/text/column_box.rb
378
- - manual/text/fallback_fonts.rb
379
- - manual/text/font.rb
380
- - manual/text/font_size.rb
381
- - manual/text/font_style.rb
382
- - manual/text/formatted_callbacks.rb
383
- - manual/text/formatted_text.rb
384
- - manual/text/free_flowing_text.rb
385
- - manual/text/inline.rb
386
- - manual/text/kerning_and_character_spacing.rb
387
- - manual/text/leading.rb
388
- - manual/text/line_wrapping.rb
389
- - manual/text/paragraph_indentation.rb
390
- - manual/text/positioned_text.rb
391
- - manual/text/registering_families.rb
392
- - manual/text/rendering_and_color.rb
393
- - manual/text/right_to_left_text.rb
394
- - manual/text/rotation.rb
395
- - manual/text/single_usage.rb
396
- - manual/text/text.rb
397
- - manual/text/text_box_excess.rb
398
- - manual/text/text_box_extensions.rb
399
- - manual/text/text_box_overflow.rb
400
- - manual/text/utf8.rb
401
- - manual/text/win_ansi_charset.rb
402
- - prawn.gemspec
403
- - spec/data/curves.pdf
404
- - spec/extensions/encoding_helpers.rb
405
- - spec/prawn/document/bounding_box_spec.rb
406
- - spec/prawn/document/column_box_spec.rb
407
- - spec/prawn/document/security_spec.rb
408
- - spec/prawn/document_annotations_spec.rb
409
- - spec/prawn/document_destinations_spec.rb
410
- - spec/prawn/document_grid_spec.rb
411
- - spec/prawn/document_reference_spec.rb
412
- - spec/prawn/document_span_spec.rb
413
- - spec/prawn/document_spec.rb
414
- - spec/prawn/font_metric_cache_spec.rb
415
- - spec/prawn/font_spec.rb
416
- - spec/prawn/graphics/blend_mode_spec.rb
417
- - spec/prawn/graphics/transparency_spec.rb
418
- - spec/prawn/graphics_spec.rb
419
- - spec/prawn/graphics_stroke_styles_spec.rb
420
- - spec/prawn/image_handler_spec.rb
421
- - spec/prawn/images/jpg_spec.rb
422
- - spec/prawn/images/png_spec.rb
423
- - spec/prawn/images_spec.rb
424
- - spec/prawn/measurements_extensions_spec.rb
425
- - spec/prawn/outline_spec.rb
426
- - spec/prawn/repeater_spec.rb
427
- - spec/prawn/soft_mask_spec.rb
428
- - spec/prawn/stamp_spec.rb
429
- - spec/prawn/text/box_spec.rb
430
- - spec/prawn/text/formatted/arranger_spec.rb
431
- - spec/prawn/text/formatted/box_spec.rb
432
- - spec/prawn/text/formatted/fragment_spec.rb
433
- - spec/prawn/text/formatted/line_wrap_spec.rb
434
- - spec/prawn/text/formatted/parser_spec.rb
435
- - spec/prawn/text_draw_text_spec.rb
436
- - spec/prawn/text_rendering_mode_spec.rb
437
- - spec/prawn/text_spacing_spec.rb
438
- - spec/prawn/text_spec.rb
439
- - spec/prawn/text_with_inline_formatting_spec.rb
440
- - spec/prawn/transformation_stack_spec.rb
441
- - spec/prawn/view_spec.rb
442
- - spec/prawn_manual_spec.rb
443
- - spec/spec_helper.rb
444
- homepage: http://prawnpdf.org
231
+ homepage: http://prawnpdf.org/
445
232
  licenses:
446
- - PRAWN
447
- - GPL-2.0
448
- - GPL-3.0
449
- 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
450
243
  post_install_message:
451
244
  rdoc_options: []
452
245
  require_paths:
453
246
  - lib
454
247
  required_ruby_version: !ruby/object:Gem::Requirement
455
248
  requirements:
456
- - - "~>"
249
+ - - ">="
457
250
  - !ruby/object:Gem::Version
458
- version: '2.5'
251
+ version: '2.7'
459
252
  required_rubygems_version: !ruby/object:Gem::Requirement
460
253
  requirements:
461
254
  - - ">="
462
255
  - !ruby/object:Gem::Version
463
256
  version: 1.3.6
464
257
  requirements: []
465
- rubygems_version: 3.1.2
258
+ rubygems_version: 3.5.3
466
259
  signing_key:
467
260
  specification_version: 4
468
261
  summary: A fast and nimble PDF generator for Ruby
metadata.gz.sig CHANGED
@@ -1,4 +1,3 @@
1
- ZSQ�V@�V
2
- k���:��[w�%�2>pI�]�� ^;Kn8�=
3
- �k��E���Ew��q��<�ܤ�e���XVP�i|̖�n���a�}�EG��*8�m����
4
- ��
1
+ .��/熂�-tڨ�9��~& 6����{�]|�o�$�w�����t
2
+ \fL�ܾ�C����s_��|!�Lf-sCC����
3
+ ��ܯ���8���oP:@�f����!�?��́���
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,54 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'rake'
4
- require 'rspec/core/rake_task'
5
- require 'yard'
6
- require 'rubygems/package_task'
7
- require 'rubocop/rake_task'
8
-
9
- task default: %i[spec rubocop]
10
-
11
- desc 'Run all rspec files'
12
- RSpec::Core::RakeTask.new('spec') do |c|
13
- c.rspec_opts = '-t ~unresolved'
14
- end
15
-
16
- YARD::Rake::YardocTask.new do |t|
17
- t.options = ['--output-dir', 'doc/html']
18
- end
19
- task docs: :yard
20
-
21
- desc "Generate the 'Prawn by Example' manual"
22
- task :manual do
23
- puts 'Building manual...'
24
- require File.expand_path(File.join(__dir__, %w[manual contents]))
25
- prawn_manual_document.render_file('manual.pdf')
26
- puts 'The Prawn manual is available at manual.pdf. Happy Prawning!'
27
- end
28
-
29
- spec = Gem::Specification.load 'prawn.gemspec'
30
- Gem::PackageTask.new(spec) do |pkg|
31
- pkg.need_zip = true
32
- pkg.need_tar = true
33
- end
34
-
35
- desc 'Run a console with Prawn loaded'
36
- task :console do
37
- require 'irb'
38
- require 'irb/completion'
39
- require_relative 'lib/prawn'
40
- Prawn.debug = true
41
-
42
- ARGV.clear
43
- IRB.start
44
- end
45
-
46
- RuboCop::RakeTask.new
47
-
48
- task :checksum do
49
- require 'digest/sha2'
50
- built_gem_path = "prawn-#{Prawn::VERSION}.gem"
51
- checksum = Digest::SHA512.new.hexdigest(File.read(built_gem_path))
52
- checksum_path = "checksums/#{built_gem_path}.sha512"
53
- File.write(checksum_path, checksum)
54
- 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.send(measurement)} pt"
22
- move_down 5.mm
23
- end
24
- end