pdf-reader 2.14.0 → 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 (64) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +22 -0
  3. data/lib/pdf/reader/advanced_text_run_filter.rb +17 -2
  4. data/lib/pdf/reader/aes_v2_security_handler.rb +30 -0
  5. data/lib/pdf/reader/aes_v3_security_handler.rb +35 -3
  6. data/lib/pdf/reader/bounding_rectangle_runs_filter.rb +1 -0
  7. data/lib/pdf/reader/buffer.rb +35 -17
  8. data/lib/pdf/reader/cid_widths.rb +7 -1
  9. data/lib/pdf/reader/cmap.rb +14 -3
  10. data/lib/pdf/reader/encoding.rb +37 -12
  11. data/lib/pdf/reader/error.rb +6 -0
  12. data/lib/pdf/reader/filter/ascii85.rb +2 -0
  13. data/lib/pdf/reader/filter/ascii_hex.rb +2 -0
  14. data/lib/pdf/reader/filter/depredict.rb +4 -0
  15. data/lib/pdf/reader/filter/flate.rb +5 -2
  16. data/lib/pdf/reader/filter/lzw.rb +2 -0
  17. data/lib/pdf/reader/filter/null.rb +2 -0
  18. data/lib/pdf/reader/filter/run_length.rb +2 -0
  19. data/lib/pdf/reader/filter.rb +1 -0
  20. data/lib/pdf/reader/font.rb +90 -22
  21. data/lib/pdf/reader/font_descriptor.rb +76 -23
  22. data/lib/pdf/reader/form_xobject.rb +11 -0
  23. data/lib/pdf/reader/glyph_hash.rb +34 -9
  24. data/lib/pdf/reader/key_builder_v5.rb +17 -9
  25. data/lib/pdf/reader/lzw.rb +17 -6
  26. data/lib/pdf/reader/no_text_filter.rb +1 -0
  27. data/lib/pdf/reader/null_security_handler.rb +1 -0
  28. data/lib/pdf/reader/object_cache.rb +7 -2
  29. data/lib/pdf/reader/object_hash.rb +116 -9
  30. data/lib/pdf/reader/object_stream.rb +19 -2
  31. data/lib/pdf/reader/overlapping_runs_filter.rb +7 -1
  32. data/lib/pdf/reader/page.rb +41 -7
  33. data/lib/pdf/reader/page_layout.rb +25 -8
  34. data/lib/pdf/reader/page_state.rb +5 -2
  35. data/lib/pdf/reader/page_text_receiver.rb +6 -2
  36. data/lib/pdf/reader/pages_strategy.rb +1 -1
  37. data/lib/pdf/reader/parser.rb +51 -10
  38. data/lib/pdf/reader/point.rb +9 -2
  39. data/lib/pdf/reader/print_receiver.rb +2 -6
  40. data/lib/pdf/reader/rc4_security_handler.rb +2 -0
  41. data/lib/pdf/reader/rectangle.rb +24 -1
  42. data/lib/pdf/reader/reference.rb +10 -1
  43. data/lib/pdf/reader/register_receiver.rb +15 -2
  44. data/lib/pdf/reader/resources.rb +9 -0
  45. data/lib/pdf/reader/security_handler_factory.rb +13 -0
  46. data/lib/pdf/reader/standard_key_builder.rb +37 -23
  47. data/lib/pdf/reader/stream.rb +9 -3
  48. data/lib/pdf/reader/synchronized_cache.rb +5 -2
  49. data/lib/pdf/reader/text_run.rb +28 -1
  50. data/lib/pdf/reader/token.rb +1 -0
  51. data/lib/pdf/reader/transformation_matrix.rb +33 -2
  52. data/lib/pdf/reader/type_check.rb +10 -3
  53. data/lib/pdf/reader/unimplemented_security_handler.rb +2 -0
  54. data/lib/pdf/reader/validating_receiver.rb +29 -0
  55. data/lib/pdf/reader/width_calculator/built_in.rb +10 -3
  56. data/lib/pdf/reader/width_calculator/composite.rb +5 -1
  57. data/lib/pdf/reader/width_calculator/true_type.rb +5 -1
  58. data/lib/pdf/reader/width_calculator/type_one_or_three.rb +3 -1
  59. data/lib/pdf/reader/width_calculator/type_zero.rb +2 -0
  60. data/lib/pdf/reader/xref.rb +28 -7
  61. data/lib/pdf/reader/zero_width_runs_filter.rb +1 -0
  62. data/lib/pdf/reader.rb +18 -2
  63. data/rbi/pdf-reader.rbi +1502 -1594
  64. metadata +17 -11
data/rbi/pdf-reader.rbi CHANGED
@@ -1,2094 +1,2002 @@
1
- # typed: strong
2
- module PDF
3
- class Reader
4
- sig { returns(PDF::Reader::ObjectHash) }
5
- attr_reader :objects
6
-
7
- sig { params(input: T.any(String, Tempfile, IO, StringIO), opts: T::Hash[T.untyped, T.untyped]).void }
8
- def initialize(input, opts = {})
9
- @cache = T.let(T.unsafe(nil), PDF::Reader::ObjectCache)
10
- @objects = T.let(T.unsafe(nil), PDF::Reader::ObjectHash)
11
- @page_count = T.let(T.unsafe(nil), T.nilable(Integer))
12
- @root = T.let(T.unsafe(nil), T.nilable(T.nilable(T::Hash[Symbol, T.untyped])))
13
- end
1
+ # typed: true
2
+
3
+ # DO NOT EDIT MANUALLY
4
+ # This is an autogenerated file for types exported from the `pdf-reader` gem.
5
+ # Please instead update this file by running `bundle exec spoom srb sigs export`.
6
+
7
+ module PDF; end
8
+
9
+ class PDF::Reader
10
+ sig { params(input: T.any(::IO, ::String, ::StringIO, ::Tempfile), opts: T::Hash[T.untyped, T.untyped]).void }
11
+ def initialize(input, opts = T.unsafe(nil)); end
14
12
 
15
- sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
16
- def info; end
13
+ sig { returns(T.nilable(T::Hash[T.untyped, T.untyped])) }
14
+ def info; end
17
15
 
18
- sig { returns(T.nilable(String)) }
19
- def metadata; end
16
+ sig { returns(T.nilable(::String)) }
17
+ def metadata; end
20
18
 
21
- sig { returns(Integer) }
22
- def page_count; end
19
+ sig { returns(::PDF::Reader::ObjectHash) }
20
+ def objects; end
23
21
 
24
- sig { returns(Float) }
25
- def pdf_version; end
22
+ sig { params(num: ::Integer).returns(::PDF::Reader::Page) }
23
+ def page(num); end
26
24
 
27
- sig { params(input: T.any(String, Tempfile, IO), opts: T::Hash[T.untyped, T.untyped], block: T.proc.params(arg0: PDF::Reader).void).returns(T.untyped) }
28
- def self.open(input, opts = {}, &block); end
25
+ sig { returns(::Integer) }
26
+ def page_count; end
29
27
 
30
- sig { returns(T::Array[PDF::Reader::Page]) }
31
- def pages; end
28
+ sig { returns(T::Array[::PDF::Reader::Page]) }
29
+ def pages; end
32
30
 
33
- sig { params(num: Integer).returns(PDF::Reader::Page) }
34
- def page(num); end
31
+ sig { returns(::Float) }
32
+ def pdf_version; end
35
33
 
36
- sig { params(obj: T.untyped).returns(T.untyped) }
37
- def doc_strings_to_utf8(obj); end
34
+ private
38
35
 
39
- sig { params(str: String).returns(T::Boolean)}
40
- def has_utf16_bom?(str); end
36
+ sig { params(obj: T.untyped).returns(T.untyped) }
37
+ def doc_strings_to_utf8(obj); end
41
38
 
42
- sig { params(obj: String).returns(String) }
43
- def pdfdoc_to_utf8(obj); end
39
+ sig { params(str: ::String).returns(T::Boolean) }
40
+ def has_utf16_bom?(str); end
44
41
 
45
- sig { params(obj: String).returns(String) }
46
- def utf16_to_utf8(obj); end
42
+ sig { params(obj: ::String).returns(::String) }
43
+ def pdfdoc_to_utf8(obj); end
47
44
 
48
- sig { returns(T::Hash[Symbol, T.untyped]) }
49
- def root; end
45
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
46
+ def root; end
50
47
 
51
- class AesV2SecurityHandler
52
- sig { params(key: String).void }
53
- def initialize(key)
54
- @encrypt_key = T.let(T.unsafe(nil), String)
55
- end
48
+ sig { params(obj: ::String).returns(::String) }
49
+ def utf16_to_utf8(obj); end
56
50
 
57
- sig { params(buf: String, ref: PDF::Reader::Reference).returns(String) }
58
- def decrypt(buf, ref); end
51
+ class << self
52
+ sig do
53
+ params(
54
+ input: T.any(::IO, ::String, ::Tempfile),
55
+ opts: T::Hash[T.untyped, T.untyped],
56
+ block: T.proc.params(arg0: ::PDF::Reader).void
57
+ ).returns(T.untyped)
59
58
  end
59
+ def open(input, opts = T.unsafe(nil), &block); end
60
+ end
61
+ end
62
+
63
+ class PDF::Reader::AdvancedTextRunFilter
64
+ sig { params(text_runs: T::Array[::PDF::Reader::TextRun], filter_hash: T::Hash[::Symbol, T.untyped]).void }
65
+ def initialize(text_runs, filter_hash); end
60
66
 
61
- class AesV3SecurityHandler
62
- sig { params(key: String).void }
63
- def initialize(key)
64
- @encrypt_key = T.let(T.unsafe(nil), String)
65
- @cipher = T.let(T.unsafe(nil), String)
66
- end
67
+ sig { returns(T::Array[::PDF::Reader::TextRun]) }
68
+ def exclude; end
67
69
 
68
- sig { params(buf: String, ref: PDF::Reader::Reference).returns(String) }
69
- def decrypt(buf, ref); end
70
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
71
+ def filter_hash; end
72
+
73
+ sig { returns(T::Array[::PDF::Reader::TextRun]) }
74
+ def only; end
75
+
76
+ sig { returns(T::Array[::PDF::Reader::TextRun]) }
77
+ def text_runs; end
78
+
79
+ private
80
+
81
+ sig { params(attribute_value: T.untyped, operator: ::Symbol, filter_value: T.untyped).returns(T::Boolean) }
82
+ def apply_operator(attribute_value, operator, filter_value); end
83
+
84
+ sig do
85
+ params(
86
+ text_run: ::PDF::Reader::TextRun,
87
+ conditions: T::Array[T::Hash[::Symbol, T.untyped]]
88
+ ).returns(T::Boolean)
89
+ end
90
+ def evaluate_and_filters(text_run, conditions); end
91
+
92
+ sig do
93
+ params(
94
+ text_run: ::PDF::Reader::TextRun,
95
+ attribute: ::Symbol,
96
+ conditions: T::Hash[::Symbol, T.untyped]
97
+ ).returns(T::Boolean)
98
+ end
99
+ def evaluate_attribute_conditions(text_run, attribute, conditions); end
100
+
101
+ sig { params(text_run: ::PDF::Reader::TextRun).returns(T::Boolean) }
102
+ def evaluate_filter(text_run); end
103
+
104
+ sig { params(text_run: ::PDF::Reader::TextRun, filter_hash: T::Hash[::Symbol, T.untyped]).returns(T::Boolean) }
105
+ def evaluate_filters(text_run, filter_hash); end
106
+
107
+ sig do
108
+ params(
109
+ text_run: ::PDF::Reader::TextRun,
110
+ conditions: T::Array[T::Hash[::Symbol, T.untyped]]
111
+ ).returns(T::Boolean)
112
+ end
113
+ def evaluate_or_filters(text_run, conditions); end
114
+
115
+ class << self
116
+ sig do
117
+ params(
118
+ text_runs: T::Array[::PDF::Reader::TextRun],
119
+ filter_hash: T::Hash[::Symbol, T.untyped]
120
+ ).returns(T::Array[::PDF::Reader::TextRun])
70
121
  end
122
+ def exclude(text_runs, filter_hash); end
71
123
 
72
- class BoundingRectangleRunsFilter
73
- sig { params(runs: T::Array[PDF::Reader::TextRun], rect: PDF::Reader::Rectangle).returns(T::Array[PDF::Reader::TextRun]) }
74
- def self.runs_within_rect(runs, rect); end
124
+ sig do
125
+ params(
126
+ text_runs: T::Array[::PDF::Reader::TextRun],
127
+ filter_hash: T::Hash[::Symbol, T.untyped]
128
+ ).returns(T::Array[::PDF::Reader::TextRun])
75
129
  end
130
+ def only(text_runs, filter_hash); end
131
+ end
132
+ end
76
133
 
77
- class Buffer
78
- TOKEN_WHITESPACE = T.let(T::Array[String])
79
- TOKEN_DELIMITER = T.let(T::Array[Integer])
80
- LEFT_PAREN = T.let(String)
81
- LESS_THAN = T.let(String)
82
- STREAM = T.let(String)
83
- ID = T.let(String)
84
- FWD_SLASH = T.let(String)
85
- NULL_BYTE = T.let(String)
86
- CR = T.let(String)
87
- LF = T.let(String)
88
- CRLF = T.let(String)
89
- WHITE_SPACE = T.let(T::Array[String])
90
- TRAILING_BYTECOUNT = T.let(Integer)
91
- DIGITS_ONLY = T.let(Regexp)
134
+ PDF::Reader::AdvancedTextRunFilter::VALID_OPERATORS = T.let(T.unsafe(nil), Array)
92
135
 
93
- sig { returns(Integer) }
94
- attr_reader :pos
136
+ class PDF::Reader::AesV2SecurityHandler
137
+ sig { params(key: ::String).void }
138
+ def initialize(key); end
95
139
 
96
- sig { params(io: T.any(StringIO, Tempfile, IO), opts: T::Hash[Symbol, T.untyped]).void }
97
- def initialize(io, opts = {})
98
- @pos = T.let(T.unsafe(nil), Integer)
99
- @tokens = T.let(T.unsafe(nil), T::Array[T.any(String, PDF::Reader::Reference)])
100
- @io = T.let(T.unsafe(nil), T.any(StringIO, Tempfile, IO))
101
- @in_content_stream = T.let(T.unsafe(nil), T::Boolean)
102
- end
140
+ sig { params(buf: ::String, ref: ::PDF::Reader::Reference).returns(::String) }
141
+ def decrypt(buf, ref); end
103
142
 
104
- sig { returns(T::Boolean) }
105
- def empty?; end
143
+ private
106
144
 
107
- sig { params(bytes: Integer, opts: T::Hash[Symbol, T.untyped]).returns(T.nilable(String)) }
108
- def read(bytes, opts = {}); end
145
+ sig { params(buf: ::String, ref: ::PDF::Reader::Reference, padding: T::Boolean).returns(::String) }
146
+ def internal_decrypt(buf, ref, padding = T.unsafe(nil)); end
147
+ end
109
148
 
110
- sig { returns(T.any(NilClass, String, PDF::Reader::Reference)) }
111
- def token; end
149
+ class PDF::Reader::AesV3SecurityHandler
150
+ sig { params(key: ::String).void }
151
+ def initialize(key); end
112
152
 
113
- sig { returns(Integer) }
114
- def find_first_xref_offset; end
153
+ sig { params(buf: ::String, ref: ::PDF::Reader::Reference).returns(::String) }
154
+ def decrypt(buf, ref); end
115
155
 
116
- sig { void }
117
- def check_size_is_non_zero; end
156
+ private
118
157
 
119
- sig { returns(T::Boolean) }
120
- def in_content_stream?; end
158
+ sig { params(buf: ::String, ref: ::PDF::Reader::Reference, padding: T::Boolean).returns(::String) }
159
+ def internal_decrypt(buf, ref, padding = T.unsafe(nil)); end
160
+ end
121
161
 
122
- sig { void }
123
- def reset_pos; end
162
+ class PDF::Reader::BoundingRectangleRunsFilter
163
+ class << self
164
+ sig do
165
+ params(
166
+ runs: T::Array[::PDF::Reader::TextRun],
167
+ rect: ::PDF::Reader::Rectangle
168
+ ).returns(T::Array[::PDF::Reader::TextRun])
169
+ end
170
+ def runs_within_rect(runs, rect); end
171
+ end
172
+ end
124
173
 
125
- sig { void }
126
- def save_pos; end
174
+ class PDF::Reader::Buffer
175
+ sig { params(io: T.any(::IO, ::StringIO, ::Tempfile), opts: T::Hash[::Symbol, T.untyped]).void }
176
+ def initialize(io, opts = T.unsafe(nil)); end
127
177
 
128
- sig { void }
129
- def prepare_tokens; end
178
+ sig { returns(T::Boolean) }
179
+ def empty?; end
130
180
 
131
- sig { returns(Symbol) }
132
- def state; end
181
+ sig { returns(::Integer) }
182
+ def find_first_xref_offset; end
133
183
 
134
- sig { void }
135
- def merge_indirect_reference; end
184
+ sig { returns(::Integer) }
185
+ def pos; end
136
186
 
137
- sig { void }
138
- def prepare_inline_token; end
187
+ sig { params(bytes: ::Integer, opts: T::Hash[::Symbol, T.untyped]).returns(T.nilable(::String)) }
188
+ def read(bytes, opts = T.unsafe(nil)); end
139
189
 
140
- sig { void }
141
- def prepare_hex_token; end
190
+ sig { returns(T.nilable(T.any(::PDF::Reader::Reference, ::String))) }
191
+ def token; end
142
192
 
143
- sig { void }
144
- def prepare_literal_token; end
193
+ private
145
194
 
146
- sig { void }
147
- def prepare_regular_token; end
195
+ sig { void }
196
+ def check_size_is_non_zero; end
148
197
 
149
- sig { returns(T.nilable(Integer)) }
150
- def peek_byte; end
151
- end
198
+ sig { returns(T::Boolean) }
199
+ def in_content_stream?; end
152
200
 
153
- class CidWidths
154
- sig { params(default: Numeric, array: T::Array[Numeric]).void }
155
- def initialize(default, array)
156
- @widths = T.let(T.unsafe(nil), T::Hash[Numeric, Numeric])
157
- end
201
+ sig { void }
202
+ def merge_indirect_reference; end
158
203
 
159
- sig { params(default: Numeric, array: T::Array[Numeric]).returns(T::Hash[Numeric, Numeric]) }
160
- def parse_array(default, array); end
204
+ sig { returns(T.nilable(::Integer)) }
205
+ def peek_byte; end
161
206
 
162
- sig { params(first: Integer, widths: T::Array[Numeric]).returns(T::Hash[Numeric, Numeric]) }
163
- def parse_first_form(first, widths); end
207
+ sig { void }
208
+ def prepare_hex_token; end
164
209
 
165
- sig { params(first: Integer, final: Integer, width: Numeric).returns(T::Hash[Numeric, Numeric]) }
166
- def parse_second_form(first, final, width); end
167
- end
210
+ sig { void }
211
+ def prepare_inline_token; end
168
212
 
169
- class CMap
170
- CMAP_KEYWORDS = T.let(T.unsafe(nil), T::Hash[String, Symbol])
213
+ sig { void }
214
+ def prepare_literal_token; end
171
215
 
172
- sig { returns(T.untyped) }
173
- attr_reader :map
216
+ sig { void }
217
+ def prepare_regular_token; end
174
218
 
175
- sig { params(data: String).void }
176
- def initialize(data)
177
- @map = T.let(T.unsafe(nil), T::Hash[Integer, T::Array[Integer]])
178
- end
219
+ sig { void }
220
+ def prepare_tokens; end
179
221
 
180
- sig { params(data: String, initial_mode: Symbol).void }
181
- def process_data(data, initial_mode = :none); end
222
+ sig { void }
223
+ def reset_pos; end
182
224
 
183
- sig { returns(Integer) }
184
- def size; end
225
+ sig { void }
226
+ def save_pos; end
185
227
 
186
- sig { params(c: Integer).returns(T::Array[Integer]) }
187
- def decode(c); end
228
+ sig { returns(::Symbol) }
229
+ def state; end
230
+ end
188
231
 
