pdf-reader 2.9.2 → 2.15.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 (66) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +39 -0
  3. data/README.md +33 -33
  4. data/Rakefile +2 -2
  5. data/lib/pdf/reader/advanced_text_run_filter.rb +152 -0
  6. data/lib/pdf/reader/aes_v2_security_handler.rb +30 -0
  7. data/lib/pdf/reader/aes_v3_security_handler.rb +35 -3
  8. data/lib/pdf/reader/bounding_rectangle_runs_filter.rb +1 -0
  9. data/lib/pdf/reader/buffer.rb +39 -22
  10. data/lib/pdf/reader/cid_widths.rb +14 -6
  11. data/lib/pdf/reader/cmap.rb +16 -5
  12. data/lib/pdf/reader/encoding.rb +42 -18
  13. data/lib/pdf/reader/error.rb +6 -4
  14. data/lib/pdf/reader/filter/ascii85.rb +2 -0
  15. data/lib/pdf/reader/filter/ascii_hex.rb +2 -0
  16. data/lib/pdf/reader/filter/depredict.rb +6 -2
  17. data/lib/pdf/reader/filter/flate.rb +5 -2
  18. data/lib/pdf/reader/filter/lzw.rb +2 -0
  19. data/lib/pdf/reader/filter/null.rb +2 -0
  20. data/lib/pdf/reader/filter/run_length.rb +2 -0
  21. data/lib/pdf/reader/filter.rb +1 -0
  22. data/lib/pdf/reader/font.rb +99 -32
  23. data/lib/pdf/reader/font_descriptor.rb +79 -24
  24. data/lib/pdf/reader/form_xobject.rb +15 -1
  25. data/lib/pdf/reader/glyph_hash.rb +41 -8
  26. data/lib/pdf/reader/key_builder_v5.rb +17 -9
  27. data/lib/pdf/reader/lzw.rb +42 -16
  28. data/lib/pdf/reader/no_text_filter.rb +15 -0
  29. data/lib/pdf/reader/null_security_handler.rb +1 -0
  30. data/lib/pdf/reader/object_cache.rb +7 -2
  31. data/lib/pdf/reader/object_hash.rb +129 -16
  32. data/lib/pdf/reader/object_stream.rb +22 -5
  33. data/lib/pdf/reader/overlapping_runs_filter.rb +8 -2
  34. data/lib/pdf/reader/page.rb +66 -13
  35. data/lib/pdf/reader/page_layout.rb +26 -9
  36. data/lib/pdf/reader/page_state.rb +12 -3
  37. data/lib/pdf/reader/page_text_receiver.rb +16 -2
  38. data/lib/pdf/reader/pages_strategy.rb +1 -1
  39. data/lib/pdf/reader/parser.rb +52 -13
  40. data/lib/pdf/reader/point.rb +9 -2
  41. data/lib/pdf/reader/print_receiver.rb +2 -6
  42. data/lib/pdf/reader/rc4_security_handler.rb +2 -0
  43. data/lib/pdf/reader/rectangle.rb +24 -1
  44. data/lib/pdf/reader/reference.rb +13 -3
  45. data/lib/pdf/reader/register_receiver.rb +15 -2
  46. data/lib/pdf/reader/resources.rb +12 -2
  47. data/lib/pdf/reader/security_handler_factory.rb +13 -0
  48. data/lib/pdf/reader/standard_key_builder.rb +37 -23
  49. data/lib/pdf/reader/stream.rb +9 -3
  50. data/lib/pdf/reader/synchronized_cache.rb +6 -3
  51. data/lib/pdf/reader/text_run.rb +33 -3
  52. data/lib/pdf/reader/token.rb +1 -0
  53. data/lib/pdf/reader/transformation_matrix.rb +41 -10
  54. data/lib/pdf/reader/type_check.rb +53 -0
  55. data/lib/pdf/reader/unimplemented_security_handler.rb +2 -0
  56. data/lib/pdf/reader/validating_receiver.rb +29 -0
  57. data/lib/pdf/reader/width_calculator/built_in.rb +13 -5
  58. data/lib/pdf/reader/width_calculator/composite.rb +11 -3
  59. data/lib/pdf/reader/width_calculator/true_type.rb +14 -12
  60. data/lib/pdf/reader/width_calculator/type_one_or_three.rb +8 -5
  61. data/lib/pdf/reader/width_calculator/type_zero.rb +8 -3
  62. data/lib/pdf/reader/xref.rb +31 -10
  63. data/lib/pdf/reader/zero_width_runs_filter.rb +1 -0
  64. data/lib/pdf/reader.rb +24 -12
  65. data/rbi/pdf-reader.rbi +1504 -1480
  66. metadata +34 -17
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdf-reader
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.9.2
4
+ version: 2.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Healy
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2022-02-20 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: rake
@@ -98,16 +97,28 @@ dependencies:
98
97
  name: Ascii85
99
98
  requirement: !ruby/object:Gem::Requirement
100
99
  requirements:
