pdf-reader 2.9.2 → 2.15.0

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