189
- sig { params(instructions: String).returns(PDF::Reader::Parser) }
190
- def build_parser(instructions); end
232
+ PDF::Reader::Buffer::CR = T.let(T.unsafe(nil), String)
233
+ PDF::Reader::Buffer::CRLF = T.let(T.unsafe(nil), String)
234
+ PDF::Reader::Buffer::DIGITS_ONLY = T.let(T.unsafe(nil), Regexp)
235
+ PDF::Reader::Buffer::FWD_SLASH = T.let(T.unsafe(nil), String)
236
+ PDF::Reader::Buffer::ID = T.let(T.unsafe(nil), String)
237
+ PDF::Reader::Buffer::LEFT_PAREN = T.let(T.unsafe(nil), String)
238
+ PDF::Reader::Buffer::LESS_THAN = T.let(T.unsafe(nil), String)
239
+ PDF::Reader::Buffer::LF = T.let(T.unsafe(nil), String)
240
+ PDF::Reader::Buffer::NULL_BYTE = T.let(T.unsafe(nil), String)
241
+ PDF::Reader::Buffer::STREAM = T.let(T.unsafe(nil), String)
242
+ PDF::Reader::Buffer::TOKEN_DELIMITER = T.let(T.unsafe(nil), Array)
243
+ PDF::Reader::Buffer::TOKEN_WHITESPACE = T.let(T.unsafe(nil), Array)
244
+ PDF::Reader::Buffer::TRAILING_BYTECOUNT = T.let(T.unsafe(nil), Integer)
245
+ PDF::Reader::Buffer::WHITE_SPACE = T.let(T.unsafe(nil), Array)
191
246
 
192
- sig { params(str: String).returns(T::Array[Integer]) }
193
- def str_to_int(str); end
247
+ class PDF::Reader::CMap
248
+ sig { params(data: ::String).void }
249
+ def initialize(data); end
194
250
 
195
- sig { params(instructions: T::Array[String]).void }
196
- def process_bfchar_instructions(instructions); end
251
+ sig { params(c: ::Integer).returns(T::Array[::Integer]) }
252
+ def decode(c); end
197
253
 
198
- sig { params(instructions: T::Array[T.any(T::Array[String], String)]).void }
199
- def process_bfrange_instructions(instructions); end
254
+ sig { returns(T::Hash[::Integer, T::Array[::Integer]]) }
255
+ def map; end
200
256
 
201
- sig { params(start_code: String, end_code: String, dst: String).void }
202
- def bfrange_type_one(start_code, end_code, dst); end
257
+ sig { returns(::Integer) }
258
+ def size; end
203
259
 
204
- sig { params(start_code: String, end_code: String, dst: T::Array[String]).void }
205
- def bfrange_type_two(start_code, end_code, dst); end
206
- end
260
+ private
207
261
 
208
- class Encoding
209
- CONTROL_CHARS = T.let(T.unsafe(nil), T::Array[Integer])
210
- UNKNOWN_CHAR = T.let(T.unsafe(nil), Integer)
262
+ sig { params(start_code: ::String, end_code: ::String, dst: ::String).void }
263
+ def bfrange_type_one(start_code, end_code, dst); end
211
264
 
212
- sig { returns(String) }
213
- attr_reader :unpack
265
+ sig { params(start_code: ::String, end_code: ::String, dst: T::Array[::String]).void }
266
+ def bfrange_type_two(start_code, end_code, dst); end
214
267
 
215
- sig { params(enc: T.untyped).void }
216
- def initialize(enc)
217
- @mapping = T.let(T.unsafe(nil), T::Hash[Integer, Integer])
218
- @unpack = T.let(T.unsafe(nil), String)
219
- @enc_name = T.let(T.unsafe(nil), Symbol)
220
- @string_cache = T.let(T.unsafe(nil), T::Hash[Integer, String])
221
- @map_file = T.let(T.unsafe(nil), T.nilable(String))
222
- @differences = T.let(T.unsafe(nil), T.nilable(T::Hash[Integer, Integer]))
223
- @glyphlist = T.let(T.unsafe(nil), T.nilable(PDF::Reader::GlyphHash))
224
- end
268
+ sig { params(instructions: ::String).returns(::PDF::Reader::Parser) }
269
+ def build_parser(instructions); end
225
270
 
226
- sig { params(diff: T::Array[T.any(Integer, Symbol)]).returns(T::Hash[Integer, Integer]) }
227
- def differences=(diff); end
271
+ sig { params(instructions: T::Array[::String]).void }
272
+ def process_bfchar_instructions(instructions); end
228
273
 
229
- sig { returns(T::Hash[Integer, Integer]) }
230
- def differences; end
274
+ sig { params(instructions: T::Array[T.any(::String, T::Array[::String])]).void }
275
+ def process_bfrange_instructions(instructions); end
231
276
 
232
- sig { params(str: String).returns(String) }
233
- def to_utf8(str); end
277
+ sig { params(data: ::String, initial_mode: ::Symbol).void }
278
+ def process_data(data, initial_mode = T.unsafe(nil)); end
234
279
 
235
- sig { params(glyph_code: Integer).returns(String) }
236
- def int_to_utf8_string(glyph_code); end
280
+ sig { params(str: ::String).returns(T::Array[::Integer]) }
281
+ def str_to_int(str); end
282
+ end
237
283
 
238
- sig { params(glyph_code: Integer).returns(T::Array[Symbol]) }
239
- def int_to_name(glyph_code); end
284
+ PDF::Reader::CMap::CMAP_KEYWORDS = T.let(T.unsafe(nil), Hash)
240
285
 
241
- sig { returns(T::Hash[Integer, Integer]) }
242
- def default_mapping; end
286
+ class PDF::Reader::CidWidths
287
+ extend ::Forwardable
243
288
 
244
- sig { params(glyph_code: Integer).returns(String) }
245
- def internal_int_to_utf8_string(glyph_code); end
289
+ sig { params(default: ::Numeric, array: T::Array[::Numeric]).void }
290
+ def initialize(default, array); end
246
291
 
247
- sig { returns(T::Boolean) }
248
- def utf8_conversion_impossible?; end
292
+ def [](*args, **_arg1, &block); end
293
+ def fetch(*args, **_arg1, &block); end
249
294
 
250
- sig { params(times: Integer).returns(String) }
251
- def little_boxes(times); end
295
+ private
252
296
 
253
- sig { params(str: String).returns(String) }
254
- def convert_to_utf8(str); end
297
+ sig { params(default: ::Numeric, array: T::Array[::Numeric]).returns(T::Hash[::Numeric, ::Numeric]) }
298
+ def parse_array(default, array); end
255
299
 
256
- sig { params(enc: T.untyped).returns(String) }
257
- def get_unpack(enc); end
300
+ sig { params(first: ::Integer, widths: T::Array[::Numeric]).returns(T::Hash[::Numeric, ::Numeric]) }
301
+ def parse_first_form(first, widths); end
258
302
 
259
- sig { params(enc: T.untyped).returns(T.nilable(String)) }
260
- def get_mapping_file(enc); end
303
+ sig { params(first: ::Integer, final: ::Integer, width: ::Numeric).returns(T::Hash[::Numeric, ::Numeric]) }
304
+ def parse_second_form(first, final, width); end
305
+ end
261
306
 
262
- sig { returns(PDF::Reader::GlyphHash) }
263
- def glyphlist; end
307
+ class PDF::Reader::Encoding
308
+ sig { params(enc: T.nilable(T.any(::Symbol, T::Hash[::Symbol, T.untyped]))).void }
309
+ def initialize(enc); end
264
310
 
265
- sig { params(file: String).void }
266
- def load_mapping(file); end
267
- end
311
+ sig { returns(T::Hash[::Integer, ::Integer]) }
312
+ def differences; end
268
313
 
269
- class Error
270
- sig { params(lvalue: T.untyped, rvalue: T.untyped, chars: T.untyped).returns(T.untyped) }
271
- def self.str_assert(lvalue, rvalue, chars = nil); end
314
+ sig { params(diff: T::Array[T.any(::Integer, ::Symbol)]).returns(T::Hash[::Integer, ::Integer]) }
315
+ def differences=(diff); end
272
316
 
273
- sig { params(lvalue: T.untyped, rvalue: T.untyped, chars: T.untyped).returns(T.untyped) }
274
- def self.str_assert_not(lvalue, rvalue, chars = nil); end
317
+ sig { params(glyph_code: ::Integer).returns(T::Array[::Symbol]) }
318
+ def int_to_name(glyph_code); end
275
319
 
276
- sig { params(lvalue: T.untyped, rvalue: T.untyped).returns(T.untyped) }
277
- def self.assert_equal(lvalue, rvalue); end
320
+ sig { params(glyph_code: ::Integer).returns(::String) }
321
+ def int_to_utf8_string(glyph_code); end
278
322
 
279
- sig { params(object: Object, name: String, klass: Module).void }
280
- def self.validate_type(object, name, klass); end
323
+ sig { params(str: ::String).returns(::String) }
324
+ def to_utf8(str); end
281
325
 
282
- sig { params(object: Object, name: String, klass: Module).void }
283
- def self.validate_type_as_malformed(object, name, klass); end
326
+ sig { returns(::String) }
327
+ def unpack; end
284
328
 
285
- sig { params(object: Object, name: String).void }
286
- def self.validate_not_nil(object, name); end
287
- end
329
+ private
288
330
 
289
- class MalformedPDFError < RuntimeError
290
- end
331
+ sig { params(str: ::String).returns(::String) }
332
+ def convert_to_utf8(str); end
291
333
 
292
- class InvalidPageError < ArgumentError
293
- end
334
+ sig { returns(T::Hash[::Integer, ::Integer]) }
335
+ def default_mapping; end
294
336
 
295
- class InvalidObjectError < MalformedPDFError
296
- end
337
+ sig { params(enc: ::Symbol).returns(T.nilable(::String)) }
338
+ def get_mapping_file(enc); end
297
339
 
298
- class UnsupportedFeatureError < RuntimeError
299
- end
340
+ sig { params(enc: ::Symbol).returns(::String) }
341
+ def get_unpack(enc); end
300
342
 
301
- class EncryptedPDFError < UnsupportedFeatureError
302
- end
343
+ sig { returns(::PDF::Reader::GlyphHash) }
344
+ def glyphlist; end
303
345
 
304
- class Font
305
- sig { returns(T.nilable(Symbol)) }
306
- attr_accessor :subtype
346
+ sig { params(glyph_code: ::Integer).returns(::String) }
347
+ def internal_int_to_utf8_string(glyph_code); end
307
348
 
308
- sig { returns(PDF::Reader::Encoding) }
309
- attr_accessor :encoding
349
+ sig { params(times: ::Integer).returns(::String) }
350
+ def little_boxes(times); end
310
351
 
311
- sig { returns(T::Array[PDF::Reader::Font]) }
312
- attr_accessor :descendantfonts
352
+ sig { params(file: ::String).void }
353
+ def load_mapping(file); end
313
354
 
314
- sig { returns(PDF::Reader::CMap) }
315
- attr_accessor :tounicode
355
+ sig { returns(T::Boolean) }
356
+ def utf8_conversion_impossible?; end
357
+ end
316
358
 
317
- sig { returns(T::Array[Integer]) }
318
- attr_reader :widths
359
+ PDF::Reader::Encoding::CONTROL_CHARS = T.let(T.unsafe(nil), Array)
360
+ PDF::Reader::Encoding::UNKNOWN_CHAR = T.let(T.unsafe(nil), Integer)
361
+ class PDF::Reader::EncryptedPDFError < ::PDF::Reader::UnsupportedFeatureError; end
319
362
 
320
- sig { returns(T.nilable(Integer)) }
321
- attr_reader :first_char
363
+ class PDF::Reader::Error
364
+ class << self
365
+ sig { params(lvalue: T.untyped, rvalue: T.untyped).returns(T.untyped) }
366
+ def assert_equal(lvalue, rvalue); end
322
367
 
323
- sig { returns(T.nilable(Integer)) }
324
- attr_reader :last_char
368
+ sig { params(lvalue: T.untyped, rvalue: T.untyped, chars: T.untyped).returns(T.untyped) }
369
+ def str_assert(lvalue, rvalue, chars = T.unsafe(nil)); end
325
370
 
326
- sig { returns(T.nilable(Symbol)) }
327
- attr_reader :basefont
371
+ sig { params(lvalue: T.untyped, rvalue: T.untyped, chars: T.untyped).returns(T.untyped) }
372
+ def str_assert_not(lvalue, rvalue, chars = T.unsafe(nil)); end
328
373
 
329
- sig { returns(T.nilable(PDF::Reader::FontDescriptor)) }
330
- attr_reader :font_descriptor
374
+ sig { params(object: ::Object, name: ::String).void }
375
+ def validate_not_nil(object, name); end
331
376
 
332
- sig { returns(T::Array[Numeric]) }
333
- attr_reader :cid_widths
377
+ sig { params(object: ::Object, name: ::String, klass: ::Module).void }
378
+ def validate_type(object, name, klass); end
334
379
 
335
- sig { returns(Numeric) }
336
- attr_reader :cid_default_width
380
+ sig { params(object: ::Object, name: ::String, klass: ::Module).void }
381
+ def validate_type_as_malformed(object, name, klass); end
382
+ end
383
+ end
337
384
 
338
- sig { params(ohash: PDF::Reader::ObjectHash, obj: T::Hash[Symbol, T.untyped]).void }
339
- def initialize(ohash, obj); end
385
+ class PDF::Reader::EventPoint
386
+ sig { params(x: ::Numeric, run: ::PDF::Reader::TextRun).void }
387
+ def initialize(x, run); end
340
388
 
341
- sig { params(params: T.any(Integer, String, T::Array[T.untyped])).returns(String) }
342
- def to_utf8(params); end
389
+ sig { returns(::PDF::Reader::TextRun) }
390
+ def run; end
343
391
 
344
- sig { params(data: String).returns(T::Array[T.nilable(T.any(Numeric, String))]) }
345
- def unpack(data); end
392
+ sig { returns(T::Boolean) }
393
+ def start?; end
346
394
 
347
- sig { params(code_point: T.any(String, Integer)).returns(T.untyped) }
348
- def glyph_width(code_point); end
395
+ sig { returns(::Numeric) }
396
+ def x; end
397
+ end
349
398
 
350
- sig { params(font_name: Symbol).returns(PDF::Reader::Encoding) }
351
- def default_encoding(font_name); end
399
+ module PDF::Reader::Filter
400
+ class << self
401
+ sig { params(name: ::Symbol, options: T::Hash[T.untyped, T.untyped]).returns(T.untyped) }
402
+ def with(name, options = T.unsafe(nil)); end
403
+ end
404
+ end
352
405
 
353
- sig {
354
- returns(
355
- T.any(
356
- PDF::Reader::WidthCalculator::BuiltIn,
357
- PDF::Reader::WidthCalculator::Composite,
358
- PDF::Reader::WidthCalculator::TrueType,
359
- PDF::Reader::WidthCalculator::TypeOneOrThree,
360
- PDF::Reader::WidthCalculator::TypeZero,
361
- )
362
- )
363
- }
364
- def build_width_calculator; end
406
+ class PDF::Reader::Filter::Ascii85
407
+ sig { params(options: T::Hash[T.untyped, T.untyped]).void }
408
+ def initialize(options = T.unsafe(nil)); end
365
409
 
366
- sig { params(obj: T.untyped).void }
367
- def extract_base_info(obj); end
410
+ sig { params(data: ::String).returns(::String) }
411
+ def filter(data); end
412
+ end
368
413
 
369
- sig { params(obj: T.untyped).void }
370
- def extract_descriptor(obj); end
414
+ class PDF::Reader::Filter::AsciiHex
415
+ sig { params(options: T::Hash[T.untyped, T.untyped]).void }
416
+ def initialize(options = T.unsafe(nil)); end
371
417
 
372
- sig { params(obj: T.untyped).void }
373
- def extract_descendants(obj); end
418
+ sig { params(data: ::String).returns(::String) }
419
+ def filter(data); end
420
+ end
374
421
 
375
- sig { params(params: T.any(Integer, String, T::Array[T.untyped])).returns(String) }
376
- def to_utf8_via_cmap(params); end
422
+ class PDF::Reader::Filter::Depredict
423
+ sig { params(options: T::Hash[T.untyped, T.untyped]).void }
424
+ def initialize(options = T.unsafe(nil)); end
377
425
 
378
- sig { params(params: T.any(Integer, String, T::Array[T.untyped])).returns(String) }
379
- def to_utf8_via_encoding(params); end
380
- end
426
+ sig { params(data: ::String).returns(::String) }
427
+ def filter(data); end
381
428
 
382
- class FontDescriptor
383
- sig { returns(String) }
384
- attr_reader :font_name
429
+ private
385
430
 
386
- sig { returns(T.nilable(String)) }
387
- attr_reader :font_family
431
+ sig { params(data: T.untyped).returns(::String) }
432
+ def png_depredict(data); end
388
433
 
389
- sig { returns(Symbol) }
390
- attr_reader :font_stretch
434
+ sig { params(data: T.untyped).returns(::String) }
435
+ def tiff_depredict(data); end
436
+ end
391
437
 
392
- sig { returns(Numeric) }
393
- attr_reader :font_weight
438
+ class PDF::Reader::Filter::Flate
439
+ sig { params(options: T::Hash[T.untyped, T.untyped]).void }
440
+ def initialize(options = T.unsafe(nil)); end
394
441
 
395
- sig { returns(T::Array[Numeric]) }
396
- attr_reader :font_bounding_box
442
+ sig { params(data: ::String).returns(::String) }
443
+ def filter(data); end
397
444
 
398
- sig { returns(Numeric) }
399
- attr_reader :cap_height
445
+ private
400
446
 
401
- sig { returns(Numeric) }
402
- attr_reader :ascent
447
+ sig { params(data: T.untyped).returns(T.untyped) }
448
+ def zlib_inflate(data); end
449
+ end
403
450
 
404
- sig { returns(Numeric) }
405
- attr_reader :descent
451
+ PDF::Reader::Filter::Flate::ZLIB_AUTO_DETECT_ZLIB_OR_GZIP = T.let(T.unsafe(nil), Integer)
452
+ PDF::Reader::Filter::Flate::ZLIB_RAW_DEFLATE = T.let(T.unsafe(nil), Integer)
406
453
 
407
- sig { returns(Numeric) }
408
- attr_reader :leading
454
+ class PDF::Reader::Filter::Lzw
455
+ sig { params(options: T::Hash[T.untyped, T.untyped]).void }
456
+ def initialize(options = T.unsafe(nil)); end
409
457
 
410
- sig { returns(Numeric) }
411
- attr_reader :avg_width
458
+ sig { params(data: ::String).returns(::String) }
459
+ def filter(data); end
460
+ end
412
461
 
413
- sig { returns(Numeric) }
414
- attr_reader :max_width
462
+ class PDF::Reader::Filter::Null
463
+ sig { params(options: T::Hash[T.untyped, T.untyped]).void }
464
+ def initialize(options = T.unsafe(nil)); end
415
465
 
416
- sig { returns(Numeric) }
417
- attr_reader :missing_width
466
+ sig { params(data: ::String).returns(::String) }
467
+ def filter(data); end
468
+ end
418
469
 
419
- sig { returns(T.nilable(Numeric)) }
420
- attr_reader :italic_angle
470
+ class PDF::Reader::Filter::RunLength
471
+ sig { params(options: T::Hash[T.untyped, T.untyped]).void }
472
+ def initialize(options = T.unsafe(nil)); end
421
473
 
422
- sig { returns(T.nilable(Numeric)) }
423
- attr_reader :stem_v
474
+ sig { params(data: ::String).returns(::String) }
475
+ def filter(data); end
476
+ end
424
477
 
425
- sig { returns(T.nilable(Numeric)) }
426
- attr_reader :x_height
478
+ class PDF::Reader::Font
479
+ sig { params(ohash: ::PDF::Reader::ObjectHash, obj: T::Hash[::Symbol, T.untyped]).void }
480
+ def initialize(ohash, obj); end
427
481
 
428
- sig { returns(Integer) }
429
- attr_reader :font_flags
482
+ sig { returns(T.nilable(::Symbol)) }
483
+ def basefont; end
430
484
 
431
- sig { params(ohash: PDF::Reader::ObjectHash, fd_hash: T::Hash[T.untyped, T.untyped]).void }
432
- def initialize(ohash, fd_hash); end
485
+ sig { returns(::Numeric) }
486
+ def cid_default_width; end
433
487
 
434
- sig { params(char_code: Integer).returns(Numeric) }
435
- def glyph_width(char_code); end
488
+ sig { returns(T::Array[::Numeric]) }
489
+ def cid_widths; end
436
490
 
437
- sig { returns(Numeric) }
438
- def glyph_to_pdf_scale_factor; end
491
+ sig { returns(T::Array[::PDF::Reader::Font]) }
492
+ def descendantfonts; end
439
493
 
440
- sig { returns(TTFunk::File) }
441
- def ttf_program_stream; end
442
- end
494
+ def descendantfonts=(_arg0); end
443
495
 
444
- class FormXObject
445
- sig { returns(T.untyped) }
446
- attr_reader :xobject
496
+ sig { returns(::PDF::Reader::Encoding) }
497
+ def encoding; end
447
498
 