101
- - - "~>"
100
+ - - ">="
102
101
  - !ruby/object:Gem::Version
103
102
  version: '1.0'
103
+ - - "<"
104
+ - !ruby/object:Gem::Version
105
+ version: '3.0'
106
+ - - "!="
107
+ - !ruby/object:Gem::Version
108
+ version: 2.0.0
104
109
  type: :runtime
105
110
  prerelease: false
106
111
  version_requirements: !ruby/object:Gem::Requirement
107
112
  requirements:
108
- - - "~>"
113
+ - - ">="
109
114
  - !ruby/object:Gem::Version
110
115
  version: '1.0'
116
+ - - "<"
117
+ - !ruby/object:Gem::Version
118
+ version: '3.0'
119
+ - - "!="
120
+ - !ruby/object:Gem::Version
121
+ version: 2.0.0
111
122
  - !ruby/object:Gem::Dependency
112
123
  name: ruby-rc4
113
124
  requirement: !ruby/object:Gem::Requirement
@@ -154,30 +165,36 @@ dependencies:
154
165
  name: afm
155
166
  requirement: !ruby/object:Gem::Requirement
156
167
  requirements:
157
- - - "~>"
168
+ - - ">="
158
169
  - !ruby/object:Gem::Version
159
170
  version: 0.2.1
171
+ - - "<"
172
+ - !ruby/object:Gem::Version
173
+ version: '2'
160
174
  type: :runtime
161
175
  prerelease: false
162
176
  version_requirements: !ruby/object:Gem::Requirement
163
177
  requirements:
164
- - - "~>"
178
+ - - ">="
165
179
  - !ruby/object:Gem::Version
166
180
  version: 0.2.1
181
+ - - "<"
182
+ - !ruby/object:Gem::Version
183
+ version: '2'
167
184
  description: The PDF::Reader library implements a PDF parser conforming as much as
168
185
  possible to the PDF specification from Adobe
169
186
  email:
170
187
  - james@yob.id.au
171
188
  executables:
189
+ - pdf_callbacks
172
190
  - pdf_object
173
191
  - pdf_text
174
- - pdf_callbacks
175
192
  extensions: []
176
193
  extra_rdoc_files:
177
- - README.md
178
- - TODO
179
194
  - CHANGELOG
180
195
  - MIT-LICENSE
196
+ - README.md
197
+ - TODO
181
198
  files:
182
199
  - CHANGELOG
183
200
  - MIT-LICENSE
@@ -200,6 +217,7 @@ files:
200
217
  - examples/version.rb
201
218
  - lib/pdf-reader.rb
202
219
  - lib/pdf/reader.rb
220
+ - lib/pdf/reader/advanced_text_run_filter.rb
203
221
  - lib/pdf/reader/aes_v2_security_handler.rb
204
222
  - lib/pdf/reader/aes_v3_security_handler.rb
205
223
  - lib/pdf/reader/afm/Courier-Bold.afm
@@ -246,6 +264,7 @@ files:
246
264
  - lib/pdf/reader/glyphlist.txt
247
265
  - lib/pdf/reader/key_builder_v5.rb
248
266
  - lib/pdf/reader/lzw.rb
267
+ - lib/pdf/reader/no_text_filter.rb
249
268
  - lib/pdf/reader/null_security_handler.rb
250
269
  - lib/pdf/reader/object_cache.rb
251
270
  - lib/pdf/reader/object_hash.rb
@@ -288,10 +307,9 @@ licenses:
288
307
  - MIT
289
308
  metadata:
290
309
  bug_tracker_uri: https://github.com/yob/pdf-reader/issues
291
- changelog_uri: https://github.com/yob/pdf-reader/blob/v2.9.2/CHANGELOG
292
- documentation_uri: https://www.rubydoc.info/gems/pdf-reader/2.9.2
293
- source_code_uri: https://github.com/yob/pdf-reader/tree/v2.9.2
294
- post_install_message:
310
+ changelog_uri: https://github.com/yob/pdf-reader/blob/v2.15.0/CHANGELOG
311
+ documentation_uri: https://www.rubydoc.info/gems/pdf-reader/2.15.0
312
+ source_code_uri: https://github.com/yob/pdf-reader/tree/v2.15.0
295
313
  rdoc_options:
296
314
  - "--title"
297
315
  - PDF::Reader Documentation
@@ -304,15 +322,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
304
322
  requirements:
305
323
  - - ">="
306
324
  - !ruby/object:Gem::Version
307
- version: '2.0'
325
+ version: '2.1'
308
326
  required_rubygems_version: !ruby/object:Gem::Requirement
309
327
  requirements:
310
328
  - - ">="
311
329
  - !ruby/object:Gem::Version
312
330
  version: '0'
313
331
  requirements: []
314
- rubygems_version: 3.2.32
315
- signing_key:
332
+ rubygems_version: 3.6.9
316
333
  specification_version: 4
317
334
  summary: A library for accessing the content of PDF files
318
335
  test_files: []