pdf-reader 2.14.1 → 2.15.1

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