448
- sig { params(page: T.untyped, xobject: T.untyped, options: T.untyped).void }
449
- def initialize(page, xobject, options = {}); end
499
+ def encoding=(_arg0); end
450
500
 
451
- sig { returns(T.untyped) }
452
- def font_objects; end
501
+ sig { returns(T.nilable(::Integer)) }
502
+ def first_char; end
453
503
 
454
- sig { params(receivers: T.untyped).returns(T.untyped) }
455
- def walk(*receivers); end
504
+ sig { returns(T.nilable(::PDF::Reader::FontDescriptor)) }
505
+ def font_descriptor; end
456
506
 
457
- sig { returns(T.untyped) }
458
- def raw_content; end
507
+ sig { params(code_point: T.any(::Integer, ::String)).returns(::Numeric) }
508
+ def glyph_width(code_point); end
459
509
 
460
- sig { returns(T.untyped) }
461
- def resources; end
510
+ sig { params(code_point: T.any(::Integer, ::String)).returns(::Numeric) }
511
+ def glyph_width_in_text_space(code_point); end
462
512
 
463
- sig { params(receivers: T.untyped, name: T.untyped, params: T.untyped).returns(T.untyped) }
464
- def callback(receivers, name, params = []); end
513
+ sig { returns(T.nilable(::Integer)) }
514
+ def last_char; end
465
515
 
466
- sig { returns(T.untyped) }
467
- def content_stream_md5; end
516
+ sig { returns(T.nilable(::Symbol)) }
517
+ def subtype; end
468
518
 
469
- sig { returns(T.untyped) }
470
- def cached_tokens_key; end
519
+ def subtype=(_arg0); end
471
520
 
472
- sig { returns(T.untyped) }
473
- def tokens; end
521
+ sig { params(params: T.any(::Integer, ::String, T::Array[T.any(::Integer, ::String)])).returns(::String) }
522
+ def to_utf8(params); end
474
523
 
475
- sig { params(receivers: T.untyped, instructions: T.untyped).returns(T.untyped) }
476
- def content_stream(receivers, instructions); end
477
- end
524
+ sig { returns(T.nilable(::PDF::Reader::CMap)) }
525
+ def tounicode; end
478
526
 
479
- class GlyphHash
480
- @@by_name_cache = T.let(T.unsafe(nil), T.nilable(T::Hash[Symbol, Integer]))
481
- @@by_codepoint_cache = T.let(T.unsafe(nil), T.nilable(T::Hash[Integer, T::Array[Symbol]]))
527
+ def tounicode=(_arg0); end
482
528
 
483
- sig { void }
484
- def initialize
485
- @by_name = T.let(T.unsafe(nil), T::Hash[Symbol, Integer])
486
- @by_codepoint = T.let(T.unsafe(nil), T::Hash[Integer, T::Array[Symbol]])
487
- end
529
+ sig { params(data: ::String).returns(T.nilable(T::Array[T.nilable(T.any(::Float, ::Integer, ::String))])) }
530
+ def unpack(data); end
488
531
 
489
- sig { params(name: T.nilable(Symbol)).returns(T.nilable(Integer)) }
490
- def name_to_unicode(name); end
532
+ sig { returns(T::Array[::Numeric]) }
533
+ def widths; end
491
534
 
492
- sig { params(codepoint: T.nilable(Integer)).returns(T::Array[Symbol]) }
493
- def unicode_to_name(codepoint); end
535
+ private
494
536
 
495
- sig { returns([T::Hash[Symbol, Integer], T::Hash[Integer, T::Array[Symbol]]]) }
496
- def load_adobe_glyph_mapping; end
497
- end
537
+ sig { params(obj: T::Hash[::Symbol, T.untyped]).returns(::PDF::Reader::Encoding) }
538
+ def build_encoding(obj); end
498
539
 
499
- class KeyBuilderV5
500
- sig { params(opts: T::Hash[Symbol, String]).void }
501
- def initialize(opts = {})
502
- @key_length = T.let(T.unsafe(nil), Integer)
503
- @owner_key = T.let(T.unsafe(nil), String)
504
- @user_key = T.let(T.unsafe(nil), String)
505
- @owner_encryption_key = T.let(T.unsafe(nil), String)
506
- @user_encryption_key = T.let(T.unsafe(nil), String)
507
- end
540
+ sig { returns(T.untyped) }
541
+ def build_width_calculator; end
508
542
 
509
- sig { params(pass: String).returns(String) }
510
- def key(pass); end
543
+ sig { params(font_name: T.nilable(T.any(::String, ::Symbol))).returns(::PDF::Reader::Encoding) }
544
+ def default_encoding(font_name); end
511
545
 
512
- sig { params(password: T.untyped).returns(T.untyped) }
513
- def auth_owner_pass(password); end
546
+ sig { params(obj: T::Hash[::Symbol, T.untyped]).void }
547
+ def extract_base_info(obj); end
514
548
 
515
- sig { params(password: T.untyped).returns(T.untyped) }
516
- def auth_user_pass(password); end
549
+ sig { params(obj: T::Hash[::Symbol, T.untyped]).void }
550
+ def extract_descendants(obj); end
517
551
 
518
- sig { params(password: String).returns(T.nilable(String)) }
519
- def auth_owner_pass_r6(password); end
552
+ sig { params(obj: T::Hash[::Symbol, T.untyped]).void }
553
+ def extract_descriptor(obj); end
520
554
 
521
- sig { params(password: String).returns(T.nilable(String)) }
522
- def auth_user_pass_r6(password); end
555
+ sig { params(obj: T::Hash[::Symbol, T.untyped]).void }
556
+ def extract_type3_info(obj); end
523
557
 
524
- sig { params(password: String, salt: String, user_key: String).returns(String)}
525
- def r6_digest(password, salt, user_key = ''); end
558
+ sig { params(x: ::Numeric, y: ::Numeric).returns([::Numeric, ::Numeric]) }
559
+ def font_matrix_transform(x, y); end
526
560
 
527
- sig { params(str: String).returns(Integer)}
528
- def unpack_128bit_bigendian_int(str); end
529
- end
561
+ sig do
562
+ params(
563
+ params: T.any(::Integer, ::String, T::Array[T.any(::Integer, ::String)]),
564
+ cmap: ::PDF::Reader::CMap
565
+ ).returns(::String)
566
+ end
567
+ def to_utf8_via_cmap(params, cmap); end
568
+
569
+ sig { params(params: T.any(::Integer, ::String, T::Array[T.any(::Integer, ::String)])).returns(::String) }
570
+ def to_utf8_via_encoding(params); end
530
571
 
531
- class LZW
532
- CODE_EOD = 257
533
- CODE_CLEAR_TABLE = 256
572
+ sig { params(unpack_me: ::String, unpack_arg: ::String).returns(T::Array[::Integer]) }
573
+ def unpack_string_to_array_of_ints(unpack_me, unpack_arg); end
574
+ end
534
575
 
535
- class BitStream
536
- sig { params(data: String, bits_in_chunk: Integer).void }
537
- def initialize(data, bits_in_chunk)
538
- @data = T.let(T.unsafe(nil), String)
539
- @bits_in_chunk = T.let(T.unsafe(nil), Integer)
540
- @current_pos = T.let(T.unsafe(nil), Integer)
541
- @bits_left_in_byte = T.let(T.unsafe(nil), Integer)
576
+ class PDF::Reader::FontDescriptor
577
+ sig { params(ohash: ::PDF::Reader::ObjectHash, fd_hash: T::Hash[T.untyped, T.untyped]).void }
578
+ def initialize(ohash, fd_hash); end
542
579
 
543
- end
580
+ sig { returns(::Numeric) }
581
+ def ascent; end
544
582
 
545
- sig { params(bits_in_chunk: Integer).void }
546
- def set_bits_in_chunk(bits_in_chunk); end
583
+ sig { returns(::Numeric) }
584
+ def avg_width; end
547
585
 
548
- sig { returns(Integer) }
549
- def read; end
550
- end
586
+ sig { returns(::Numeric) }
587
+ def cap_height; end
551
588
 
552
- class StringTable
553
- sig { returns(Integer) }
554
- attr_reader :string_table_pos
589
+ sig { returns(::Numeric) }
590
+ def descent; end
555
591
 
556
- sig { void }
557
- def initialize
558
- @data = T.let(T.unsafe(nil), T::Hash[Integer, String])
559
- @string_table_pos = T.let(T.unsafe(nil), Integer)
560
- end
592
+ sig { returns(T::Array[::Numeric]) }
593
+ def font_bounding_box; end
561
594
 
562
- sig { params(key: Integer).returns(T.nilable(String)) }
563
- def [](key); end
595
+ sig { returns(T.nilable(::String)) }
596
+ def font_family; end
564
597
 
565
- sig { params(string: String).void }
566
- def add(string); end
567
- end
598
+ sig { returns(::Integer) }
599
+ def font_flags; end
568
600
 
569
- sig { params(data: String).returns(String) }
570
- def self.decode(data); end
601
+ sig { returns(::String) }
602
+ def font_name; end
571
603
 
572
- sig { params(string_table: PDF::Reader::LZW::StringTable, some_code: T.nilable(Integer), other_code: T.nilable(Integer)).returns(String) }
573
- def self.create_new_string(string_table, some_code, other_code); end
574
- end
604
+ sig { returns(::Symbol) }
605
+ def font_stretch; end
575
606
 
576
- class NullSecurityHandler
577
- sig { params(buf: T.untyped, _ref: T.untyped).returns(T.untyped) }
578
- def decrypt(buf, _ref); end
579
- end
607
+ sig { returns(::Numeric) }
608
+ def font_weight; end
580
609
 
581
- class ObjectCache
582
- CACHEABLE_TYPES = [:Catalog, :Page, :Pages]
610
+ sig { returns(::Numeric) }
611
+ def glyph_to_pdf_scale_factor; end
583
612
 
584
- sig { returns(T.untyped) }
585
- attr_reader :hits
613
+ sig { params(char_code: ::Integer).returns(::Numeric) }
614
+ def glyph_width(char_code); end
586
615
 
587
- sig { returns(T.untyped) }
588
- attr_reader :misses
616
+ sig { returns(T.nilable(::Numeric)) }
617
+ def italic_angle; end
589
618
 
590
- sig { params(lru_size: T.untyped).void }
591
- def initialize(lru_size = 1000); end
619
+ sig { returns(::Numeric) }
620
+ def leading; end
592
621
 
593
- sig { params(key: T.untyped).returns(T.untyped) }
594
- def [](key); end
622
+ sig { returns(::Numeric) }
623
+ def max_width; end
595
624
 
596
- sig { params(key: T.untyped, value: T.untyped).returns(T.untyped) }
597
- def []=(key, value); end
625
+ sig { returns(::Numeric) }
626
+ def missing_width; end
598
627
 
599
- sig { params(key: T.untyped, local_default: T.untyped).returns(T.untyped) }
600
- def fetch(key, local_default = nil); end
628
+ sig { returns(T.nilable(::Numeric)) }
629
+ def stem_v; end
601
630
 
602
- sig { params(block: T.untyped).returns(T.untyped) }
603
- def each(&block); end
631
+ sig { returns(T.nilable(::Numeric)) }
632
+ def x_height; end
604
633
 
605
- sig { params(block: T.untyped).returns(T.untyped) }
606
- def each_key(&block); end
634
+ private
607
635
 
608
- sig { params(block: T.untyped).returns(T.untyped) }
609
- def each_value(&block); end
636
+ sig { returns(::TTFunk::File) }
637
+ def ttf_program_stream; end
638
+ end
610
639
 
611
- sig { returns(T.untyped) }
612
- def size; end
640
+ class PDF::Reader::FormXObject
641
+ extend ::Forwardable
613
642
 
614
- sig { returns(T.untyped) }
615
- def empty?; end
643
+ sig { params(page: T.untyped, xobject: T.untyped, options: T::Hash[T.untyped, T.untyped]).void }
644
+ def initialize(page, xobject, options = T.unsafe(nil)); end
616
645
 
617
- sig { params(key: T.untyped).returns(T.untyped) }
618
- def include?(key); end
646
+ def color_spaces(*args, **_arg1, &block); end
619
647
 
620
- sig { params(value: T.untyped).returns(T.untyped) }
621
- def has_value?(value); end
648
+ sig { returns(T.untyped) }
649
+ def font_objects; end
622
650
 
623
- sig { returns(T.untyped) }
624
- def to_s; end
651
+ def fonts(*args, **_arg1, &block); end
652
+ def graphic_states(*args, **_arg1, &block); end
653
+ def patterns(*args, **_arg1, &block); end
654
+ def procedure_sets(*args, **_arg1, &block); end
655
+ def properties(*args, **_arg1, &block); end
625
656
 
626
- sig { returns(T.untyped) }
627
- def keys; end
657
+ sig { returns(T.untyped) }
658
+ def raw_content; end
628
659
 
629
- sig { returns(T.untyped) }
630
- def values; end
660
+ def shadings(*args, **_arg1, &block); end
631
661
 
632
- sig { params(key: T.untyped).returns(T.untyped) }
633
- def update_stats(key); end
662
+ sig { params(receivers: T.untyped).returns(T.untyped) }
663
+ def walk(*receivers); end
634
664
 
635
- sig { params(obj: T.untyped).returns(T.untyped) }
636
- def cacheable?(obj); end
637
- end
665
+ sig { returns(T.untyped) }
666
+ def xobject; end
667
+
668
+ def xobjects(*args, **_arg1, &block); end
669
+
670
+ private
671
+
672
+ sig { returns(T.untyped) }
673
+ def cached_tokens_key; end
674
+
675
+ sig { params(receivers: T.untyped, name: T.untyped, params: T::Array[T.untyped]).returns(T.untyped) }
676
+ def callback(receivers, name, params = T.unsafe(nil)); end
638
677
 
639
- class ObjectHash
640
- include Enumerable
678
+ sig { params(receivers: T.untyped, instructions: T.untyped).returns(T.untyped) }
679
+ def content_stream(receivers, instructions); end
641
680
 
642
- sig { returns(T.untyped) }
643
- attr_accessor :default
681
+ sig { returns(T.untyped) }
682
+ def content_stream_md5; end
644
683
 
645
- sig { returns(T::Hash[Symbol, T.untyped]) }
646
- attr_reader :trailer
684
+ sig { returns(T.untyped) }
685
+ def resources; end
647
686
 
648
- sig { returns(Float) }
649
- attr_reader :pdf_version
687
+ sig { returns(T.untyped) }
688
+ def tokens; end
689
+ end
690
+
691
+ class PDF::Reader::GlyphHash
692
+ sig { void }
693
+ def initialize; end
694
+
695
+ sig { params(name: T.nilable(::Symbol)).returns(T.nilable(::Integer)) }
696
+ def name_to_unicode(name); end
650
697
 
651
- sig { returns(
652
- T.any(
653
- PDF::Reader::NullSecurityHandler,
654
- PDF::Reader::AesV2SecurityHandler,
655
- PDF::Reader::AesV3SecurityHandler,
656
- PDF::Reader::Rc4SecurityHandler,
657
- )) }
658
- attr_reader :sec_handler
698
+ sig { params(codepoint: ::Integer).returns(T::Array[::Symbol]) }
699
+ def unicode_to_name(codepoint); end
700
+
701
+ private
702
+
703
+ sig { returns(::PDF::Reader::GlyphHash::ReturnData) }
704
+ def load_adobe_glyph_mapping; end
705
+ end
659
706
 
660
- sig { params(input: T.any(IO, Tempfile, StringIO, String), opts: T::Hash[Symbol, T.untyped]).void }
661
- def initialize(input, opts = {})
662
- @io = T.let(T.unsafe(nil), T.any(IO, Tempfile, StringIO))
663
- @xref = T.let(T.unsafe(nil), PDF::Reader::XRef)
664
- @pdf_version = T.let(T.unsafe(nil), Float)
665
- @trailer = T.let(T.unsafe(nil), T::Hash[Symbol, T.untyped])
666
- @cache = T.let(T.unsafe(nil), PDF::Reader::ObjectCache)
667
- @sec_handler = T.let(T.unsafe(nil), T.any(
668
- PDF::Reader::NullSecurityHandler,
669
- PDF::Reader::AesV2SecurityHandler,
670
- PDF::Reader::AesV3SecurityHandler,
671
- PDF::Reader::Rc4SecurityHandler,
672
- ))
673
- @page_references = T.let(T.unsafe(nil), T.nilable(T::Array[T.any(PDF::Reader::Reference, T::Hash[Symbol, T.untyped])]))
674
- @object_streams = T.let(T.unsafe(nil), T.nilable(T::Hash[PDF::Reader::Reference, PDF::Reader::ObjectStream]))
675
- end
707
+ class PDF::Reader::GlyphHash::ReturnData
708
+ def initialize(by_name, by_codepoint); end
676
709
 
677
- sig { params(ref: T.any(Integer, PDF::Reader::Reference)).returns(T.nilable(Symbol)) }
678
- def obj_type(ref); end
710
+ sig { returns(T::Hash[::Integer, T::Array[::Symbol]]) }
711
+ def by_codepoint; end
679
712
 
680
- sig { params(ref: T.any(Integer, PDF::Reader::Reference)).returns(T::Boolean) }
681
- def stream?(ref); end
713
+ sig { returns(T::Hash[::Symbol, ::Integer]) }
714
+ def by_name; end
715
+ end
682
716
 
683
- sig { params(key: T.any(Integer, PDF::Reader::Reference)).returns(T.untyped) }
684
- def [](key); end
717
+ class PDF::Reader::InvalidObjectError < ::PDF::Reader::MalformedPDFError; end
718
+ class PDF::Reader::InvalidPageError < ::ArgumentError; end
685
719
 
686
- sig { params(key: T.untyped).returns(T.untyped) }
687
- def object(key); end
720
+ class PDF::Reader::KeyBuilderV5
721
+ sig { params(opts: T::Hash[::Symbol, ::String]).void }
722
+ def initialize(opts = T.unsafe(nil)); end
688
723
 
689
- sig { params(key: T.untyped).returns(T.nilable(T::Array[T.untyped])) }
690
- def deref_array(key); end
724
+ sig { params(pass: ::String).returns(::String) }
725
+ def key(pass); end
691
726
 
692
- sig { params(key: T.untyped).returns(T.nilable(T::Array[Numeric])) }
693
- def deref_array_of_numbers(key); end
727
+ private
694
728
 
695
- sig { params(key: T.untyped).returns(T.nilable(T::Hash[Symbol, T.untyped])) }
696
- def deref_hash(key); end
729
+ sig { params(password: ::String).returns(T.nilable(::String)) }
730
+ def auth_owner_pass(password); end
697
731
 
698
- sig { params(key: T.untyped).returns(T.nilable(Symbol)) }
699
- def deref_name(key); end
732
+ sig { params(password: ::String).returns(T.nilable(::String)) }
733
+ def auth_owner_pass_r6(password); end
700
734
 
701
- sig { params(key: T.untyped).returns(T.any(Symbol, T::Array[T.untyped], NilClass)) }
702
- def deref_name_or_array(key); end
735
+ sig { params(password: ::String).returns(T.nilable(::String)) }
736
+ def auth_user_pass(password); end
703
737
 
704
- sig { params(key: T.untyped).returns(T.nilable(Integer)) }
705
- def deref_integer(key); end
738
+ sig { params(password: ::String).returns(T.nilable(::String)) }
739
+ def auth_user_pass_r6(password); end
706
740
 
707
- sig { params(key: T.untyped).returns(T.nilable(Numeric)) }
708
- def deref_number(key); end
741
+ sig { params(password: ::String, salt: ::String, user_key: ::String).returns(::String) }
742
+ def r6_digest(password, salt, user_key = T.unsafe(nil)); end
709
743
 
710
- sig { params(key: T.untyped).returns(T.nilable(PDF::Reader::Stream)) }
711
- def deref_stream(key); end
744
+ sig { params(str: ::String).returns(::Integer) }
745
+ def unpack_128bit_bigendian_int(str); end
746
+ end
712
747
 
713
- sig { params(key: T.untyped).returns(T.nilable(String)) }
714
- def deref_string(key); end
748
+ class PDF::Reader::LZW
749
+ class << self
750
+ sig { params(data: ::String).returns(::String) }
751
+ def decode(data); end
715
752
 
716
- sig { params(key: T.untyped).returns(T.any(PDF::Reader::Stream, T::Array[T.untyped], NilClass)) }
717
- def deref_stream_or_array(key); end
753
+ private
718
754
 
