pdf-reader 2.15.0 → 2.16.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.
data/rbi/pdf-reader.rbi CHANGED
@@ -33,21 +33,9 @@ class PDF::Reader
33
33
 
34
34
  private
35
35
 
36
- sig { params(obj: T.untyped).returns(T.untyped) }
37
- def doc_strings_to_utf8(obj); end
38
-
39
- sig { params(str: ::String).returns(T::Boolean) }
40
- def has_utf16_bom?(str); end
41
-
42
- sig { params(obj: ::String).returns(::String) }
43
- def pdfdoc_to_utf8(obj); end
44
-
45
36
  sig { returns(T::Hash[::Symbol, T.untyped]) }
46
37
  def root; end
47
38
 
48
- sig { params(obj: ::String).returns(::String) }
49
- def utf16_to_utf8(obj); end
50
-
51
39
  class << self
52
40
  sig do
53
41
  params(
@@ -198,6 +186,9 @@ class PDF::Reader::Buffer
198
186
  sig { returns(T::Boolean) }
199
187
  def in_content_stream?; end
200
188
 
189
+ sig { params(str: ::String, regexp: ::Regexp).returns(T::Boolean) }
190
+ def match?(str, regexp); end
191
+
201
192
  sig { void }
202
193
  def merge_indirect_reference; end
203
194
 
@@ -237,6 +228,7 @@ PDF::Reader::Buffer::ID = T.let(T.unsafe(nil), String)
237
228
  PDF::Reader::Buffer::LEFT_PAREN = T.let(T.unsafe(nil), String)
238
229
  PDF::Reader::Buffer::LESS_THAN = T.let(T.unsafe(nil), String)
239
230
  PDF::Reader::Buffer::LF = T.let(T.unsafe(nil), String)
231
+ PDF::Reader::Buffer::NAME_TERMINATOR_BYTES = T.let(T.unsafe(nil), Array)
240
232
  PDF::Reader::Buffer::NULL_BYTE = T.let(T.unsafe(nil), String)
241
233
  PDF::Reader::Buffer::STREAM = T.let(T.unsafe(nil), String)
242
234
  PDF::Reader::Buffer::TOKEN_DELIMITER = T.let(T.unsafe(nil), Array)
@@ -282,6 +274,8 @@ class PDF::Reader::CMap
282
274
  end
283
275
 
284
276
  PDF::Reader::CMap::CMAP_KEYWORDS = T.let(T.unsafe(nil), Hash)
277
+ PDF::Reader::CMap::EMPTY_CODEPOINTS = T.let(T.unsafe(nil), Array)
278
+ PDF::Reader::CMap::HIGH_SURROGATE_RANGE = T.let(T.unsafe(nil), Range)
285
279
 
286
280
  class PDF::Reader::CidWidths
287
281
  extend ::Forwardable
@@ -328,12 +322,12 @@ class PDF::Reader::Encoding
328
322
 
329
323
  private
330
324
 
325
+ sig { params(file: ::String).returns(T::Hash[::Integer, ::Integer]) }
326
+ def build_file_mapping(file); end
327
+
331
328
  sig { params(str: ::String).returns(::String) }
332
329
  def convert_to_utf8(str); end
333
330
 
334
- sig { returns(T::Hash[::Integer, ::Integer]) }
335
- def default_mapping; end
336
-
337
331
  sig { params(enc: ::Symbol).returns(T.nilable(::String)) }
338
332
  def get_mapping_file(enc); end
339
333
 
@@ -349,15 +343,47 @@ class PDF::Reader::Encoding
349
343
  sig { params(times: ::Integer).returns(::String) }
350
344
  def little_boxes(times); end
351
345
 
352
- sig { params(file: ::String).void }
353
- def load_mapping(file); end
354
-
355
346
  sig { returns(T::Boolean) }
356
347
  def utf8_conversion_impossible?; end
348
+
349
+ sig { params(codepoint: ::Integer).returns(T::Boolean) }
350
+ def valid_unicode_scalar?(codepoint); end
357
351
  end
358
352
 
359
353
  PDF::Reader::Encoding::CONTROL_CHARS = T.let(T.unsafe(nil), Array)
354
+ PDF::Reader::Encoding::DEFAULT_MAPPING = T.let(T.unsafe(nil), Hash)
355
+ PDF::Reader::Encoding::FILE_MAPPINGS = T.let(T.unsafe(nil), Hash)
360
356
  PDF::Reader::Encoding::UNKNOWN_CHAR = T.let(T.unsafe(nil), Integer)
357
+
358
+ class PDF::Reader::EncodingUtils
359
+ sig { params(obj: T.untyped).returns(T.untyped) }
360
+ def obj_to_utf8(obj); end
361
+
362
+ sig { params(str: ::String).returns(::String) }
363
+ def string_to_utf8(str); end
364
+
365
+ private
366
+
367
+ sig { params(str: ::String).returns(T::Boolean) }
368
+ def has_utf16_bom?(str); end
369
+
370
+ sig { params(str: ::String).returns(::String) }
371
+ def pdfdoc_to_utf8(str); end
372
+
373
+ sig { params(obj: ::String).returns(::String) }
374
+ def utf16_to_utf8(obj); end
375
+
376
+ class << self
377
+ sig { params(obj: T.untyped).returns(T.untyped) }
378
+ def obj_to_utf8(obj); end
379
+
380
+ sig { params(str: ::String).returns(::String) }
381
+ def string_to_utf8(str); end
382
+ end
383
+ end
384
+
385
+ PDF::Reader::EncodingUtils::PDFDOC_CODEPOINTS = T.let(T.unsafe(nil), Hash)
386
+ PDF::Reader::EncodingUtils::UTF16_BOM = T.let(T.unsafe(nil), Array)
361
387
  class PDF::Reader::EncryptedPDFError < ::PDF::Reader::UnsupportedFeatureError; end
362
388
 
363
389
  class PDF::Reader::Error
@@ -374,10 +400,10 @@ class PDF::Reader::Error
374
400
  sig { params(object: ::Object, name: ::String).void }
375
401
  def validate_not_nil(object, name); end
376
402
 
377
- sig { params(object: ::Object, name: ::String, klass: ::Module).void }
403
+ sig { params(object: ::Object, name: ::String, klass: T::Module[T.untyped]).void }
378
404
  def validate_type(object, name, klass); end
379
405
 
380
- sig { params(object: ::Object, name: ::String, klass: ::Module).void }
406
+ sig { params(object: ::Object, name: ::String, klass: T::Module[T.untyped]).void }
381
407
  def validate_type_as_malformed(object, name, klass); end
382
408
  end
383
409
  end
@@ -537,7 +563,9 @@ class PDF::Reader::Font
537
563
  sig { params(obj: T::Hash[::Symbol, T.untyped]).returns(::PDF::Reader::Encoding) }
538
564
  def build_encoding(obj); end
539
565
 
540
- sig { returns(T.untyped) }
566
+ sig do
567
+ returns(T.any(::PDF::Reader::WidthCalculator::BuiltIn, ::PDF::Reader::WidthCalculator::Composite, ::PDF::Reader::WidthCalculator::TrueType, ::PDF::Reader::WidthCalculator::TypeOneOrThree, ::PDF::Reader::WidthCalculator::TypeZero))
568
+ end
541
569
  def build_width_calculator; end
542
570
 
543
571
  sig { params(font_name: T.nilable(T.any(::String, ::Symbol))).returns(::PDF::Reader::Encoding) }
@@ -555,8 +583,8 @@ class PDF::Reader::Font
555
583
  sig { params(obj: T::Hash[::Symbol, T.untyped]).void }
556
584
  def extract_type3_info(obj); end
557
585
 
558
- sig { params(x: ::Numeric, y: ::Numeric).returns([::Numeric, ::Numeric]) }
559
- def font_matrix_transform(x, y); end
586
+ sig { params(pt: ::PDF::Reader::Point).returns(::PDF::Reader::Point) }
587
+ def font_matrix_transform(pt); end
560
588
 
561
589
  sig do
562
590
  params(
@@ -573,6 +601,8 @@ class PDF::Reader::Font
573
601
  def unpack_string_to_array_of_ints(unpack_me, unpack_arg); end
574
602
  end
575
603
 
604
+ PDF::Reader::Font::WidthCalculator = T.type_alias { T.any(::PDF::Reader::WidthCalculator::BuiltIn, ::PDF::Reader::WidthCalculator::Composite, ::PDF::Reader::WidthCalculator::TrueType, ::PDF::Reader::WidthCalculator::TypeOneOrThree, ::PDF::Reader::WidthCalculator::TypeZero) }
605
+
576
606
  class PDF::Reader::FontDescriptor
577
607
  sig { params(ohash: ::PDF::Reader::ObjectHash, fd_hash: T::Hash[T.untyped, T.untyped]).void }
578
608
  def initialize(ohash, fd_hash); end
@@ -820,25 +850,34 @@ class PDF::Reader::ObjectCache
820
850
  def has_key?(key); end
821
851
  def has_value?(value); end
822
852
 
823
- sig { returns(T.untyped) }
853
+ sig { returns(::Integer) }
824
854
  def hits; end
825
855
 
826
856
  def include?(key); end
827
857
  def key?(key); end
858
+
859
+ sig { returns(T::Array[T.untyped]) }
828
860
  def keys; end
861
+
829
862
  def length; end
830
863
  def member?(key); end
831
864
 
832
- sig { returns(T.untyped) }
865
+ sig { returns(::Integer) }
833
866
  def misses; end
834
867
 
835
868
  def size; end
869
+
870
+ sig { returns(::String) }
836
871
  def to_s; end
872
+
873
+ sig { returns(T::Array[T.untyped]) }
837
874
  def values; end
838
875
 
839
876
  private
840
877
 
878
+ sig { params(obj: T.untyped).returns(T.nilable(T::Boolean)) }
841
879
  def cacheable?(obj); end
880
+
842
881
  def update_stats(key); end
843
882
  end
844
883
 
@@ -847,7 +886,7 @@ PDF::Reader::ObjectCache::CACHEABLE_TYPES = T.let(T.unsafe(nil), Array)
847
886
  class PDF::Reader::ObjectHash
848
887
  include ::Enumerable
849
888
 
850
- sig { params(input: T.any(::IO, ::String, ::StringIO, ::Tempfile), opts: T::Hash[::Symbol, T.untyped]).void }
889
+ sig { params(input: T.untyped, opts: T::Hash[::Symbol, T.untyped]).void }
851
890
  def initialize(input, opts = T.unsafe(nil)); end
852
891
 
853
892
  sig { params(key: T.any(::Integer, ::PDF::Reader::Reference)).returns(T.untyped) }
@@ -950,7 +989,9 @@ class PDF::Reader::ObjectHash
950
989
  sig { returns(::Float) }
951
990
  def pdf_version; end
952
991
 
953
- sig { returns(T.untyped) }
992
+ sig do
993
+ returns(T.any(::PDF::Reader::AesV2SecurityHandler, ::PDF::Reader::AesV3SecurityHandler, ::PDF::Reader::NullSecurityHandler, ::PDF::Reader::Rc4SecurityHandler, ::PDF::Reader::UnimplementedSecurityHandler))
994
+ end
954
995
  def sec_handler; end
955
996
 
956
997
  sig { returns(T::Boolean) }
@@ -997,7 +1038,7 @@ class PDF::Reader::ObjectHash
997
1038
  end
998
1039
  def deref_internal!(key, seen); end
999
1040
 
1000
- sig { params(input: T.any(::IO, ::String, ::StringIO, ::Tempfile)).returns(T.any(::IO, ::StringIO, ::Tempfile)) }
1041
+ sig { params(input: T.untyped).returns(T.untyped) }
1001
1042
  def extract_io_from(input); end
1002
1043
 
1003
1044
  sig do
@@ -1037,6 +1078,8 @@ class PDF::Reader::ObjectHash
1037
1078
  def xref; end
1038
1079
  end
1039
1080
 
1081
+ PDF::Reader::ObjectHash::SecurityHandler = T.type_alias { T.any(::PDF::Reader::AesV2SecurityHandler, ::PDF::Reader::AesV3SecurityHandler, ::PDF::Reader::NullSecurityHandler, ::PDF::Reader::Rc4SecurityHandler, ::PDF::Reader::UnimplementedSecurityHandler) }
1082
+
1040
1083
  class PDF::Reader::ObjectStream
1041
1084
  sig { params(stream: ::PDF::Reader::Stream).void }
1042
1085
  def initialize(stream); end
@@ -1232,7 +1275,13 @@ class PDF::Reader::PageState
1232
1275
  def begin_text_object; end
1233
1276
  def clone_state; end
1234
1277
  def concatenate_matrix(a, b, c, d, e, f); end
1278
+
1279
+ sig { params(x: ::Numeric, y: ::Numeric).returns([::Numeric]) }
1235
1280
  def ctm_transform(x, y); end
1281
+
1282
+ sig { params(pt: T.any(::Numeric, ::PDF::Reader::Point), opt_y: ::Numeric).returns(::PDF::Reader::Point) }
1283
+ def ctm_transform_point(pt, opt_y = T.unsafe(nil)); end
1284
+
1236
1285
  def current_font; end
1237
1286
  def end_text_object; end
1238
1287
  def find_color_space(label); end
@@ -1263,8 +1312,13 @@ class PDF::Reader::PageState
1263
1312
  def set_word_spacing(word_spacing); end
1264
1313
  def show_text_with_positioning(params); end
1265
1314
  def stack_depth; end
1315
+
1316
+ sig { params(x: ::Numeric, y: ::Numeric).returns(T::Array[::Numeric]) }
1266
1317
  def trm_transform(x, y); end
1267
1318
 
1319
+ sig { params(pt: T.any(::Numeric, ::PDF::Reader::Point), opt_y: ::Numeric).returns(::PDF::Reader::Point) }
1320
+ def trm_transform_point(pt, opt_y = T.unsafe(nil)); end
1321
+
1268
1322
  private
1269
1323
 
1270
1324
  def build_fonts(raw_fonts); end
@@ -1279,9 +1333,14 @@ PDF::Reader::PageState::DEFAULT_GRAPHICS_STATE = T.let(T.unsafe(nil), Hash)
1279
1333
  class PDF::Reader::PageTextReceiver
1280
1334
  extend ::Forwardable
1281
1335
 
1336
+ def begin_marked_content_with_pl(tag, properties); end
1282
1337
  def begin_text_object(*args, **_arg1, &block); end
1283
1338
  def concatenate_matrix(*args, **_arg1, &block); end
1339
+
1340
+ sig { returns(::String) }
1284
1341
  def content; end
1342
+
1343
+ def end_marked_content; end
1285
1344
  def end_text_object(*args, **_arg1, &block); end
1286
1345
  def font_size(*args, **_arg1, &block); end
1287
1346
  def invoke_xobject(label); end
@@ -1314,9 +1373,15 @@ class PDF::Reader::PageTextReceiver
1314
1373
 
1315
1374
  private
1316
1375
 
1317
- def apply_rotation(x, y); end
1376
+ sig { params(pt: ::PDF::Reader::Point).returns(::PDF::Reader::Point) }
1377
+ def apply_rotation(pt); end
1378
+
1318
1379
  def group_chars_into_runs(chars); end
1380
+
1381
+ sig { params(string: ::String).void }
1319
1382
  def internal_show_text(string); end
1383
+
1384
+ sig { params(runs: T::Array[::PDF::Reader::TextRun]).returns(T::Array[::PDF::Reader::TextRun]) }
1320
1385
  def merge_runs(runs); end
1321
1386
  end
1322
1387
 
@@ -1325,8 +1390,15 @@ class PDF::Reader::PagesStrategy; end
1325
1390
  PDF::Reader::PagesStrategy::OPERATORS = T.let(T.unsafe(nil), Hash)
1326
1391
 
1327
1392
  class PDF::Reader::Parser
1328
- sig { params(buffer: ::PDF::Reader::Buffer, objects: T.nilable(::PDF::Reader::ObjectHash)).void }
1329
- def initialize(buffer, objects = T.unsafe(nil)); end
1393
+ sig do
1394
+ params(
1395
+ buffer: ::PDF::Reader::Buffer,
1396
+ operators: T::Hash[T.any(::PDF::Reader::Token, ::String), ::Symbol],
1397
+ objects: T.nilable(::PDF::Reader::ObjectHash),
1398
+ relaxed_dictionaries: T::Boolean
1399
+ ).void
1400
+ end
1401
+ def initialize(buffer, operators: T.unsafe(nil), objects: T.unsafe(nil), relaxed_dictionaries: T.unsafe(nil)); end
1330
1402
 
1331
1403
  sig do
1332
1404
  params(
@@ -1337,11 +1409,9 @@ class PDF::Reader::Parser
1337
1409
  def object(id, gen); end
1338
1410
 
1339
1411
  sig do
1340
- params(
1341
- operators: T::Hash[T.any(::PDF::Reader::Token, ::String), ::Symbol]
1342
- ).returns(T.nilable(T.any(::Numeric, ::PDF::Reader::Reference, ::PDF::Reader::Token, ::String, ::Symbol, T::Array[T.untyped], T::Hash[T.untyped, T.untyped])))
1412
+ returns(T.nilable(T.any(::Numeric, ::PDF::Reader::Reference, ::PDF::Reader::Token, ::String, ::Symbol, T::Array[T.untyped], T::Hash[T.untyped, T.untyped])))
1343
1413
  end
1344
- def parse_token(operators = T.unsafe(nil)); end
1414
+ def parse_token; end
1345
1415
 
1346
1416
  private
1347
1417
 
@@ -1354,6 +1424,9 @@ class PDF::Reader::Parser
1354
1424
  sig { returns(::String) }
1355
1425
  def hex_string; end
1356
1426
 
1427
+ sig { params(str: ::String, regexp: ::Regexp).returns(T::Boolean) }
1428
+ def match?(str, regexp); end
1429
+
1357
1430
  sig { returns(::Symbol) }
1358
1431
  def pdf_name; end
1359
1432
 
@@ -1364,6 +1437,7 @@ class PDF::Reader::Parser
1364
1437
  def string; end
1365
1438
  end
1366
1439
 
1440
+ PDF::Reader::Parser::INTERNED_TOKENS = T.let(T.unsafe(nil), Hash)
1367
1441
  PDF::Reader::Parser::MAPPING = T.let(T.unsafe(nil), Hash)
1368
1442
  PDF::Reader::Parser::STRATEGIES = T.let(T.unsafe(nil), Hash)
1369
1443
  PDF::Reader::Parser::TOKEN_STRATEGY = T.let(T.unsafe(nil), Proc)
@@ -1382,6 +1456,9 @@ class PDF::Reader::Point
1382
1456
  def y; end
1383
1457
  end
1384
1458
 
1459
+ PDF::Reader::Point::ONE_ONE = T.let(T.unsafe(nil), PDF::Reader::Point)
1460
+ PDF::Reader::Point::ZERO_ZERO = T.let(T.unsafe(nil), PDF::Reader::Point)
1461
+
1385
1462
  class PDF::Reader::PrintReceiver
1386
1463
  sig { params(methodname: ::Symbol, args: T.untyped).void }
1387
1464
  def method_missing(methodname, *args); end
@@ -1390,6 +1467,16 @@ class PDF::Reader::PrintReceiver
1390
1467
  def respond_to?(meth); end
1391
1468
  end
1392
1469
 
1470
+ class PDF::Reader::Rc4
1471
+ sig { params(key: ::String).void }
1472
+ def initialize(key); end
1473
+
1474
+ sig { params(data: ::String).returns(::String) }
1475
+ def decrypt(data); end
1476
+
1477
+ def encrypt(*args, **_arg1, &blk); end
1478
+ end
1479
+
1393
1480
  class PDF::Reader::Rc4SecurityHandler
1394
1481
  sig { params(key: ::String).void }
1395
1482
  def initialize(key); end
@@ -1417,6 +1504,9 @@ class PDF::Reader::Rectangle
1417
1504
  sig { params(point: ::PDF::Reader::Point).returns(T::Boolean) }
1418
1505
  def contains?(point); end
1419
1506
 
1507
+ sig { params(x: ::Numeric, y: ::Numeric).returns(T::Boolean) }
1508
+ def contains_xy?(x, y); end
1509
+
1420
1510
  sig { returns(::Numeric) }
1421
1511
  def height; end
1422
1512
 
@@ -1734,6 +1824,9 @@ class PDF::Reader::TransformationMatrix
1734
1824
  end
1735
1825
  def multiply!(a, b, c, d, e, f); end
1736
1826
 
1827
+ sig { params(tx: ::Numeric, ty: ::Numeric).void }
1828
+ def prepend_translation!(tx, ty); end
1829
+
1737
1830
  sig { returns([::Numeric]) }
1738
1831
  def to_a; end
1739
1832
 
@@ -1772,7 +1865,7 @@ class PDF::Reader::TypeCheck
1772
1865
  sig { params(string: T.untyped).returns(::String) }
1773
1866
  def cast_to_string!(string); end
1774
1867
 
1775
- sig { params(obj: T.untyped).returns(::Symbol) }
1868
+ sig { params(obj: T.untyped).returns(T.nilable(::Symbol)) }
1776
1869
  def cast_to_symbol(obj); end
1777
1870
 
1778
1871
  sig { params(obj: T.untyped).returns(::Symbol) }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdf-reader
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.15.0
4
+ version: 2.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Healy
@@ -119,20 +119,6 @@ dependencies:
119
119
  - - "!="
120
120
  - !ruby/object:Gem::Version
121
121
  version: 2.0.0
122
- - !ruby/object:Gem::Dependency
123
- name: ruby-rc4
124
- requirement: !ruby/object:Gem::Requirement
125
- requirements:
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- version: '0'
129
- type: :runtime
130
- prerelease: false
131
- version_requirements: !ruby/object:Gem::Requirement
132
- requirements:
133
- - - ">="
134
- - !ruby/object:Gem::Version
135
- version: '0'
136
122
  - !ruby/object:Gem::Dependency
137
123
  name: hashery
138
124
  requirement: !ruby/object:Gem::Requirement
@@ -240,6 +226,7 @@ files:
240
226
  - lib/pdf/reader/cid_widths.rb
241
227
  - lib/pdf/reader/cmap.rb
242
228
  - lib/pdf/reader/encoding.rb
229
+ - lib/pdf/reader/encoding_utils.rb
243
230
  - lib/pdf/reader/encodings/mac_expert.txt
244
231
  - lib/pdf/reader/encodings/mac_roman.txt
245
232
  - lib/pdf/reader/encodings/pdf_doc.txt
@@ -278,6 +265,7 @@ files:
278
265
  - lib/pdf/reader/parser.rb
279
266
  - lib/pdf/reader/point.rb
280
267
  - lib/pdf/reader/print_receiver.rb
268
+ - lib/pdf/reader/rc4.rb
281
269
  - lib/pdf/reader/rc4_security_handler.rb
282
270
  - lib/pdf/reader/rectangle.rb
283
271
  - lib/pdf/reader/reference.rb
@@ -307,9 +295,9 @@ licenses:
307
295
  - MIT
308
296
  metadata:
309
297
  bug_tracker_uri: https://github.com/yob/pdf-reader/issues
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
298
+ changelog_uri: https://github.com/yob/pdf-reader/blob/v2.16.0/CHANGELOG
299
+ documentation_uri: https://www.rubydoc.info/gems/pdf-reader/2.16.0
300
+ source_code_uri: https://github.com/yob/pdf-reader/tree/v2.16.0
313
301
  rdoc_options:
314
302
  - "--title"
315
303
  - PDF::Reader Documentation