719
- sig { params(key: T.untyped).returns(T.untyped) }
720
- def deref!(key); end
755
+ sig do
756
+ params(
757
+ string_table: ::PDF::Reader::LZW::StringTable,
758
+ some_code: T.nilable(::Integer),
759
+ other_code: T.nilable(::Integer)
760
+ ).returns(::String)
761
+ end
762
+ def create_new_string(string_table, some_code, other_code); end
763
+ end
764
+ end
721
765
 
722
- sig { params(key: T.untyped).returns(T.nilable(T::Array[T.untyped])) }
723
- def deref_array!(key); end
766
+ class PDF::Reader::LZW::BitStream
767
+ sig { params(data: ::String, bits_in_chunk: ::Integer).void }
768
+ def initialize(data, bits_in_chunk); end
724
769
 
725
- sig { params(key: T.untyped).returns(T.nilable(T::Hash[Symbol, T.untyped])) }
726
- def deref_hash!(key); end
770
+ sig { returns(::Integer) }
771
+ def read; end
727
772
 
728
- sig { params(key: T.untyped, local_default: T.untyped).returns(T.untyped) }
729
- def fetch(key, local_default = nil); end
773
+ sig { params(bits_in_chunk: ::Integer).void }
774
+ def set_bits_in_chunk(bits_in_chunk); end
775
+ end
730
776
 
731
- sig { params(block: T.untyped).returns(T.untyped) }
732
- def each(&block); end
777
+ PDF::Reader::LZW::CODE_CLEAR_TABLE = T.let(T.unsafe(nil), Integer)
778
+ PDF::Reader::LZW::CODE_EOD = T.let(T.unsafe(nil), Integer)
733
779
 
734
- sig { params(block: T.untyped).returns(T.untyped) }
735
- def each_key(&block); end
780
+ class PDF::Reader::LZW::StringTable
781
+ sig { void }
782
+ def initialize; end
736
783
 
737
- sig { params(block: T.untyped).returns(T.untyped) }
738
- def each_value(&block); end
784
+ sig { params(key: ::Integer).returns(T.nilable(::String)) }
785
+ def [](key); end
739
786
 
740
- sig { returns(Integer) }
741
- def size; end
787
+ sig { params(string: ::String).void }
788
+ def add(string); end
742
789
 
743
- sig { returns(T::Boolean) }
744
- def empty?; end
790
+ sig { returns(::Integer) }
791
+ def string_table_pos; end
792
+ end
745
793
 
746
- sig { params(check_key: T.untyped).returns(T::Boolean) }
747
- def has_key?(check_key); end
794
+ class PDF::Reader::MalformedPDFError < ::RuntimeError; end
748
795
 
749
- sig { params(value: T.untyped).returns(T::Boolean) }
750
- def has_value?(value); end
796
+ class PDF::Reader::NoTextFilter
797
+ class << self
798
+ sig { params(runs: T::Array[::PDF::Reader::TextRun]).returns(T::Array[::PDF::Reader::TextRun]) }
799
+ def exclude_empty_strings(runs); end
800
+ end
801
+ end
751
802
 
752
- sig { returns(String) }
753
- def to_s; end
803
+ class PDF::Reader::NullSecurityHandler
804
+ sig { params(buf: ::String, _ref: ::PDF::Reader::Reference).returns(::String) }
805
+ def decrypt(buf, _ref); end
806
+ end
754
807
 
755
- sig { returns(T::Array[PDF::Reader::Reference]) }
756
- def keys; end
808
+ class PDF::Reader::ObjectCache
809
+ sig { params(lru_size: T.untyped).void }
810
+ def initialize(lru_size = T.unsafe(nil)); end
811
+
812
+ def [](key); end
813
+ def []=(key, value); end
814
+ def each(&block); end
815
+ def each_key(&block); end
816
+ def each_pair(&block); end
817
+ def each_value(&block); end
818
+ def empty?; end
819
+ def fetch(key, local_default = T.unsafe(nil)); end
820
+ def has_key?(key); end
821
+ def has_value?(value); end
822
+
823
+ sig { returns(T.untyped) }
824
+ def hits; end
825
+
826
+ def include?(key); end
827
+ def key?(key); end
828
+ def keys; end
829
+ def length; end
830
+ def member?(key); end
831
+
832
+ sig { returns(T.untyped) }
833
+ def misses; end
834
+
835
+ def size; end
836
+ def to_s; end
837
+ def values; end
838
+
839
+ private
840
+
841
+ def cacheable?(obj); end
842
+ def update_stats(key); end
843
+ end
757
844
 
758
- sig { returns(T.untyped) }
759
- def values; end
845
+ PDF::Reader::ObjectCache::CACHEABLE_TYPES = T.let(T.unsafe(nil), Array)
760
846
 
761
- sig { params(ids: T.untyped).returns(T.untyped) }
762
- def values_at(*ids); end
847
+ class PDF::Reader::ObjectHash
848
+ include ::Enumerable
763
849
 
764
- sig { returns(T.untyped) }
765
- def to_a; end
850
+ sig { params(input: T.any(::IO, ::String, ::StringIO, ::Tempfile), opts: T::Hash[::Symbol, T.untyped]).void }
851
+ def initialize(input, opts = T.unsafe(nil)); end
766
852
 
767
- sig { returns(T::Array[T.any(PDF::Reader::Reference, T::Hash[Symbol, T.untyped])]) }
768
- def page_references; end
853
+ sig { params(key: T.any(::Integer, ::PDF::Reader::Reference)).returns(T.untyped) }
854
+ def [](key); end
769
855
 
770
- sig { returns(T::Boolean) }
771
- def encrypted?; end
856
+ sig { returns(T.untyped) }
857
+ def default; end
772
858
 
773
- sig { returns(T::Boolean) }
774
- def sec_handler?; end
859
+ def default=(_arg0); end
860
+ def deref(*args, **_arg1, &blk); end
775
861
 
776
- sig { params(key: T.untyped).returns(T.untyped) }
777
- def fetch_object(key); end
862
+ sig { params(key: T.untyped).returns(T.untyped) }
863
+ def deref!(key); end
778
864
 
779
- sig { params(key: T.untyped).returns(T.untyped) }
780
- def fetch_object_stream(key); end
865
+ sig { params(key: T.untyped).returns(T.nilable(T::Array[T.untyped])) }
866
+ def deref_array(key); end
781
867
 
782
- sig { params(key: T.untyped, seen: T.untyped).returns(T.untyped) }
783
- def deref_internal!(key, seen); end
868
+ sig { params(key: T.untyped).returns(T.nilable(T::Array[T.untyped])) }
869
+ def deref_array!(key); end
784
870
 
785
- sig { params(ref: T.untyped, obj: T.untyped).returns(T.untyped) }
786
- def decrypt(ref, obj); end
871
+ sig { params(key: T.untyped).returns(T.nilable(T::Array[::Numeric])) }
872
+ def deref_array_of_numbers(key); end
787
873
 
788
- sig { params(offset: Integer).returns(PDF::Reader::Buffer) }
789
- def new_buffer(offset = 0); end
874
+ sig { params(key: T.untyped).returns(T.nilable(T::Hash[::Symbol, T.untyped])) }
875
+ def deref_hash(key); end
790
876
 
791
- sig { returns(T.untyped) }
792
- def xref; end
877
+ sig { params(key: T.untyped).returns(T.nilable(T::Hash[::Symbol, T.untyped])) }
878
+ def deref_hash!(key); end
793
879
 
794
- sig { returns(T.untyped) }
795
- def object_streams; end
880
+ sig { params(key: T.untyped).returns(T.nilable(::Integer)) }
881
+ def deref_integer(key); end
796
882
 
797
- sig { params(obj: T.any(PDF::Reader::Reference, T::Hash[Symbol, T.untyped])).returns(T::Array[T.any(PDF::Reader::Reference, T::Hash[Symbol, T.untyped])]) }
798
- def get_page_objects(obj); end
883
+ sig { params(key: T.untyped).returns(T.nilable(::Symbol)) }
884
+ def deref_name(key); end
799
885
 
800
- sig { returns(Float) }
801
- def read_version; end
886
+ sig { params(key: T.untyped).returns(T.nilable(T.any(::Symbol, T::Array[T.untyped]))) }
887
+ def deref_name_or_array(key); end
802
888
 
803
- sig { params(input: T.any(IO, Tempfile, StringIO, String)).returns(T.any(IO, Tempfile, StringIO)) }
804
- def extract_io_from(input); end
889
+ sig { params(key: T.untyped).returns(T.nilable(::Numeric)) }
890
+ def deref_number(key); end
805
891
 
806
- sig { params(input: String).returns(String) }
807
- def read_as_binary(input); end
808
- end
892
+ sig { params(key: T.untyped).returns(T.nilable(::PDF::Reader::Stream)) }
893
+ def deref_stream(key); end
809
894
 
810
- class ObjectStream
811
- sig { params(stream: PDF::Reader::Stream).void }
812
- def initialize(stream)
813
- @dict = T.let(T.unsafe(nil), T::Hash[Symbol, T.untyped])
814
- @data = T.let(T.unsafe(nil), String)
815
- @offsets = T.let(T.unsafe(nil), T.nilable(T::Hash[Integer, Integer]))
816
- @buffer = T.let(T.unsafe(nil), T.nilable(PDF::Reader::Buffer))
817
- end
818
-
819
- sig {
820
- params(objid: Integer).returns(
821
- T.any(PDF::Reader::Reference, PDF::Reader::Token, Numeric, String, Symbol, T::Array[T.untyped], T::Hash[T.untyped, T.untyped], NilClass)
822
- )
823
- }
824
- def [](objid); end
825
-
826
- sig { returns(Integer) }
827
- def size; end
828
-
829
- sig { returns(T::Hash[Integer, Integer]) }
830
- def offsets; end
831
-
832
- sig { returns(Integer) }
833
- def first; end
834
-
835
- sig { returns(PDF::Reader::Buffer) }
836
- def buffer; end
837
- end
895
+ sig { params(key: T.untyped).returns(T.nilable(T.any(::PDF::Reader::Stream, T::Array[T.untyped]))) }
896
+ def deref_stream_or_array(key); end
838
897
 
839
- class OverlappingRunsFilter
840
- OVERLAPPING_THRESHOLD = T.let(T.unsafe(nil), Float)
898
+ sig { params(key: T.untyped).returns(T.nilable(::String)) }
899
+ def deref_string(key); end
841
900
 
842
- sig { params(runs: T::Array[PDF::Reader::TextRun]).returns(T::Array[PDF::Reader::TextRun]) }
843
- def self.exclude_redundant_runs(runs); end
901
+ sig do
902
+ override
903
+ .params(
904
+ block: T.proc.params(arg0: ::PDF::Reader::Reference, arg1: T.untyped).returns(T.untyped)
905
+ ).returns(T.untyped)
906
+ end
907
+ def each(&block); end
844
908
 
845
- sig { params(sweep_line_status: T::Array[PDF::Reader::TextRun], event_point: PDF::Reader::EventPoint).returns(T::Boolean) }
846
- def self.detect_intersection(sweep_line_status, event_point); end
847
- end
909
+ sig { params(block: T.proc.params(arg0: ::PDF::Reader::Reference).returns(T.untyped)).returns(T.untyped) }
910
+ def each_key(&block); end
848
911
 
849
- class NoTextFilter
850
- sig { params(runs: T::Array[PDF::Reader::TextRun]).returns(T::Array[PDF::Reader::TextRun]) }
851
- def self.exclude_empty_strings(runs); end
852
- end
912
+ def each_pair(*args, **_arg1, &blk); end
853
913
 
854
- class AdvancedTextRunFilter
855
- VALID_OPERATORS = T.let(T::Array[Symbol])
914
+ sig { params(block: T.proc.params(arg0: T.untyped).returns(T.untyped)).returns(T.untyped) }
915
+ def each_value(&block); end
856
916
 
857
- sig { params(text_runs: T::Array[TextRun], filter_hash: T::Hash[Symbol, T.untyped]).returns(T::Array[TextRun]) }
858
- def self.only(text_runs, filter_hash); end
917
+ sig { returns(T::Boolean) }
918
+ def empty?; end
859
919
 
860
- sig { params(text_runs: T::Array[TextRun], filter_hash: T::Hash[Symbol, T.untyped]).returns(T::Array[TextRun]) }
861
- def self.exclude(text_runs, filter_hash); end
920
+ sig { returns(T::Boolean) }
921
+ def encrypted?; end
862
922
 
863
- sig { returns(T::Array[TextRun]) }
864
- attr_reader :text_runs
923
+ sig { params(key: T.untyped, local_default: T.untyped).returns(T.untyped) }
924
+ def fetch(key, local_default = T.unsafe(nil)); end
865
925
 
866
- sig { returns(T::Hash[Symbol, T.untyped]) }
867
- attr_reader :filter_hash
926
+ sig { params(check_key: T.untyped).returns(T::Boolean) }
927
+ def has_key?(check_key); end
868
928
 
869
- sig { params(text_runs: T::Array[TextRun], filter_hash: T::Hash[Symbol, T.untyped]).void }
870
- def initialize(text_runs, filter_hash)
871
- @text_runs = T.let(T.unsafe(nil), T::Array[TextRun])
872
- @filter_hash = T.let(T.unsafe(nil), T::Hash[Symbol, T.untyped])
873
- end
929
+ sig { params(value: T.untyped).returns(T::Boolean) }
930
+ def has_value?(value); end
874
931
 
875
- sig { returns(T::Array[TextRun]) }
876
- def only; end
932
+ def include?(*args, **_arg1, &blk); end
933
+ def key?(*args, **_arg1, &blk); end
877
934
 
878
- sig { returns(T::Array[TextRun]) }
879
- def exclude; end
935
+ sig { returns(T::Array[::PDF::Reader::Reference]) }
936
+ def keys; end
880
937
 
881
- sig { params(text_run: TextRun).returns(T::Boolean) }
882
- def evaluate_filter(text_run); end
938
+ def length(*args, **_arg1, &blk); end
939
+ def member?(*args, **_arg1, &blk); end
883
940
 
884
- sig { params(text_run: TextRun, conditions: T::Array[T::Hash[Symbol, T.untyped]]).returns(T::Boolean) }
885
- def evaluate_or_filters(text_run, conditions); end
941
+ sig { params(ref: T.any(::Integer, ::PDF::Reader::Reference)).returns(T.nilable(::Symbol)) }
942
+ def obj_type(ref); end
886
943
 
887
- sig { params(text_run: TextRun, conditions: T::Array[T::Hash[Symbol, T.untyped]]).returns(T::Boolean) }
888
- def evaluate_and_filters(text_run, conditions); end
944
+ sig { params(key: T.untyped).returns(T.untyped) }
945
+ def object(key); end
889
946
 
890
- sig { params(text_run: TextRun, filter_hash: T::Hash[Symbol, T.untyped]).returns(T::Boolean) }
891
- def evaluate_filters(text_run, filter_hash); end
947
+ sig { returns(T::Array[T.any(::PDF::Reader::Reference, T::Hash[::Symbol, T.untyped])]) }
948
+ def page_references; end
892
949
 
893
- sig { params(text_run: TextRun, attribute: Symbol, conditions: T::Hash[Symbol, T.untyped]).returns(T::Boolean) }
894
- def evaluate_attribute_conditions(text_run, attribute, conditions); end
950
+ sig { returns(::Float) }
951
+ def pdf_version; end
895
952
 
896
- sig { params(attribute_value: T.untyped, operator: Symbol, filter_value: T.untyped).returns(T::Boolean) }
897
- def apply_operator(attribute_value, operator, filter_value); end
898
- end
953
+ sig { returns(T.untyped) }
954
+ def sec_handler; end
899
955
 
900
- class EventPoint
901
- sig { returns(Numeric) }
902
- attr_reader :x
956
+ sig { returns(T::Boolean) }
957
+ def sec_handler?; end
903
958
 
904
- sig { returns(PDF::Reader::TextRun) }
905
- attr_reader :run
959
+ sig { returns(::Integer) }
960
+ def size; end
906
961
 
907
- sig { params(x: Numeric, run: PDF::Reader::TextRun).void }
908
- def initialize(x, run)
909
- @x = T.let(T.unsafe(nil), Numeric)
910
- @run = T.let(T.unsafe(nil), PDF::Reader::TextRun)
911
- end
962
+ sig { params(ref: T.any(::Integer, ::PDF::Reader::Reference)).returns(T::Boolean) }
963
+ def stream?(ref); end
912
964
 
913
- sig { returns(T::Boolean) }
914
- def start?; end
915
- end
965
+ sig { returns(T.untyped) }
966
+ def to_a; end
916
967
 
917
- class Page
918
- sig { returns(PDF::Reader::ObjectHash) }
919
- attr_reader :objects
968
+ sig { returns(::String) }
969
+ def to_s; end
920
970
 
921
- sig { returns(T::Hash[Symbol, T.untyped]) }
922
- attr_reader :page_object
971
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
972
+ def trailer; end
923
973
 
924
- sig { returns(T.any(PDF::Reader::ObjectCache, T::Hash[T.untyped, T.untyped])) }
925
- attr_reader :cache
974
+ def value?(*args, **_arg1, &blk); end
926
975
 
927
- sig { params(objects: PDF::Reader::ObjectHash, pagenum: Integer, options: T::Hash[Symbol, T.untyped]).void }
928
- def initialize(objects, pagenum, options = {})
929
- @objects = T.let(T.unsafe(nil), PDF::Reader::ObjectHash)
930
- @pagenum = T.let(T.unsafe(nil), Integer)
931
- @page_object = T.let(T.unsafe(nil), T::Hash[Symbol, T.untyped])
932
- @cache = T.let(T.unsafe(nil), T.any(PDF::Reader::ObjectCache, T::Hash[T.untyped, T.untyped]))
933
- @attributes = T.let(T.unsafe(nil), T.nilable(T::Hash[Symbol, T.untyped]))
934
- @root = T.let(T.unsafe(nil), T.nilable(T::Hash[Symbol, T.untyped]))
935
- @resources = T.let(T.unsafe(nil), T.nilable(PDF::Reader::Resources))
936
- end
976
+ sig { returns(T.untyped) }
977
+ def values; end
937
978
 
938
- sig { returns(Integer) }
939
- def number; end
979
+ sig { params(ids: T.untyped).returns(T.untyped) }
980
+ def values_at(*ids); end
940
981
 
941
- sig { returns(String) }
942
- def inspect; end
982
+ private
943
983
 
944
- sig { returns(T::Hash[Symbol, T.untyped]) }
945
- def attributes; end
984
+ sig do
985
+ params(
986
+ ref: ::PDF::Reader::Reference,
987
+ obj: T.untyped
988
+ ).returns(T.nilable(T.any(::Numeric, ::PDF::Reader::Reference, ::PDF::Reader::Stream, ::PDF::Reader::Token, ::String, ::Symbol, T::Array[T.untyped], T::Hash[T.untyped, T.untyped])))
989
+ end
990
+ def decrypt(ref, obj); end
946
991
 
947
- sig { returns(Numeric) }
948
- def height; end
992
+ sig do
993
+ params(
994
+ key: T.untyped,
995
+ seen: T::Hash[::Integer, T.untyped]
996
+ ).returns(T.nilable(T.any(::Numeric, ::PDF::Reader::Reference, ::PDF::Reader::Stream, ::PDF::Reader::Token, ::String, ::Symbol, T::Array[T.untyped], T::Hash[T.untyped, T.untyped])))
997
+ end
998
+ def deref_internal!(key, seen); end
949
999
 
950
- sig { returns(Numeric) }
951
- def width; end
1000
+ sig { params(input: T.any(::IO, ::String, ::StringIO, ::Tempfile)).returns(T.any(::IO, ::StringIO, ::Tempfile)) }
1001
+ def extract_io_from(input); end
952
1002
 
953
- sig { returns(String) }
954
- def orientation; end
1003
+ sig do
1004
+ params(
1005
+ key: ::PDF::Reader::Reference
1006
+ ).returns(T.nilable(T.any(::Numeric, ::PDF::Reader::Reference, ::PDF::Reader::Stream, ::PDF::Reader::Token, ::String, ::Symbol, T::Array[T.untyped], T::Hash[T.untyped, T.untyped])))
1007
+ end
1008
+ def fetch_object(key); end
955
1009
 
956
- sig { returns(T::Array[Numeric]) }
957
- def origin; end
1010
+ sig do
1011
+ params(
1012
+ key: ::PDF::Reader::Reference
1013
+ ).returns(T.nilable(T.any(::Numeric, ::PDF::Reader::Reference, ::PDF::Reader::Stream, ::PDF::Reader::Token, ::String, ::Symbol, T::Array[T.untyped], T::Hash[T.untyped, T.untyped])))
1014
+ end
1015
+ def fetch_object_stream(key); end
958
1016
 
959
- sig { params(opts: T::Hash[Symbol, T.untyped]).returns(T::Array[PDF::Reader::TextRun]) }
960
- def runs(opts = {}); end
1017
+ sig do
1018
+ params(
1019
+ obj: T.any(::PDF::Reader::Reference, T::Hash[::Symbol, T.untyped])
1020
+ ).returns(T::Array[T.any(::PDF::Reader::Reference, T::Hash[::Symbol, T.untyped])])
1021
+ end
1022
+ def get_page_objects(obj); end
961
1023
 
962
- sig { params(opts: T::Hash[Symbol, T.untyped]).returns(String) }
963
- def text(opts = {}); end
1024
+ sig { params(offset: ::Integer).returns(::PDF::Reader::Buffer) }
1025
+ def new_buffer(offset = T.unsafe(nil)); end
964
1026
 
965
- sig { params(receivers: T.untyped).void }
966
- def walk(*receivers); end
1027
+ sig { returns(T::Hash[::PDF::Reader::Reference, ::PDF::Reader::ObjectStream]) }
1028
+ def object_streams; end
967
1029
 
968
- sig { returns(String) }
969
- def raw_content; end
1030
+ sig { params(input: ::String).returns(::String) }
1031
+ def read_as_binary(input); end
970
1032
 
971
- sig { returns(Integer) }
972
- def rotate; end
1033
+ sig { returns(::Float) }
1034
+ def read_version; end
973
1035
 
974
- sig { returns(T::Hash[Symbol, T::Array[Numeric]]) }
975
- def boxes; end
1036
+ sig { returns(PDF::Reader::XRef[::PDF::Reader::Reference]) }
1037
+ def xref; end
1038
+ end
976
1039
 
977
- sig { returns(T::Hash[Symbol, PDF::Reader::Rectangle]) }
978
- def rectangles; end
1040
+ class PDF::Reader::ObjectStream
1041
+ sig { params(stream: ::PDF::Reader::Stream).void }
1042
+ def initialize(stream); end
979
1043
 
980
- sig { returns(T::Hash[Symbol, T.untyped]) }
981
- def root; end
1044
+ sig do
1045
+ params(
1046
+ objid: ::Integer
1047
+ ).returns(T.nilable(T.any(::Numeric, ::PDF::Reader::Reference, ::PDF::Reader::Token, ::String, ::Symbol, T::Array[T.untyped], T::Hash[T.untyped, T.untyped])))
1048
+ end
1049
+ def [](objid); end
982
1050
 
983
- sig { returns(PDF::Reader::Resources) }
984
- def resources; end
1051
+ sig { returns(::Integer) }
1052
+ def size; end
985
1053
 
986
- sig { params(receivers: T::Array[T.untyped], instructions: String).void }
987
- def content_stream(receivers, instructions); end
1054
+ private
988
1055
 
989
- sig { params(receivers: T::Array[Object], name: Symbol, params: T::Array[T.untyped]).void }
990
- def callback(receivers, name, params = []); end
1056
+ sig { returns(::PDF::Reader::Buffer) }
1057
+ def buffer; end
991
1058
 
992
- sig { returns(T.untyped) }
993
- def page_with_ancestors; end
1059
+ sig { returns(::Integer) }
1060
+ def first; end
994
1061
 
995
- sig { params(origin: T.untyped).returns(T.untyped) }
996
- def ancestors(origin = @page_object[:Parent]); end
1062
+ sig { returns(T::Hash[::Integer, ::Integer]) }
1063
+ def offsets; end
1064
+ end
997
1065
 
998
- sig { params(obj: T::Hash[Symbol, T.untyped]).returns(T::Hash[Symbol, T.untyped]) }
999
- def select_inheritable(obj); end
1066
+ class PDF::Reader::OverlappingRunsFilter
1067
+ class << self
1068
+ sig do
1069
+ params(
1070
+ sweep_line_status: T::Array[::PDF::Reader::TextRun],
1071
+ event_point: ::PDF::Reader::EventPoint
1072
+ ).returns(T::Boolean)
1000
1073
  end
1074
+ def detect_intersection(sweep_line_status, event_point); end
1001
1075
 
1002
- class PageLayout
1003
- DEFAULT_FONT_SIZE = T.let(T.unsafe(nil), Numeric)
1076
+ sig { params(runs: T::Array[::PDF::Reader::TextRun]).returns(T::Array[::PDF::Reader::TextRun]) }
1077
+ def exclude_redundant_runs(runs); end
1078
+ end
1079
+ end
1004
1080
 
1005
- sig { params(runs: T::Array[PDF::Reader::TextRun], mediabox: T.any(T::Array[Numeric], PDF::Reader::Rectangle)).void }
1006
- def initialize(runs, mediabox)
1007
- @mediabox = T.let(T.unsafe(nil), PDF::Reader::Rectangle)
1008
- @runs = T.let(T.unsafe(nil), T::Array[PDF::Reader::TextRun])
1009
- @mean_font_size = T.let(T.unsafe(nil), Numeric)
1010
- @median_glyph_width = T.let(T.unsafe(nil), Numeric)
1011
- @x_offset = T.let(T.unsafe(nil), Numeric)
1012
- @y_offset = T.let(T.unsafe(nil), Numeric)
1013
- @row_count = T.let(T.unsafe(nil), T.nilable(Integer))
1014
- @col_count = T.let(T.unsafe(nil), T.nilable(Integer))
1015
- @row_multiplier = T.let(T.unsafe(nil), T.nilable(Numeric))
1016
- @col_multiplier = T.let(T.unsafe(nil), T.nilable(Numeric))
1017
- end
1081
+ PDF::Reader::OverlappingRunsFilter::OVERLAPPING_THRESHOLD = T.let(T.unsafe(nil), Float)
1018
1082
 
1019
- sig { returns(String) }
1020
- def to_s; end
1083
+ class PDF::Reader::Page
1084
+ extend ::Forwardable
1021
1085
 
1022
- sig { params(rows: T.untyped).returns(T.untyped) }
1023
- def interesting_rows(rows); end
1086
+ sig { params(objects: ::PDF::Reader::ObjectHash, pagenum: ::Integer, options: T::Hash[::Symbol, T.untyped]).void }
1087
+ def initialize(objects, pagenum, options = T.unsafe(nil)); end
1024
1088
 
1025
- sig { returns(T.untyped) }
1026
- def row_count; end
1089
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
1090
+ def attributes; end
1027
1091
 
1028
- sig { returns(T.untyped) }
1029
- def col_count; end
1092
+ sig { returns(T::Hash[::Symbol, T::Array[::Numeric]]) }
1093
+ def boxes; end
1030
1094
 
1031
- sig { returns(T.untyped) }
1032
- def row_multiplier; end
1095
+ sig { returns(T.any(::PDF::Reader::ObjectCache, T::Hash[T.untyped, T.untyped])) }
1096
+ def cache; end
1033
1097
 
1034
- sig { returns(T.untyped) }
1035
- def col_multiplier; end
1098
+ def color_spaces(*args, **_arg1, &block); end
1099
+ def fonts(*args, **_arg1, &block); end
1100
+ def graphic_states(*args, **_arg1, &block); end
1036
1101
 
1037
- sig { params(collection: T.untyped).returns(T.untyped) }
1038
- def mean(collection); end
1102
+ sig { returns(::Numeric) }
1103
+ def height; end
1039
1104
 
1040
- sig { params(collection: T.untyped).returns(T.untyped) }
1041
- def median(collection); end
1105
+ sig { returns(::String) }
1106
+ def inspect; end
1042
1107
 
1043
- sig { params(runs: T.untyped).returns(T.untyped) }
1044
- def merge_runs(runs); end
1108
+ sig { returns(::Integer) }
1109
+ def number; end
1045
1110
 
1046
- sig { params(chars: T::Array[PDF::Reader::TextRun]).returns(T::Array[PDF::Reader::TextRun]) }
1047
- def group_chars_into_runs(chars); end
1111
+ sig { returns(::PDF::Reader::ObjectHash) }
1112
+ def objects; end
1048
1113
 
1049
- sig { params(haystack: T.untyped, needle: T.untyped, index: T.untyped).returns(T.untyped) }
1050
- def local_string_insert(haystack, needle, index); end
1114
+ sig { returns(::String) }
1115
+ def orientation; end
1051
1116
 
1052
- sig { params(mediabox: T.untyped).returns(T.untyped) }
1053
- def process_mediabox(mediabox); end
1117
+ sig { returns(T::Array[::Numeric]) }
1118
+ def origin; end
1054
1119
 
1055
- sig { returns(Numeric) }
1056
- def page_width; end
1120
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
1121
+ def page_object; end
1057
1122
 
1058
- sig { returns(Numeric) }
1059
- def page_height; end
1060
- end
1123
+ def patterns(*args, **_arg1, &block); end
1124
+ def procedure_sets(*args, **_arg1, &block); end
1125
+ def properties(*args, **_arg1, &block); end
1061
1126
 
1062
- class PageState
1063
- DEFAULT_GRAPHICS_STATE = {
1064
- :char_spacing => 0,
1065
- :word_spacing => 0,
1066
- :h_scaling => 1.0,
1067
- :text_leading => 0,
1068
- :text_font => nil,
1069
- :text_font_size => nil,
1070
- :text_mode => 0,
1071
- :text_rise => 0,
1072
- :text_knockout => 0
1073
- }
1127
+ sig { returns(::String) }
1128
+ def raw_content; end
1074
1129
 
1075
- sig { params(page: T.untyped).void }
1076
- def initialize(page); end
1130
+ sig { returns(T::Hash[::Symbol, ::PDF::Reader::Rectangle]) }
1131
+ def rectangles; end
1077
1132
 
1078
- sig { returns(T.untyped) }
1079
- def save_graphics_state; end
1133
+ sig { returns(::Integer) }
1134
+ def rotate; end
1080
1135
 
1081
- sig { returns(T.untyped) }
1082
- def restore_graphics_state; end
1136
+ sig { params(opts: T::Hash[::Symbol, T.untyped]).returns(T::Array[::PDF::Reader::TextRun]) }
1137
+ def runs(opts = T.unsafe(nil)); end
1083
1138
 
1084
- sig do
1085
- params(
1086
- a: T.untyped,
1087
- b: T.untyped,
1088
- c: T.untyped,
1089
- d: T.untyped,
1090
- e: T.untyped,
1091
- f: T.untyped
1092
- ).returns(T.untyped)
1093
- end
1094
- def concatenate_matrix(a, b, c, d, e, f); end
1139
+ def shadings(*args, **_arg1, &block); end
1095
1140
 
1096
- sig { returns(T.untyped) }
1097
- def begin_text_object; end
1141
+ sig { params(opts: T::Hash[::Symbol, T.untyped]).returns(::String) }
1142
+ def text(opts = T.unsafe(nil)); end
1098
1143
 
1099
- sig { returns(T.untyped) }
1100
- def end_text_object; end
1144
+ def to_s(*args, **_arg1, &blk); end
1101
1145
 
1102
- sig { params(char_spacing: T.untyped).returns(T.untyped) }
1103
- def set_character_spacing(char_spacing); end
1146
+ sig { params(receivers: T.untyped).returns(T.untyped) }
1147
+ def walk(*receivers); end
1104
1148
 
1105
- sig { params(h_scaling: T.untyped).returns(T.untyped) }
1106
- def set_horizontal_text_scaling(h_scaling); end
1149
+ sig { returns(::Numeric) }
1150
+ def width; end
1107
1151
 
1108
- sig { params(label: T.untyped, size: T.untyped).returns(T.untyped) }
1109
- def set_text_font_and_size(label, size); end
1152
+ def xobjects(*args, **_arg1, &block); end
1110
1153
 
1111
- sig { returns(T.untyped) }
1112
- def font_size; end
1154
+ private
1113
1155
 
1114
- sig { params(leading: T.untyped).returns(T.untyped) }
1115
- def set_text_leading(leading); end
1156
+ sig { params(origin: T.untyped, seen: T::Set[::Integer]).returns(T.untyped) }
1157
+ def ancestors(origin = T.unsafe(nil), seen = T.unsafe(nil)); end
1116
1158
 
1117
- sig { params(mode: T.untyped).returns(T.untyped) }
1118
- def set_text_rendering_mode(mode); end
1159
+ sig { params(receivers: T::Array[::Object], name: ::Symbol, params: T::Array[T.untyped]).void }
1160
+ def callback(receivers, name, params = T.unsafe(nil)); end
1119
1161
 
1120
- sig { params(rise: T.untyped).returns(T.untyped) }
1121
- def set_text_rise(rise); end
1162
+ sig { params(receivers: T::Array[T.untyped], instructions: ::String).void }
1163
+ def content_stream(receivers, instructions); end
1122
1164
 
1123
- sig { params(word_spacing: T.untyped).returns(T.untyped) }
1124
- def set_word_spacing(word_spacing); end
1165
+ sig { returns(T.untyped) }
1166
+ def page_with_ancestors; end
1125
1167
 
1126
- sig { params(x: T.untyped, y: T.untyped).returns(T.untyped) }
1127
- def move_text_position(x, y); end
1168
+ sig { returns(::PDF::Reader::Resources) }
1169
+ def resources; end
1128
1170
 
1129
- sig { params(x: T.untyped, y: T.untyped).returns(T.untyped) }
1130
- def move_text_position_and_set_leading(x, y); end
1171
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
1172
+ def root; end
1131
1173
 
1132
- sig do
1133
- params(
1134
- a: T.untyped,
1135
- b: T.untyped,
1136
- c: T.untyped,
1137
- d: T.untyped,
1138
- e: T.untyped,
1139
- f: T.untyped
1140
- ).returns(T.untyped)
1141
- end
1142
- def set_text_matrix_and_text_line_matrix(a, b, c, d, e, f); end
1174
+ sig { params(obj: T::Hash[::Symbol, T.untyped]).returns(T::Hash[::Symbol, T.untyped]) }
1175
+ def select_inheritable(obj); end
1176
+ end
1143
1177
 
1144
- sig { returns(T.untyped) }
1145
- def move_to_start_of_next_line; end
1178
+ class PDF::Reader::PageLayout
1179
+ sig do
1180
+ params(
1181
+ runs: T::Array[::PDF::Reader::TextRun],
1182
+ mediabox: T.any(::PDF::Reader::Rectangle, T::Array[::Numeric])
1183
+ ).void
1184
+ end
1185
+ def initialize(runs, mediabox); end
1146
1186
 
1147
- sig { params(params: T.untyped).returns(T.untyped) }
1148
- def show_text_with_positioning(params); end
1187
+ sig { returns(::String) }
1188
+ def to_s; end
1149
1189
 
1150
- sig { params(str: T.untyped).returns(T.untyped) }
1151
- def move_to_next_line_and_show_text(str); end
1190
+ private
1152
1191
 
1153
- sig { params(aw: T.untyped, ac: T.untyped, string: T.untyped).returns(T.untyped) }
1154
- def set_spacing_next_line_show_text(aw, ac, string); end
1192
+ sig { returns(T.untyped) }
1193
+ def col_count; end
1155
1194
 
1156
- sig { params(label: T.untyped).returns(T.untyped) }
1157
- def invoke_xobject(label); end
1195
+ sig { returns(T.untyped) }
1196
+ def col_multiplier; end
1158
1197
 
1159
- sig { params(x: T.untyped, y: T.untyped).returns(T.untyped) }
1160
- def ctm_transform(x, y); end
1198
+ sig { params(rows: T.untyped).returns(T.untyped) }
1199
+ def interesting_rows(rows); end
1161
1200
 
1162
- sig { params(x: T.untyped, y: T.untyped).returns(T.untyped) }
1163
- def trm_transform(x, y); end
1201
+ sig { params(haystack: T.untyped, needle: T.untyped, index: T.untyped).returns(T.untyped) }
1202
+ def local_string_insert(haystack, needle, index); end
1164
1203
 
1165
- sig { returns(T.untyped) }
1166
- def current_font; end
1204
+ sig { params(collection: T.untyped).returns(T.untyped) }
1205
+ def mean(collection); end
1167
1206
 
1168
- sig { params(label: T.untyped).returns(T.untyped) }
1169
- def find_font(label); end
1207
+ sig { params(collection: T.untyped).returns(T.untyped) }
1208
+ def median(collection); end
1170
1209
 
1171
- sig { params(label: T.untyped).returns(T.untyped) }
1172
- def find_color_space(label); end
1210
+ sig { returns(::Numeric) }
1211
+ def page_height; end
1173
1212
 
1174
- sig { params(label: T.untyped).returns(T.untyped) }
1175
- def find_xobject(label); end
1213
+ sig { returns(::Numeric) }
1214
+ def page_width; end
1176
1215
 
1177
- sig { returns(T.untyped) }
1178
- def stack_depth; end
1216
+ sig { params(mediabox: T.untyped).returns(T.untyped) }
1217
+ def process_mediabox(mediabox); end
1179
1218
 
1180
- sig { returns(T.untyped) }
1181
- def clone_state; end
1219
+ sig { returns(T.untyped) }
1220
+ def row_count; end
1182
1221
 
1183
- sig { params(w0: T.untyped, tj: T.untyped, word_boundary: T.untyped).returns(T.untyped) }
1184
- def process_glyph_displacement(w0, tj, word_boundary); end
1222
+ sig { returns(T.untyped) }
1223
+ def row_multiplier; end
1224
+ end
1185
1225
 
1186
- sig { returns(T.untyped) }
1187
- def text_rendering_matrix; end
1226
+ PDF::Reader::PageLayout::DEFAULT_FONT_SIZE = T.let(T.unsafe(nil), Integer)
1227
+
1228
+ class PDF::Reader::PageState
1229
+ sig { params(page: T.untyped).void }
1230
+ def initialize(page); end
1231
+
1232
+ def begin_text_object; end
1233
+ def clone_state; end
1234
+ def concatenate_matrix(a, b, c, d, e, f); end
1235
+ def ctm_transform(x, y); end
1236
+ def current_font; end
1237
+ def end_text_object; end
1238
+ def find_color_space(label); end
1239
+ def find_font(label); end
1240
+ def find_xobject(label); end
1241
+ def font_size; end
1242
+ def invoke_xobject(label); end
1243
+ def move_text_position(x, y); end
1244
+ def move_text_position_and_set_leading(x, y); end
1245
+ def move_to_next_line_and_show_text(str); end
1246
+ def move_to_start_of_next_line; end
1247
+ def process_glyph_displacement(w0, tj, word_boundary); end
1248
+
1249
+ sig { returns(T.untyped) }
1250
+ def restore_graphics_state; end
1251
+
1252
+ sig { returns(T.untyped) }
1253
+ def save_graphics_state; end
1254
+
1255
+ def set_character_spacing(char_spacing); end
1256
+ def set_horizontal_text_scaling(h_scaling); end
1257
+ def set_spacing_next_line_show_text(aw, ac, string); end
1258
+ def set_text_font_and_size(label, size); end
1259
+ def set_text_leading(leading); end
1260
+ def set_text_matrix_and_text_line_matrix(a, b, c, d, e, f); end
1261
+ def set_text_rendering_mode(mode); end
1262
+ def set_text_rise(rise); end
1263
+ def set_word_spacing(word_spacing); end
1264
+ def show_text_with_positioning(params); end
1265
+ def stack_depth; end
1266
+ def trm_transform(x, y); end
1267
+
1268
+ private
1269
+
1270
+ def build_fonts(raw_fonts); end
1271
+ def ctm; end
1272
+ def identity_matrix; end
1273
+ def state; end
1274
+ def text_rendering_matrix; end
1275
+ end
1188
1276
 
1189
- sig { returns(T.untyped) }
1190
- def ctm; end
1277
+ PDF::Reader::PageState::DEFAULT_GRAPHICS_STATE = T.let(T.unsafe(nil), Hash)
1278
+
1279
+ class PDF::Reader::PageTextReceiver
1280
+ extend ::Forwardable
1281
+
1282
+ def begin_text_object(*args, **_arg1, &block); end
1283
+ def concatenate_matrix(*args, **_arg1, &block); end
1284
+ def content; end
1285
+ def end_text_object(*args, **_arg1, &block); end
1286
+ def font_size(*args, **_arg1, &block); end
1287
+ def invoke_xobject(label); end
1288
+ def move_text_position(*args, **_arg1, &block); end
1289
+ def move_text_position_and_set_leading(*args, **_arg1, &block); end
1290
+ def move_to_next_line_and_show_text(str); end
1291
+ def move_to_start_of_next_line(*args, **_arg1, &block); end
1292
+
1293
+ sig { returns(T.untyped) }
1294
+ def options; end
1295
+
1296
+ def page=(page); end
1297
+ def restore_graphics_state(*args, **_arg1, &block); end
1298
+ def runs(opts = T.unsafe(nil)); end
1299
+ def save_graphics_state(*args, **_arg1, &block); end
1300
+ def set_character_spacing(*args, **_arg1, &block); end
1301
+ def set_horizontal_text_scaling(*args, **_arg1, &block); end
1302
+ def set_spacing_next_line_show_text(aw, ac, string); end
1303
+ def set_text_font_and_size(*args, **_arg1, &block); end
1304
+ def set_text_leading(*args, **_arg1, &block); end
1305
+ def set_text_matrix_and_text_line_matrix(*args, **_arg1, &block); end
1306
+ def set_text_rendering_mode(*args, **_arg1, &block); end
1307
+ def set_text_rise(*args, **_arg1, &block); end
1308
+ def set_word_spacing(*args, **_arg1, &block); end
1309
+ def show_text(string); end
1310
+ def show_text_with_positioning(params); end
1311
+
1312
+ sig { returns(T.untyped) }
1313
+ def state; end
1314
+
1315
+ private
1316
+
1317
+ def apply_rotation(x, y); end
1318
+ def group_chars_into_runs(chars); end
1319
+ def internal_show_text(string); end
1320
+ def merge_runs(runs); end
1321
+ end
1191
1322
 
1192
- sig { returns(T.untyped) }
1193
- def state; end
1323
+ PDF::Reader::PageTextReceiver::SPACE = T.let(T.unsafe(nil), String)
1324
+ class PDF::Reader::PagesStrategy; end
1325
+ PDF::Reader::PagesStrategy::OPERATORS = T.let(T.unsafe(nil), Hash)
1194
1326
 
1195
- sig { params(raw_fonts: T.untyped).returns(T.untyped) }
1196
- def build_fonts(raw_fonts); end
1327
+ 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
1197
1330
 
1198
- sig { returns(T.untyped) }
1199
- def identity_matrix; end
1200
- end
1331
+ sig do
1332
+ params(
1333
+ id: ::Integer,
1334
+ gen: ::Integer
1335
+ ).returns(T.nilable(T.any(::Numeric, ::PDF::Reader::Reference, ::PDF::Reader::Stream, ::PDF::Reader::Token, ::String, ::Symbol, T::Array[T.untyped], T::Hash[T.untyped, T.untyped])))
1336
+ end
1337
+ def object(id, gen); end
1201
1338
 
1202
- class PageTextReceiver
1203
- extend Forwardable
1204
- SPACE = " "
1339
+ 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])))
1343
+ end
1344
+ def parse_token(operators = T.unsafe(nil)); end
1205
1345
 
1206
- sig { returns(T.untyped) }
1207
- attr_reader :state
1346
+ private
1208
1347
 
1209
- sig { returns(T.untyped) }
1210
- attr_reader :options
1348
+ sig { returns(T::Array[T.untyped]) }
1349
+ def array; end
1211
1350
 
1212
- sig { params(page: T.untyped).returns(T.untyped) }
1213
- def page=(page); end
1351
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
1352
+ def dictionary; end
1214
1353
 
1215
- sig { returns(T.untyped) }
1216
- def content; end
1354
+ sig { returns(::String) }
1355
+ def hex_string; end
1217
1356
 
1218
- sig { params(string: String).void }
1219
- def show_text(string); end
1357
+ sig { returns(::Symbol) }
1358
+ def pdf_name; end
1220
1359
 
1221
- sig { params(params: T::Array[T.untyped]).void }
1222
- def show_text_with_positioning(params); end
1360
+ sig { params(dict: T::Hash[::Symbol, T.untyped]).returns(::PDF::Reader::Stream) }
1361
+ def stream(dict); end
1223
1362
 
1224
- sig { params(str: String).void }
1225
- def move_to_next_line_and_show_text(str); end
1363
+ sig { returns(::String) }
1364
+ def string; end
1365
+ end
1226
1366
 
1227
- sig { params(opts: T::Hash[Symbol, T.untyped]).returns(T::Array[PDF::Reader::TextRun]) }
1228
- def runs(opts = {}); end
1367
+ PDF::Reader::Parser::MAPPING = T.let(T.unsafe(nil), Hash)
1368
+ PDF::Reader::Parser::STRATEGIES = T.let(T.unsafe(nil), Hash)
1369
+ PDF::Reader::Parser::TOKEN_STRATEGY = T.let(T.unsafe(nil), Proc)
1229
1370
 
1230
- sig { params(aw: Numeric, ac: Numeric, string: String).void }
1231
- def set_spacing_next_line_show_text(aw, ac, string); end
1371
+ class PDF::Reader::Point
1372
+ sig { params(x: ::Numeric, y: ::Numeric).void }
1373
+ def initialize(x, y); end
1232
1374
 
1233
- sig { params(label: T.untyped).returns(T.untyped) }
1234
- def invoke_xobject(label); end
1375
+ sig { params(other: ::PDF::Reader::Point).returns(T::Boolean) }
1376
+ def ==(other); end
1235
1377
 
1236
- sig { params(string: String).void }
1237
- def internal_show_text(string); end
1378
+ sig { returns(::Numeric) }
1379
+ def x; end
1238
1380
 
1239
- sig { params(x: T.untyped, y: T.untyped).returns(T.untyped) }
1240
- def apply_rotation(x, y); end
1241
- end
1381
+ sig { returns(::Numeric) }
1382
+ def y; end
1383
+ end
1242
1384
 
1243
- class PagesStrategy
1244
- OPERATORS = T.let(T.unsafe(nil), T::Hash[String, Symbol])
1245
- end
1385
+ class PDF::Reader::PrintReceiver
1386
+ sig { params(methodname: ::Symbol, args: T.untyped).void }
1387
+ def method_missing(methodname, *args); end
1246
1388
 
1247
- class Parser
1248
- sig { params(buffer: PDF::Reader::Buffer, objects: T.nilable(PDF::Reader::ObjectHash)).void }
1249
- def initialize(buffer, objects=nil); end
1250
-
1251
- sig {
1252
- params(
1253
- operators: T::Hash[T.any(String, PDF::Reader::Token), Symbol]
1254
- ).returns(
1255
- T.any(PDF::Reader::Reference, PDF::Reader::Token, Numeric, String, Symbol, T::Array[T.untyped], T::Hash[T.untyped, T.untyped], NilClass)
1256
- )
1257
- }
1258
- def parse_token(operators={}); end
1259
-
1260
- sig {
1261
- params(
1262
- id: Integer,
1263
- gen: Integer
1264
- ).returns(
1265
- T.any(PDF::Reader::Reference, PDF::Reader::Token, PDF::Reader::Stream, Numeric, String, Symbol, T::Array[T.untyped], T::Hash[T.untyped, T.untyped], NilClass)
1266
- )
1267
- }
1268
- def object(id, gen); end
1269
-
1270
- sig { returns(T::Hash[Symbol, T.untyped]) }
1271
- def dictionary; end
1272
-
1273
- sig { returns(Symbol) }
1274
- def pdf_name; end
1275
-
1276
- sig { returns(T::Array[T.untyped]) }
1277
- def array; end
1278
-
1279
- sig { returns(String) }
1280
- def hex_string; end
1281
-
1282
- sig { returns(String) }
1283
- def string; end
1284
-
1285
- sig { params(dict: T::Hash[Symbol, T.untyped]).returns(PDF::Reader::Stream) }
1286
- def stream(dict); end
1287
- end
1389
+ sig { params(meth: T.untyped).returns(T::Boolean) }
1390
+ def respond_to?(meth); end
1391
+ end
1288
1392
 
1289
- class Point
1290
- sig do
1291
- params(
1292
- x: Numeric,
1293
- y: Numeric,
1294
- ).void
1295
- end
1296
- def initialize(x, y)
1297
- @x = T.let(T.unsafe(nil), Numeric)
1298
- @y = T.let(T.unsafe(nil), Numeric)
1299
- end
1393
+ class PDF::Reader::Rc4SecurityHandler
1394
+ sig { params(key: ::String).void }
1395
+ def initialize(key); end
1300
1396
 
1301
- sig { returns(Numeric) }
1302
- def x; end
1397
+ sig { params(buf: ::String, ref: ::PDF::Reader::Reference).returns(::String) }
1398
+ def decrypt(buf, ref); end
1399
+ end
1303
1400
 
1304
- sig { returns(Numeric) }
1305
- def y; end
1401
+ class PDF::Reader::Rectangle
1402
+ sig { params(x1: ::Numeric, y1: ::Numeric, x2: ::Numeric, y2: ::Numeric).void }
1403
+ def initialize(x1, y1, x2, y2); end
1306
1404
 
1307
- sig { params(other: PDF::Reader::Point).returns(T::Boolean) }
1308
- def ==(other); end
1405
+ sig { params(other: ::PDF::Reader::Rectangle).returns(T::Boolean) }
1406
+ def ==(other); end
1309
1407
 
1310
- end
1408
+ sig { params(degrees: ::Integer).void }
1409
+ def apply_rotation(degrees); end
1311
1410
 
1312
- class PrintReceiver
1313
- sig { returns(T.untyped) }
1314
- attr_accessor :callbacks
1411
+ sig { returns(::PDF::Reader::Point) }
1412
+ def bottom_left; end
1315
1413
 
1316
- sig { void }
1317
- def initialize; end
1414
+ sig { returns(::PDF::Reader::Point) }
1415
+ def bottom_right; end
1318
1416
 
1319
- sig { params(meth: T.untyped).returns(T.untyped) }
1320
- def respond_to?(meth); end
1417
+ sig { params(point: ::PDF::Reader::Point).returns(T::Boolean) }
1418
+ def contains?(point); end
1321
1419
 
1322
- sig { params(methodname: T.untyped, args: T.untyped).returns(T.untyped) }
1323
- def method_missing(methodname, *args); end
1324
- end
1420
+ sig { returns(::Numeric) }
1421
+ def height; end
1325
1422
 
1326
- class Rc4SecurityHandler
1327
- sig { params(key: String).void }
1328
- def initialize(key)
1329
- @encrypt_key = T.let(T.unsafe(nil), String)
1330
- end
1423
+ sig { returns(T::Array[::Numeric]) }
1424
+ def to_a; end
1331
1425
 
1332
- sig { params(buf: T.untyped, ref: T.untyped).returns(T.untyped) }
1333
- def decrypt(buf, ref); end
1334
- end
1426
+ sig { returns(::PDF::Reader::Point) }
1427
+ def top_left; end
1335
1428
 
1336
- class Rectangle
1429
+ sig { returns(::PDF::Reader::Point) }
1430
+ def top_right; end
1337
1431
 
1338
- sig { params(arr: T::Array[Numeric]).returns(PDF::Reader::Rectangle) }
1339
- def self.from_array(arr); end
1432
+ sig { returns(::Numeric) }
1433
+ def width; end
1340
1434
 
1341
- sig do
1342
- params(
1343
- x1: Numeric,
1344
- y1: Numeric,
1345
- x2: Numeric,
1346
- y2: Numeric
1347
- ).void
1348
- end
1435
+ private
1349
1436
 
1350
- def initialize(x1, y1, x2, y2)
1351
- @bottom_left = T.let(T.unsafe(nil), PDF::Reader::Point)
1352
- @bottom_right = T.let(T.unsafe(nil), PDF::Reader::Point)
1353
- @top_left = T.let(T.unsafe(nil), PDF::Reader::Point)
1354
- @top_right = T.let(T.unsafe(nil), PDF::Reader::Point)
1355
- end
1437
+ sig { params(x1: ::Numeric, y1: ::Numeric, x2: ::Numeric, y2: ::Numeric).void }
1438
+ def set_corners(x1, y1, x2, y2); end
1356
1439
 
1357
- sig { returns(PDF::Reader::Point) }
1358
- def bottom_left; end
1440
+ class << self
1441
+ sig { params(arr: T::Array[::Numeric]).returns(::PDF::Reader::Rectangle) }
1442
+ def from_array(arr); end
1443
+ end
1444
+ end
1359
1445
 
1360
- sig { returns(PDF::Reader::Point) }
1361
- def bottom_right; end
1446
+ class PDF::Reader::Reference
1447
+ sig { params(id: ::Integer, gen: ::Integer).void }
1448
+ def initialize(id, gen); end
1362
1449
 
1363
- sig { returns(PDF::Reader::Point) }
1364
- def top_left; end
1450
+ sig { params(obj: ::Object).returns(T::Boolean) }
1451
+ def ==(obj); end
1365
1452
 
1366
- sig { returns(PDF::Reader::Point) }
1367
- def top_right; end
1453
+ def eql?(*args, **_arg1, &blk); end
1368
1454
 
1369
- sig { returns(Numeric) }
1370
- def height; end
1455
+ sig { returns(::Integer) }
1456
+ def gen; end
1371
1457
 
1372
- sig { returns(Numeric) }
1373
- def width; end
1458
+ sig { returns(::Integer) }
1459
+ def hash; end
1374
1460
 
1375
- sig { returns(T::Array[Numeric]) }
1376
- def to_a; end
1461
+ sig { returns(::Integer) }
1462
+ def id; end
1377
1463
 
1378
- sig { params(degrees: Integer).void }
1379
- def apply_rotation(degrees); end
1464
+ sig { returns(T::Array[::PDF::Reader::Reference]) }
1465
+ def to_a; end
1380
1466
 
1381
- sig { params(point: PDF::Reader::Point).void }
1382
- def contains?(point); end
1467
+ sig { returns(::Integer) }
1468
+ def to_i; end
1469
+ end
1383
1470
 
1384
- sig { params(other: PDF::Reader::Rectangle).void }
1385
- def ==(other); end
1471
+ class PDF::Reader::RegisterReceiver
1472
+ sig { void }
1473
+ def initialize; end
1386
1474
 
1387
- sig { params(x1: Numeric, y1: Numeric, x2: Numeric, y2: Numeric).void }
1388
- def set_corners(x1, y1, x2, y2); end
1389
- end
1475
+ sig { params(methodname: ::Symbol).returns(T::Array[T::Hash[::Symbol, T.untyped]]) }
1476
+ def all(methodname); end
1390
1477
 
1391
- class Reference
1392
- sig { returns(Integer) }
1393
- attr_reader :id
1478
+ sig { params(methodname: ::Symbol).returns(T::Array[T::Array[T.untyped]]) }
1479
+ def all_args(methodname); end
1394
1480
 
1395
- sig { returns(Integer) }
1396
- attr_reader :gen
1481
+ sig { returns(T::Array[T::Hash[::Symbol, T.untyped]]) }
1482
+ def callbacks; end
1397
1483
 
1398
- sig { params(id: Integer, gen: Integer).void }
1399
- def initialize(id, gen)
1400
- @id = T.let(T.unsafe(nil), Integer)
1401
- @gen = T.let(T.unsafe(nil), Integer)
1402
- end
1484
+ def callbacks=(_arg0); end
1403
1485
 
1404
- sig { returns(T::Array[PDF::Reader::Reference]) }
1405
- def to_a; end
1486
+ sig { params(methodname: ::Symbol).returns(::Integer) }
1487
+ def count(methodname); end
1406
1488
 
1407
- sig { returns(Integer) }
1408
- def to_i; end
1489
+ sig { params(methodname: ::Symbol).returns(T.nilable(T::Hash[::Symbol, T.untyped])) }
1490
+ def final_occurance_of(methodname); end
1409
1491
 
1410
- sig { params(obj: Object).returns(T::Boolean) }
1411
- def ==(obj); end
1492
+ sig { params(methodname: ::Symbol).returns(T.nilable(T::Hash[::Symbol, T.untyped])) }
1493
+ def first_occurance_of(methodname); end
1412
1494
 
1413
- sig { returns(Integer) }
1414
- def hash; end
1415
- end
1495
+ sig { params(methodname: ::Symbol, args: T.untyped).void }
1496
+ def method_missing(methodname, *args); end
1497
+
1498
+ sig { params(meth: T.untyped).returns(T::Boolean) }
1499
+ def respond_to?(meth); end
1500
+
1501
+ sig { params(methods: ::Symbol).returns(T.nilable(T::Array[T::Hash[::Symbol, T.untyped]])) }
1502
+ def series(*methods); end
1503
+ end
1416
1504
 
1417
- class RegisterReceiver
1418
- sig { returns(T.untyped) }
1419
- attr_accessor :callbacks
1505
+ class PDF::Reader::Resources
1506
+ sig { params(objects: ::PDF::Reader::ObjectHash, resources: T::Hash[T.untyped, T.untyped]).void }
1507
+ def initialize(objects, resources); end
1420
1508
 
1421
- sig { void }
1422
- def initialize; end
1509
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
1510
+ def color_spaces; end
1423
1511
 
1424
- sig { params(meth: T.untyped).returns(T.untyped) }
1425
- def respond_to?(meth); end
1512
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
1513
+ def fonts; end
1426
1514
 
1427
- sig { params(methodname: T.untyped, args: T.untyped).returns(T.untyped) }
1428
- def method_missing(methodname, *args); end
1515
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
1516
+ def graphic_states; end
1429
1517
 
1430
- sig { params(methodname: T.untyped).returns(T.untyped) }
1431
- def count(methodname); end
1518
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
1519
+ def patterns; end
1432
1520
 
1433
- sig { params(methodname: T.untyped).returns(T.untyped) }
1434
- def all(methodname); end
1521
+ sig { returns(T::Array[::Symbol]) }
1522
+ def procedure_sets; end
1435
1523
 
1436
- sig { params(methodname: T.untyped).returns(T.untyped) }
1437
- def all_args(methodname); end
1524
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
1525
+ def properties; end
1438
1526
 
1439
- sig { params(methodname: T.untyped).returns(T.untyped) }
1440
- def first_occurance_of(methodname); end
1527
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
1528
+ def shadings; end
1441
1529
 
1442
- sig { params(methodname: T.untyped).returns(T.untyped) }
1443
- def final_occurance_of(methodname); end
1530
+ sig { returns(T::Hash[::Symbol, ::PDF::Reader::Stream]) }
1531
+ def xobjects; end
1532
+ end
1444
1533
 
1445
- sig { params(methods: T.untyped).returns(T.untyped) }
1446
- def series(*methods); end
1534
+ class PDF::Reader::SecurityHandlerFactory
1535
+ class << self
1536
+ sig do
1537
+ params(
1538
+ encrypt: T::Hash[::Symbol, T.untyped],
1539
+ doc_id: T.nilable(T::Array[T.untyped]),
1540
+ password: T.nilable(::String)
1541
+ ).returns(T.any(::PDF::Reader::AesV2SecurityHandler, ::PDF::Reader::AesV3SecurityHandler, ::PDF::Reader::NullSecurityHandler, ::PDF::Reader::Rc4SecurityHandler, ::PDF::Reader::UnimplementedSecurityHandler))
1542
+ end
1543
+ def build(encrypt, doc_id, password); end
1544
+
1545
+ sig do
1546
+ params(
1547
+ encrypt: T::Hash[::Symbol, T.untyped],
1548
+ doc_id: T::Array[T.untyped],
1549
+ password: ::String
1550
+ ).returns(T.any(::PDF::Reader::AesV2SecurityHandler, ::PDF::Reader::Rc4SecurityHandler))
1551
+ end
1552
+ def build_standard_handler(encrypt, doc_id, password); end
1553
+
1554
+ sig do
1555
+ params(
1556
+ encrypt: T::Hash[::Symbol, T.untyped],
1557
+ doc_id: T::Array[T.untyped],
1558
+ password: ::String
1559
+ ).returns(::PDF::Reader::AesV3SecurityHandler)
1447
1560
  end
1561
+ def build_v5_handler(encrypt, doc_id, password); end
1448
1562
 
1449
- class Resources
1563
+ sig { params(encrypt: T::Hash[::Symbol, T.untyped]).returns(T::Boolean) }
1564
+ def standard?(encrypt); end
1450
1565
 
1451
- sig { params(objects: PDF::Reader::ObjectHash, resources: T::Hash[T.untyped, T.untyped]).void }
1452
- def initialize(objects, resources)
1453
- @objects = T.let(T.unsafe(nil), PDF::Reader::ObjectHash)
1454
- @resources = T.let(T.unsafe(nil), T::Hash[Symbol, T.untyped])
1455
- end
1566
+ sig { params(encrypt: T::Hash[::Symbol, T.untyped]).returns(T.untyped) }
1567
+ def standard_v5?(encrypt); end
1568
+ end
1569
+ end
1456
1570
 
1457
- sig { returns(T::Hash[Symbol, T.untyped]) }
1458
- def color_spaces; end
1571
+ class PDF::Reader::StandardKeyBuilder
1572
+ sig { params(opts: T::Hash[::Symbol, T.untyped]).void }
1573
+ def initialize(opts = T.unsafe(nil)); end
1459
1574
 
1460
- sig { returns(T::Hash[Symbol, T.untyped]) }
1461
- def fonts; end
1575
+ sig { params(pass: ::String).returns(::String) }
1576
+ def key(pass = T.unsafe(nil)); end
1462
1577
 
1463
- sig { returns(T::Hash[Symbol, T.untyped]) }
1464
- def graphic_states; end
1578
+ private
1465
1579
 
1466
- sig { returns(T::Hash[Symbol, T.untyped]) }
1467
- def patterns; end
1580
+ sig { params(pass: ::String).returns(T.nilable(::String)) }
1581
+ def auth_owner_pass(pass); end
1468
1582
 
1469
- sig { returns(T::Array[Symbol]) }
1470
- def procedure_sets; end
1583
+ sig { params(pass: ::String).returns(T.nilable(::String)) }
1584
+ def auth_user_pass(pass); end
1471
1585
 
1472
- sig { returns(T::Hash[Symbol, T.untyped]) }
1473
- def properties; end
1586
+ sig { params(user_pass: ::String).returns(::String) }
1587
+ def make_file_key(user_pass); end
1474
1588
 
1475
- sig { returns(T::Hash[Symbol, T.untyped]) }
1476
- def shadings; end
1589
+ sig { params(p: T.nilable(::String)).returns(::String) }
1590
+ def pad_pass(p = T.unsafe(nil)); end
1477
1591
 
1478
- sig { returns(T::Hash[Symbol, PDF::Reader::Stream]) }
1479
- def xobjects; end
1480
- end
1592
+ sig { params(buf: ::String, int: ::Integer).returns(::String) }
1593
+ def xor_each_byte(buf, int); end
1594
+ end
1481
1595
 
1482
- class SecurityHandlerFactory
1483
- sig { params(encrypt: T.untyped, doc_id: T.untyped, password: T.untyped).returns(T.untyped) }
1484
- def self.build(encrypt, doc_id, password); end
1596
+ PDF::Reader::StandardKeyBuilder::PassPadBytes = T.let(T.unsafe(nil), Array)
1485
1597
 
1486
- sig { params(encrypt: T.untyped, doc_id: T.untyped, password: T.untyped).returns(T.untyped) }
1487
- def self.build_standard_handler(encrypt, doc_id, password); end
1598
+ class PDF::Reader::Stream
1599
+ sig { params(hash: T::Hash[::Symbol, T.untyped], data: ::String).void }
1600
+ def initialize(hash, data); end
1488
1601
 
1489
- sig { params(encrypt: T.untyped, doc_id: T.untyped, password: T.untyped).returns(T.untyped) }
1490
- def self.build_v5_handler(encrypt, doc_id, password); end
1602
+ sig { returns(::String) }
1603
+ def data; end
1491
1604
 
1492
- sig { params(encrypt: T.untyped).returns(T.untyped) }
1493
- def self.standard?(encrypt); end
1605
+ def data=(_arg0); end
1494
1606
 
1495
- sig { params(encrypt: T.untyped).returns(T.untyped) }
1496
- def self.standard_v5?(encrypt); end
1497
- end
1607
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
1608
+ def hash; end
1498
1609
 
1499
- class StandardKeyBuilder
1500
- PassPadBytes = [ 0x28, 0xbf, 0x4e, 0x5e, 0x4e, 0x75, 0x8a, 0x41,
1501
- 0x64, 0x00, 0x4e, 0x56, 0xff, 0xfa, 0x01, 0x08,
1502
- 0x2e, 0x2e, 0x00, 0xb6, 0xd0, 0x68, 0x3e, 0x80,
1503
- 0x2f, 0x0c, 0xa9, 0xfe, 0x64, 0x53, 0x69, 0x7a ]
1610
+ def hash=(_arg0); end
1504
1611
 
1505
- sig { params(opts: T::Hash[Symbol, T.untyped]).void }
1506
- def initialize(opts = {}); end
1612
+ sig { returns(::String) }
1613
+ def unfiltered_data; end
1614
+ end
1507
1615
 
1508
- sig { params(pass: String).returns(String) }
1509
- def key(pass); end
1616
+ class PDF::Reader::SynchronizedCache
1617
+ sig { void }
1618
+ def initialize; end
1510
1619
 
1511
- sig { params(p: T.untyped).returns(T.untyped) }
1512
- def pad_pass(p = ""); end
1620
+ sig { params(key: ::Object).returns(T.untyped) }
1621
+ def [](key); end
1513
1622
 
1514
- sig { params(buf: T.untyped, int: T.untyped).returns(T.untyped) }
1515
- def xor_each_byte(buf, int); end
1623
+ sig { params(key: ::Object, value: T.nilable(::Object)).returns(T.untyped) }
1624
+ def []=(key, value); end
1625
+ end
1516
1626
 
1517
- sig { params(pass: T.untyped).returns(T.untyped) }
1518
- def auth_owner_pass(pass); end
1627
+ class PDF::Reader::TextRun
1628
+ include ::Comparable
1519
1629
 
1520
- sig { params(pass: T.untyped).returns(T.untyped) }
1521
- def auth_user_pass(pass); end
1630
+ sig { params(x: ::Numeric, y: ::Numeric, width: ::Numeric, font_size: ::Numeric, text: ::String).void }
1631
+ def initialize(x, y, width, font_size, text); end
1522
1632
 
1523
- sig { params(user_pass: T.untyped).returns(T.untyped) }
1524
- def make_file_key(user_pass); end
1525
- end
1633
+ sig { params(other: ::PDF::Reader::TextRun).returns(::PDF::Reader::TextRun) }
1634
+ def +(other); end
1526
1635
 
1527
- class Stream
1528
- sig { returns(T::Hash[Symbol, T.untyped]) }
1529
- attr_accessor :hash
1636
+ sig { params(other: ::PDF::Reader::Point).returns(::Numeric) }
1637
+ def <=>(other); end
1530
1638
 
1531
- sig { returns(String) }
1532
- attr_accessor :data
1639
+ sig { returns(::Numeric) }
1640
+ def endx; end
1533
1641
 
1534
- sig { params(hash: T::Hash[Symbol, T.untyped], data: String).void }
1535
- def initialize(hash, data)
1536
- @hash = T.let(T.unsafe(nil), T::Hash[Symbol, T.untyped])
1537
- @data = T.let(T.unsafe(nil), String)
1538
- @udata = T.let(T.unsafe(nil), T.nilable(String))
1539
- end
1642
+ sig { returns(::Numeric) }
1643
+ def endy; end
1540
1644
 
1541
- sig { returns(String) }
1542
- def unfiltered_data; end
1543
- end
1645
+ sig { returns(::Numeric) }
1646
+ def font_size; end
1544
1647
 
1545
- class SynchronizedCache
1546
- sig { void }
1547
- def initialize
1548
- @cache = T.let(T.unsafe(nil), T::Hash[Object, T.untyped])
1549
- @mutex = T.let(T.unsafe(nil), Mutex)
1550
- end
1648
+ sig { returns(::String) }
1649
+ def inspect; end
1551
1650
 
1552
- sig { params(key: Object).returns(T.untyped) }
1553
- def [](key); end
1651
+ sig { params(other_run: ::PDF::Reader::TextRun).returns(T::Boolean) }
1652
+ def intersect?(other_run); end
1554
1653
 
1555
- sig { params(key: Object, value: T.nilable(Object)).returns(T.untyped) }
1556
- def []=(key, value); end
1557
- end
1654
+ sig { params(other_run: ::PDF::Reader::TextRun).returns(::Numeric) }
1655
+ def intersection_area_percent(other_run); end
1558
1656
 
1559
- class TextRun
1560
- include Comparable
1657
+ sig { returns(::Numeric) }
1658
+ def mean_character_width; end
1561
1659
 
1562
- sig { returns(Numeric) }
1563
- attr_reader :width
1660
+ sig { params(other: ::PDF::Reader::TextRun).returns(T::Boolean) }
1661
+ def mergable?(other); end
1564
1662
 
1565
- sig { returns(Numeric) }
1566
- attr_reader :font_size
1663
+ sig { returns(::PDF::Reader::Point) }
1664
+ def origin; end
1567
1665
 
1568
- sig { returns(String) }
1569
- attr_reader :text
1666
+ sig { returns(::String) }
1667
+ def text; end
1570
1668
 
1571
- sig { returns(PDF::Reader::Point) }
1572
- attr_reader :origin
1669
+ def to_s(*args, **_arg1, &blk); end
1573
1670
 
1574
- sig do
1575
- params(
1576
- x: Numeric,
1577
- y: Numeric,
1578
- width: Numeric,
1579
- font_size: Numeric,
1580
- text: String
1581
- ).void
1582
- end
1583
- def initialize(x, y, width, font_size, text)
1584
- @origin = T.let(T.unsafe(nil), PDF::Reader::Point)
1585
- @width = T.let(T.unsafe(nil), Numeric)
1586
- @font_size = T.let(T.unsafe(nil), Numeric)
1587
- @text = T.let(T.unsafe(nil), String)
1588
- @endx = T.let(T.unsafe(nil), T.nilable(Numeric))
1589
- @endy = T.let(T.unsafe(nil), T.nilable(Numeric))
1590
- @mergable_range = T.let(T.unsafe(nil), T.nilable(T::Range[Numeric]))
1591
- end
1671
+ sig { returns(::Numeric) }
1672
+ def width; end
1592
1673
 
1593
- sig { params(other: T.untyped).returns(T.untyped) }
1594
- def <=>(other); end
1674
+ sig { returns(::Numeric) }
1675
+ def x; end
1595
1676
 
1596
- sig { returns(Numeric) }
1597
- def endx; end
1677
+ sig { returns(::Numeric) }
1678
+ def y; end
1598
1679
 
1599
- sig { returns(Numeric) }
1600
- def endy; end
1680
+ private
1601
1681
 
1602
- sig { returns(Numeric) }
1603
- def x; end
1682
+ sig { returns(::Numeric) }
1683
+ def area; end
1604
1684
 
1605
- sig { returns(Numeric) }
1606
- def y; end
1685
+ sig { returns(::Float) }
1686
+ def character_count; end
1607
1687
 
1608
- sig { returns(Numeric) }
1609
- def mean_character_width; end
1688
+ sig { returns(T::Range[::Numeric]) }
1689
+ def mergable_range; end
1690
+ end
1610
1691
 
1611
- sig { params(other: PDF::Reader::TextRun).returns(T::Boolean) }
1612
- def mergable?(other); end
1692
+ class PDF::Reader::Token < ::String
1693
+ sig { params(val: T.untyped).void }
1694
+ def initialize(val); end
1695
+ end
1613
1696
 
1614
- sig { params(other: PDF::Reader::TextRun).returns(PDF::Reader::TextRun) }
1615
- def +(other); end
1697
+ class PDF::Reader::TransformationMatrix
1698
+ sig { params(a: ::Numeric, b: ::Numeric, c: ::Numeric, d: ::Numeric, e: ::Numeric, f: ::Numeric).void }
1699
+ def initialize(a, b, c, d, e, f); end
1616
1700
 
1617
- sig { returns(String) }
1618
- def inspect; end
1701
+ sig { returns(::Numeric) }
1702
+ def a; end
1619
1703
 
1620
- sig { params(other_run: T.untyped).returns(T::Boolean) }
1621
- def intersect?(other_run); end
1704
+ sig { returns(::Numeric) }
1705
+ def b; end
1622
1706
 
1623
- sig { params(other_run: T.untyped).returns(Numeric) }
1624
- def intersection_area_percent(other_run); end
1707
+ sig { returns(::Numeric) }
1708
+ def c; end
1625
1709
 
1626
- sig { returns(Numeric) }
1627
- def area; end
1710
+ sig { returns(::Numeric) }
1711
+ def d; end
1628
1712
 
1629
- sig { returns(T::Range[Numeric]) }
1630
- def mergable_range; end
1713
+ sig { returns(::Numeric) }
1714
+ def e; end
1631
1715
 
1632
- sig { returns(Numeric) }
1633
- def character_count; end
1634
- end
1716
+ sig { returns(::Numeric) }
1717
+ def f; end
1635
1718
 
1636
- class Token < String
1637
- sig { params(val: T.untyped).void }
1638
- def initialize(val); end
1639
- end
1719
+ sig { params(e2: ::Numeric).void }
1720
+ def horizontal_displacement_multiply!(e2); end
1640
1721
 
1641
- class TransformationMatrix
1642
- sig { returns(Numeric) }
1643
- attr_reader :a
1644
-
1645
- sig { returns(Numeric) }
1646
- attr_reader :b
1647
-
1648
- sig { returns(Numeric) }
1649
- attr_reader :c
1650
-
1651
- sig { returns(Numeric) }
1652
- attr_reader :d
1653
-
1654
- sig { returns(Numeric) }
1655
- attr_reader :e
1656
-
1657
- sig { returns(Numeric) }
1658
- attr_reader :f
1659
-
1660
- sig do
1661
- params(
1662
- a: Numeric,
1663
- b: Numeric,
1664
- c: Numeric,
1665
- d: Numeric,
1666
- e: Numeric,
1667
- f: Numeric
1668
- ).void
1669
- end
1670
- def initialize(a, b, c, d, e, f)
1671
- @a = T.let(T.unsafe(nil), Numeric)
1672
- @b = T.let(T.unsafe(nil), Numeric)
1673
- @c = T.let(T.unsafe(nil), Numeric)
1674
- @d = T.let(T.unsafe(nil), Numeric)
1675
- @e = T.let(T.unsafe(nil), Numeric)
1676
- @f = T.let(T.unsafe(nil), Numeric)
1677
- end
1678
-
1679
- sig { returns(String) }
1680
- def inspect; end
1681
-
1682
- sig { returns(T::Array[Numeric]) }
1683
- def to_a; end
1684
-
1685
- sig do
1686
- params(
1687
- a: Numeric,
1688
- b: Numeric,
1689
- c: Numeric,
1690
- d: Numeric,
1691
- e: Numeric,
1692
- f: Numeric
1693
- ).returns(PDF::Reader::TransformationMatrix)
1694
- end
1695
- def multiply!(a, b, c, d, e, f); end
1696
-
1697
- sig { params(e2: Numeric).void }
1698
- def horizontal_displacement_multiply!(e2); end
1699
-
1700
- sig do
1701
- params(
1702
- a2: Numeric,
1703
- b2: Numeric,
1704
- c2: Numeric,
1705
- d2: Numeric,
1706
- e2: Numeric,
1707
- f2: Numeric
1708
- ).void
1709
- end
1710
- def horizontal_displacement_multiply_reversed!(a2, b2, c2, d2, e2, f2); end
1711
-
1712
- sig do
1713
- params(
1714
- a2: Numeric,
1715
- b2: Numeric,
1716
- c2: Numeric,
1717
- d2: Numeric,
1718
- e2: Numeric,
1719
- f2: Numeric
1720
- ).void
1721
- end
1722
- def xy_scaling_multiply!(a2, b2, c2, d2, e2, f2); end
1723
-
1724
- sig do
1725
- params(
1726
- a2: Numeric,
1727
- b2: Numeric,
1728
- c2: Numeric,
1729
- d2: Numeric,
1730
- e2: Numeric,
1731
- f2: Numeric
1732
- ).void
1733
- end
1734
- def xy_scaling_multiply_reversed!(a2, b2, c2, d2, e2, f2); end
1735
-
1736
- sig do
1737
- params(
1738
- a2: Numeric,
1739
- b2: Numeric,
1740
- c2: Numeric,
1741
- d2: Numeric,
1742
- e2: Numeric,
1743
- f2: Numeric
1744
- ).void
1745
- end
1746
- def regular_multiply!(a2, b2, c2, d2, e2, f2); end
1747
-
1748
- sig do
1749
- params(
1750
- a2: Numeric,
1751
- b2: Numeric,
1752
- c2: Numeric,
1753
- d2: Numeric,
1754
- e2: Numeric,
1755
- f2: Numeric
1756
- ).void
1757
- end
1758
- def faster_multiply!(a2, b2, c2, d2, e2, f2); end
1759
- end
1722
+ sig { returns(::String) }
1723
+ def inspect; end
1760
1724
 
1761
- class TypeCheck
1725
+ sig do
1726
+ params(
1727
+ a: ::Numeric,
1728
+ b: ::Numeric,
1729
+ c: ::Numeric,
1730
+ d: ::Numeric,
1731
+ e: ::Numeric,
1732
+ f: ::Numeric
1733
+ ).returns(::PDF::Reader::TransformationMatrix)
1734
+ end
1735
+ def multiply!(a, b, c, d, e, f); end
1762
1736
 
1763
- sig { params(obj: T.untyped).returns(Integer) }
1764
- def self.cast_to_int!(obj); end
1737
+ sig { returns([::Numeric]) }
1738
+ def to_a; end
1765
1739
 
1766
- sig { params(obj: T.untyped).returns(Numeric) }
1767
- def self.cast_to_numeric!(obj); end
1740
+ private
1768
1741
 
1769
- sig { params(string: T.untyped).returns(String) }
1770
- def self.cast_to_string!(string); end
1742
+ sig { params(a2: ::Numeric, b2: ::Numeric, c2: ::Numeric, d2: ::Numeric, e2: ::Numeric, f2: ::Numeric).void }
1743
+ def faster_multiply!(a2, b2, c2, d2, e2, f2); end
1771
1744
 
1772
- sig { params(obj: T.untyped).returns(T.nilable(Symbol)) }
1773
- def self.cast_to_symbol(obj); end
1745
+ sig { params(a2: ::Numeric, b2: ::Numeric, c2: ::Numeric, d2: ::Numeric, e2: ::Numeric, f2: ::Numeric).void }
1746
+ def horizontal_displacement_multiply_reversed!(a2, b2, c2, d2, e2, f2); end
1774
1747
 
1775
- sig { params(obj: T.untyped).returns(Symbol) }
1776
- def self.cast_to_symbol!(obj); end
1748
+ sig { params(a2: ::Numeric, b2: ::Numeric, c2: ::Numeric, d2: ::Numeric, e2: ::Numeric, f2: ::Numeric).void }
1749
+ def regular_multiply!(a2, b2, c2, d2, e2, f2); end
1777
1750
 
1778
- sig { params(obj: T.untyped).returns(T::Hash[Symbol, T.untyped]) }
1779
- def self.cast_to_pdf_dict!(obj); end
1751
+ sig { params(a2: ::Numeric, b2: ::Numeric, c2: ::Numeric, d2: ::Numeric, e2: ::Numeric, f2: ::Numeric).void }
1752
+ def xy_scaling_multiply!(a2, b2, c2, d2, e2, f2); end
1780
1753
 
1781
- sig { params(obj: T.untyped).returns(T::Hash[Symbol, PDF::Reader::Stream]) }
1782
- def self.cast_to_pdf_dict_with_stream_values!(obj); end
1783
- end
1754
+ sig { params(a2: ::Numeric, b2: ::Numeric, c2: ::Numeric, d2: ::Numeric, e2: ::Numeric, f2: ::Numeric).void }
1755
+ def xy_scaling_multiply_reversed!(a2, b2, c2, d2, e2, f2); end
1756
+ end
1784
1757
 
1785
- class ValidatingReceiver
1786
- sig { params(wrapped: T.untyped).void }
1787
- def initialize(wrapped)
1788
- @wrapped = T.let(T.unsafe(nil), T.untyped)
1789
- end
1758
+ class PDF::Reader::TypeCheck
1759
+ class << self
1760
+ sig { params(obj: T.untyped).returns(::Integer) }
1761
+ def cast_to_int!(obj); end
1790
1762
 
1791
- sig { params(page: PDF::Reader::Page).void }
1792
- def page=(page); end
1763
+ sig { params(obj: T.untyped).returns(::Numeric) }
1764
+ def cast_to_numeric!(obj); end
1793
1765
 
1794
- sig { params(args: T.untyped).void }
1795
- def save_graphics_state(*args); end
1766
+ sig { params(obj: T.untyped).returns(T::Hash[::Symbol, T.untyped]) }
1767
+ def cast_to_pdf_dict!(obj); end
1796
1768
 
1797
- sig { params(args: T.untyped).void }
1798
- def restore_graphics_state(*args); end
1769
+ sig { params(obj: T.untyped).returns(T::Hash[::Symbol, ::PDF::Reader::Stream]) }
1770
+ def cast_to_pdf_dict_with_stream_values!(obj); end
1799
1771
 
1800
- sig { params(args: T.untyped).void }
1801
- def concatenate_matrix(*args); end
1772
+ sig { params(string: T.untyped).returns(::String) }
1773
+ def cast_to_string!(string); end
1802
1774
 
1803
- sig { params(args: T.untyped).void }
1804
- def begin_text_object(*args); end
1775
+ sig { params(obj: T.untyped).returns(::Symbol) }
1776
+ def cast_to_symbol(obj); end
1805
1777
 
1806
- sig { params(args: T.untyped).void }
1807
- def end_text_object(*args); end
1778
+ sig { params(obj: T.untyped).returns(::Symbol) }
1779
+ def cast_to_symbol!(obj); end
1780
+ end
1781
+ end
1808
1782
 
1809
- sig { params(args: T.untyped).void }
1810
- def set_character_spacing(*args); end
1783
+ class PDF::Reader::UnimplementedSecurityHandler
1784
+ sig { params(buf: ::String, ref: ::PDF::Reader::Reference).returns(::String) }
1785
+ def decrypt(buf, ref); end
1811
1786
 
1812
- sig { params(args: T.untyped).void }
1813
- def set_horizontal_text_scaling(*args); end
1787
+ class << self
1788
+ sig { params(encrypt: T::Hash[::Symbol, T.untyped]).returns(T::Boolean) }
1789
+ def supports?(encrypt); end
1790
+ end
1791
+ end
1814
1792
 
1815
- sig { params(args: T.untyped).void }
1816
- def set_text_font_and_size(*args); end
1793
+ class PDF::Reader::UnsupportedFeatureError < ::RuntimeError; end
1817
1794
 
1818
- sig { params(args: T.untyped).void }
1819
- def set_text_leading(*args); end
1795
+ class PDF::Reader::ValidatingReceiver
1796
+ sig { params(wrapped: T.untyped).void }
1797
+ def initialize(wrapped); end
1820
1798
 
1821
- sig { params(args: T.untyped).void }
1822
- def set_text_rendering_mode(*args); end
1799
+ sig { params(args: T.untyped).void }
1800
+ def begin_inline_image(*args); end
1823
1801
 
1824
- sig { params(args: T.untyped).void }
1825
- def set_text_rise(*args); end
1802
+ sig { params(args: T.untyped).void }
1803
+ def begin_inline_image_data(*args); end
1826
1804
 
1827
- sig { params(args: T.untyped).void }
1828
- def set_word_spacing(*args); end
1805
+ sig { params(args: T.untyped).void }
1806
+ def begin_text_object(*args); end
1829
1807
 
1830
- sig { params(args: T.untyped).void }
1831
- def move_text_position(*args); end
1808
+ sig { params(args: T.untyped).void }
1809
+ def concatenate_matrix(*args); end
1832
1810
 
1833
- sig { params(args: T.untyped).void }
1834
- def move_text_position_and_set_leading(*args); end
1811
+ sig { params(args: T.untyped).void }
1812
+ def end_inline_image(*args); end
1835
1813
 
1836
- sig { params(args: T.untyped).void }
1837
- def set_text_matrix_and_text_line_matrix(*args); end
1814
+ sig { params(args: T.untyped).void }
1815
+ def end_text_object(*args); end
1838
1816
 
1839
- sig { params(args: T.untyped).void }
1840
- def move_to_start_of_next_line(*args); end
1817
+ sig { params(args: T.untyped).void }
1818
+ def invoke_xobject(*args); end
1841
1819
 
1842
- sig { params(args: T.untyped).void }
1843
- def show_text(*args); end
1820
+ sig { params(methodname: ::Symbol, args: T.untyped).void }
1821
+ def method_missing(methodname, *args); end
1844
1822
 
1845
- sig { params(args: T.untyped).void }
1846
- def show_text_with_positioning(*args); end
1823
+ sig { params(args: T.untyped).void }
1824
+ def move_text_position(*args); end
1847
1825
 
1848
- sig { params(args: T.untyped).void }
1849
- def move_to_next_line_and_show_text(*args); end
1826
+ sig { params(args: T.untyped).void }
1827
+ def move_text_position_and_set_leading(*args); end
1850
1828
 
1851
- sig { params(args: T.untyped).void }
1852
- def set_spacing_next_line_show_text(*args); end
1829
+ sig { params(args: T.untyped).void }
1830
+ def move_to_next_line_and_show_text(*args); end
1853
1831
 
1854
- sig { params(args: T.untyped).void }
1855
- def invoke_xobject(*args); end
1832
+ sig { params(args: T.untyped).void }
1833
+ def move_to_start_of_next_line(*args); end
1856
1834
 
1857
- sig { params(args: T.untyped).void }
1858
- def begin_inline_image(*args); end
1835
+ sig { params(page: ::PDF::Reader::Page).void }
1836
+ def page=(page); end
1859
1837
 
1860
- sig { params(args: T.untyped).void }
1861
- def begin_inline_image_data(*args); end
1838
+ sig { params(meth: T.untyped).returns(T::Boolean) }
1839
+ def respond_to?(meth); end
1862
1840
 
1863
- sig { params(args: T.untyped).void }
1864
- def end_inline_image(*args); end
1841
+ sig { params(args: T.untyped).void }
1842
+ def restore_graphics_state(*args); end
1865
1843
 
1866
- sig { params(meth: T.untyped).returns(T::Boolean) }
1867
- def respond_to?(meth); end
1844
+ sig { params(args: T.untyped).void }
1845
+ def save_graphics_state(*args); end
1868
1846
 
1869
- sig { params(methodname: Symbol, args: T.untyped).void }
1870
- def method_missing(methodname, *args); end
1847
+ sig { params(args: T.untyped).void }
1848
+ def set_character_spacing(*args); end
1871
1849
 
1872
- sig { params(methodname: T.untyped, args: T.untyped).void }
1873
- def call_wrapped(methodname, *args); end
1874
- end
1850
+ sig { params(args: T.untyped).void }
1851
+ def set_horizontal_text_scaling(*args); end
1875
1852
 
1876
- class UnimplementedSecurityHandler
1877
- sig { params(encrypt: T.untyped).returns(T.untyped) }
1878
- def self.supports?(encrypt); end
1853
+ sig { params(args: T.untyped).void }
1854
+ def set_spacing_next_line_show_text(*args); end
1879
1855
 
1880
- sig { params(buf: T.untyped, ref: T.untyped).returns(T.untyped) }
1881
- def decrypt(buf, ref); end
1882
- end
1856
+ sig { params(args: T.untyped).void }
1857
+ def set_text_font_and_size(*args); end
1883
1858
 
1884
- class XRef
1885
- include Enumerable
1886
- extend T::Generic # Provides `type_member` helper
1859
+ sig { params(args: T.untyped).void }
1860
+ def set_text_leading(*args); end
1887
1861
 
1888
- sig { returns(T::Hash[Symbol, T.untyped]) }
1889
- attr_reader :trailer
1862
+ sig { params(args: T.untyped).void }
1863
+ def set_text_matrix_and_text_line_matrix(*args); end
1890
1864
 
1891
- sig { params(io: T.any(IO, Tempfile, StringIO)).void }
1892
- def initialize(io)
1893
- @io = T.let(T.unsafe(nil), T.any(IO, Tempfile, StringIO))
1894
- @junk_offset = T.let(T.unsafe(nil), Integer)
1895
- @xref = T.let(T.unsafe(nil), T::Hash[Integer, T::Hash[Integer, Integer]])
1896
- @trailer = T.let(T.unsafe(nil), T::Hash[Symbol, T.untyped])
1897
- end
1865
+ sig { params(args: T.untyped).void }
1866
+ def set_text_rendering_mode(*args); end
1898
1867
 
1899
- sig { returns(T.untyped) }
1900
- def size; end
1868
+ sig { params(args: T.untyped).void }
1869
+ def set_text_rise(*args); end
1901
1870
 
1902
- sig { params(ref: T.untyped).returns(T.untyped) }
1903
- def [](ref); end
1871
+ sig { params(args: T.untyped).void }
1872
+ def set_word_spacing(*args); end
1904
1873
 
1905
- sig { params(block: T.untyped).returns(T.untyped) }
1906
- def each(&block); end
1874
+ sig { params(args: T.untyped).void }
1875
+ def show_text(*args); end
1907
1876
 
1908
- sig { params(offset: T.untyped).returns(T.untyped) }
1909
- def load_offsets(offset = nil); end
1877
+ sig { params(args: T.untyped).void }
1878
+ def show_text_with_positioning(*args); end
1910
1879
 
1911
- sig { params(buf: T.untyped).returns(T.untyped) }
1912
- def load_xref_table(buf); end
1880
+ private
1913
1881
 
1914
- sig { params(stream: T.untyped).returns(T.untyped) }
1915
- def load_xref_stream(stream); end
1882
+ sig { params(methodname: T.untyped, args: T.untyped).void }
1883
+ def call_wrapped(methodname, *args); end
1884
+ end
1916
1885
 
1917
- sig { params(bytes: T.untyped).returns(T.untyped) }
1918
- def unpack_bytes(bytes); end
1886
+ module PDF::Reader::WidthCalculator; end
1919
1887
 
1920
- sig { params(offset: T.untyped).returns(T.untyped) }
1921
- def new_buffer(offset = 0); end
1888
+ class PDF::Reader::WidthCalculator::BuiltIn
1889
+ sig { params(font: ::PDF::Reader::Font).void }
1890
+ def initialize(font); end
1922
1891
 
1923
- sig { params(id: T.untyped, gen: T.untyped, offset: T.untyped).returns(T.untyped) }
1924
- def store(id, gen, offset); end
1892
+ sig { params(code_point: T.nilable(::Integer)).returns(::Numeric) }
1893
+ def glyph_width(code_point); end
1925
1894
 
1926
- sig { params(io: T.untyped).returns(T.untyped) }
1927
- def calc_junk_offset(io); end
1928
- end
1895
+ private
1929
1896
 
1930
- class ZeroWidthRunsFilter
1931
- sig { params(runs: T::Array[PDF::Reader::TextRun]).returns(T::Array[PDF::Reader::TextRun]) }
1932
- def self.exclude_zero_width_runs(runs); end
1933
- end
1897
+ sig { params(code_point: ::Integer).returns(T::Boolean) }
1898
+ def control_character?(code_point); end
1934
1899
 
1935
- module Filter
1936
- sig { params(name: Symbol, options: T::Hash[T.untyped, T.untyped]).returns(T.untyped) }
1937
- def self.with(name, options = {}); end
1938
-
1939
- class Ascii85
1940
- sig { params(options: T::Hash[T.untyped, T.untyped]).void }
1941
- def initialize(options = {})
1942
- @options = T.let(T.unsafe(nil), T::Hash[T.untyped, T.untyped])
1943
- end
1944
-
1945
- sig { params(data: String).returns(String) }
1946
- def filter(data); end
1947
- end
1948
-
1949
- class AsciiHex
1950
- sig { params(options: T::Hash[T.untyped, T.untyped]).void }
1951
- def initialize(options = {})
1952
- @options = T.let(T.unsafe(nil), T::Hash[T.untyped, T.untyped])
1953
- end
1954
-
1955
- sig { params(data: String).returns(String) }
1956
- def filter(data); end
1957
- end
1958
-
1959
- class Depredict
1960
- sig { params(options: T::Hash[T.untyped, T.untyped]).void }
1961
- def initialize(options = {})
1962
- @options = T.let(T.unsafe(nil), T::Hash[T.untyped, T.untyped])
1963
- end
1964
-
1965
- sig { params(data: String).returns(String) }
1966
- def filter(data); end
1967
-
1968
- sig { params(data: T.untyped).returns(T.untyped) }
1969
- def tiff_depredict(data); end
1970
-
1971
- sig { params(data: T.untyped).returns(T.untyped) }
1972
- def png_depredict(data); end
1973
- end
1974
-
1975
- class Flate
1976
- ZLIB_AUTO_DETECT_ZLIB_OR_GZIP = 47
1977
- ZLIB_RAW_DEFLATE = -15
1978
-
1979
- sig { params(options: T::Hash[T.untyped, T.untyped]).void }
1980
- def initialize(options = {})
1981
- @options = T.let(T.unsafe(nil), T::Hash[T.untyped, T.untyped])
1982
- end
1983
-
1984
- sig { params(data: String).returns(String) }
1985
- def filter(data); end
1986
-
1987
- sig { params(data: T.untyped).returns(T.untyped) }
1988
- def zlib_inflate(data); end
1989
- end
1990
-
1991
- class Lzw
1992
- sig { params(options: T::Hash[T.untyped, T.untyped]).void }
1993
- def initialize(options = {})
1994
- @options = T.let(T.unsafe(nil), T::Hash[T.untyped, T.untyped])
1995
- end
1996
-
1997
- sig { params(data: String).returns(String) }
1998
- def filter(data); end
1999
- end
2000
-
2001
- class Null
2002
- sig { params(options: T::Hash[T.untyped, T.untyped]).void }
2003
- def initialize(options = {})
2004
- @options = T.let(T.unsafe(nil), T::Hash[T.untyped, T.untyped])
2005
- end
2006
-
2007
- sig { params(data: T.untyped).returns(T.untyped) }
2008
- def filter(data); end
2009
- end
2010
-
2011
- class RunLength
2012
- sig { params(options: T::Hash[T.untyped, T.untyped]).void }
2013
- def initialize(options = {})
2014
- @options = T.let(T.unsafe(nil), T::Hash[T.untyped, T.untyped])
2015
- end
2016
-
2017
- sig { params(data: String).returns(String) }
2018
- def filter(data); end
2019
- end
2020
- end
1900
+ sig { params(font_name: T.nilable(::Symbol)).returns(::String) }
1901
+ def extract_basefont(font_name); end
1902
+ end
2021
1903
 
2022
- module WidthCalculator
2023
- class BuiltIn
2024
- BUILTINS = T.let(T.unsafe(nil), T::Array[Symbol])
2025
-
2026
- @@all_metrics = T.let(T.unsafe(nil), T.nilable(PDF::Reader::SynchronizedCache))
2027
-
2028
- sig { params(font: PDF::Reader::Font).void }
2029
- def initialize(font)
2030
- @font = T.let(T.unsafe(nil), PDF::Reader::Font)
2031
- @metrics = T.let(T.unsafe(nil), AFM::Font)
2032
- end
2033
-
2034
- sig { params(code_point: T.nilable(Integer)).returns(Numeric) }
2035
- def glyph_width(code_point); end
2036
-
2037
- sig { params(code_point: Integer).returns(T::Boolean) }
2038
- def control_character?(code_point); end
2039
-
2040
- sig { params(font_name: T.nilable(Symbol)).returns(String) }
2041
- def extract_basefont(font_name); end
2042
- end
2043
-
2044
- class Composite
2045
- sig { params(font: PDF::Reader::Font).void }
2046
- def initialize(font)
2047
- @font = T.let(T.unsafe(nil), PDF::Reader::Font)
2048
- @widths = T.let(T.unsafe(nil), PDF::Reader::CidWidths)
2049
- end
2050
-
2051
- sig { params(code_point: T.nilable(Integer)).returns(Numeric) }
2052
- def glyph_width(code_point); end
2053
- end
2054
-
2055
- class TrueType
2056
- sig { params(font: PDF::Reader::Font).void }
2057
- def initialize(font)
2058
- @font = T.let(T.unsafe(nil), PDF::Reader::Font)
2059
- @missing_width = T.let(T.unsafe(nil), Numeric)
2060
- end
2061
-
2062
- sig { params(code_point: T.nilable(Integer)).returns(Numeric) }
2063
- def glyph_width(code_point); end
2064
-
2065
- sig { params(code_point: Integer).returns(T.nilable(Numeric)) }
2066
- def glyph_width_from_font(code_point); end
2067
-
2068
- sig { params(code_point: Integer).returns(T.nilable(Numeric)) }
2069
- def glyph_width_from_descriptor(code_point); end
2070
- end
2071
-
2072
- class TypeOneOrThree
2073
- sig { params(font: PDF::Reader::Font).void }
2074
- def initialize(font)
2075
- @font = T.let(T.unsafe(nil), PDF::Reader::Font)
2076
- @missing_width = T.let(T.unsafe(nil), Numeric)
2077
- end
2078
-
2079
- sig { params(code_point: T.nilable(Integer)).returns(Numeric) }
2080
- def glyph_width(code_point); end
2081
- end
2082
-
2083
- class TypeZero
2084
- sig { params(font: PDF::Reader::Font).void }
2085
- def initialize(font)
2086
- @font = T.let(T.unsafe(nil), PDF::Reader::Font)
2087
- end
2088
-
2089
- sig { params(code_point: T.nilable(Integer)).returns(Numeric) }
2090
- def glyph_width(code_point); end
2091
- end
2092
- end
1904
+ PDF::Reader::WidthCalculator::BuiltIn::BUILTINS = T.let(T.unsafe(nil), Array)
1905
+
1906
+ class PDF::Reader::WidthCalculator::Composite
1907
+ sig { params(font: ::PDF::Reader::Font).void }
1908
+ def initialize(font); end
1909
+
1910
+ sig { params(code_point: T.nilable(::Integer)).returns(::Numeric) }
1911
+ def glyph_width(code_point); end
1912
+ end
1913
+
1914
+ class PDF::Reader::WidthCalculator::TrueType
1915
+ sig { params(font: ::PDF::Reader::Font).void }
1916
+ def initialize(font); end
1917
+
1918
+ sig { params(code_point: T.nilable(::Integer)).returns(::Numeric) }
1919
+ def glyph_width(code_point); end
1920
+
1921
+ private
1922
+
1923
+ sig { params(code_point: ::Integer).returns(T.nilable(::Numeric)) }
1924
+ def glyph_width_from_descriptor(code_point); end
1925
+
1926
+ sig { params(code_point: ::Integer).returns(T.nilable(::Numeric)) }
1927
+ def glyph_width_from_font(code_point); end
1928
+ end
1929
+
1930
+ class PDF::Reader::WidthCalculator::TypeOneOrThree
1931
+ sig { params(font: ::PDF::Reader::Font).void }
1932
+ def initialize(font); end
1933
+
1934
+ sig { params(code_point: T.nilable(::Integer)).returns(::Numeric) }
1935
+ def glyph_width(code_point); end
1936
+ end
1937
+
1938
+ class PDF::Reader::WidthCalculator::TypeZero
1939
+ sig { params(font: ::PDF::Reader::Font).void }
1940
+ def initialize(font); end
1941
+
1942
+ sig { params(code_point: T.nilable(::Integer)).returns(::Numeric) }
1943
+ def glyph_width(code_point); end
1944
+ end
1945
+
1946
+ class PDF::Reader::XRef
1947
+ extend T::Generic
1948
+ include ::Enumerable
1949
+
1950
+ Elem = type_member
1951
+
1952
+ sig { params(io: T.any(::IO, ::StringIO, ::Tempfile)).void }
1953
+ def initialize(io); end
1954
+
1955
+ sig { params(ref: T.untyped).returns(T.untyped) }
1956
+ def [](ref); end
1957
+
1958
+ sig { override.params(block: T.proc.params(arg0: ::PDF::Reader::Reference).returns(T.untyped)).void }
1959
+ def each(&block); end
1960
+
1961
+ sig { returns(T.untyped) }
1962
+ def size; end
1963
+
1964
+ sig { returns(T::Hash[::Symbol, T.untyped]) }
1965
+ def trailer; end
1966
+
1967
+ private
1968
+
1969
+ sig { params(io: T.any(::IO, ::StringIO, ::Tempfile)).returns(T.nilable(::Integer)) }
1970
+ def calc_junk_offset(io); end
1971
+
1972
+ sig { params(offset: T.nilable(::Integer)).returns(T::Hash[::Symbol, T.untyped]) }
1973
+ def load_offsets(offset = T.unsafe(nil)); end
1974
+
1975
+ sig { params(stream: ::PDF::Reader::Stream).returns(T::Hash[::Symbol, T.untyped]) }
1976
+ def load_xref_stream(stream); end
1977
+
1978
+ sig { params(buf: ::PDF::Reader::Buffer).returns(T::Hash[::Symbol, T.untyped]) }
1979
+ def load_xref_table(buf); end
1980
+
1981
+ sig { params(offset: ::Integer).returns(::PDF::Reader::Buffer) }
1982
+ def new_buffer(offset = T.unsafe(nil)); end
1983
+
1984
+ sig do
1985
+ params(
1986
+ id: ::Integer,
1987
+ gen: ::Integer,
1988
+ offset: T.any(::Integer, ::PDF::Reader::Reference)
1989
+ ).returns(T.any(::Integer, ::PDF::Reader::Reference))
1990
+ end
1991
+ def store(id, gen, offset); end
1992
+
1993
+ sig { params(bytes: T.nilable(::String)).returns(::Integer) }
1994
+ def unpack_bytes(bytes); end
1995
+ end
1996
+
1997
+ class PDF::Reader::ZeroWidthRunsFilter
1998
+ class << self
1999
+ sig { params(runs: T::Array[::PDF::Reader::TextRun]).returns(T::Array[::PDF::Reader::TextRun]) }
2000
+ def exclude_zero_width_runs(runs); end
2093
2001
  end
2094
2002
  end