pdf-core 0.5.1 → 0.9.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.
- checksums.yaml +5 -5
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/Gemfile +3 -1
- data/Rakefile +24 -6
- data/lib/pdf/core.rb +22 -19
- data/lib/pdf/core/annotations.rb +17 -18
- data/lib/pdf/core/byte_string.rb +3 -2
- data/lib/pdf/core/destinations.rb +18 -15
- data/lib/pdf/core/document_state.rb +30 -22
- data/lib/pdf/core/filter_list.rb +18 -6
- data/lib/pdf/core/filters.rb +5 -5
- data/lib/pdf/core/graphics_state.rb +17 -20
- data/lib/pdf/core/literal_string.rb +2 -1
- data/lib/pdf/core/name_tree.rb +46 -43
- data/lib/pdf/core/object_store.rb +17 -22
- data/lib/pdf/core/outline_item.rb +11 -5
- data/lib/pdf/core/outline_root.rb +3 -1
- data/lib/pdf/core/page.rb +96 -66
- data/lib/pdf/core/page_geometry.rb +53 -55
- data/lib/pdf/core/pdf_object.rb +55 -46
- data/lib/pdf/core/reference.rb +21 -17
- data/lib/pdf/core/renderer.rb +46 -37
- data/lib/pdf/core/stream.rb +14 -8
- data/lib/pdf/core/text.rb +100 -47
- data/lib/pdf/core/utils.rb +13 -0
- data/pdf-core.gemspec +37 -22
- metadata +83 -29
- metadata.gz.sig +2 -0
- data/spec/decimal_rounding_spec.rb +0 -12
- data/spec/filters_spec.rb +0 -34
- data/spec/name_tree_spec.rb +0 -122
- data/spec/object_store_spec.rb +0 -49
- data/spec/pdf_object_spec.rb +0 -172
- data/spec/reference_spec.rb +0 -62
- data/spec/spec_helper.rb +0 -32
- data/spec/stream_spec.rb +0 -59
data/lib/pdf/core/stream.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# prawn/core/stream.rb : Implements Stream objects
|
4
4
|
#
|
@@ -18,7 +18,7 @@ module PDF
|
|
18
18
|
end
|
19
19
|
|
20
20
|
def <<(io)
|
21
|
-
(@stream ||= '') << io
|
21
|
+
(@stream ||= +'') << io
|
22
22
|
@filtered_stream = nil
|
23
23
|
self
|
24
24
|
end
|
@@ -44,7 +44,8 @@ module PDF
|
|
44
44
|
@filtered_stream = @stream.dup
|
45
45
|
|
46
46
|
@filters.each do |(filter_name, params)|
|
47
|
-
|
47
|
+
filter = PDF::Core::Filters.const_get(filter_name)
|
48
|
+
if filter
|
48
49
|
@filtered_stream = filter.encode @filtered_stream, params
|
49
50
|
end
|
50
51
|
end
|
@@ -52,8 +53,6 @@ module PDF
|
|
52
53
|
|
53
54
|
@filtered_stream
|
54
55
|
# XXX Fillter stream
|
55
|
-
else
|
56
|
-
nil
|
57
56
|
end
|
58
57
|
end
|
59
58
|
|
@@ -75,12 +74,12 @@ module PDF
|
|
75
74
|
filter_params = @filters.decode_params
|
76
75
|
|
77
76
|
d = {
|
78
|
-
:
|
77
|
+
Length: filtered_stream.length
|
79
78
|
}
|
80
79
|
if filter_names.any?
|
81
80
|
d[:Filter] = filter_names
|
82
81
|
end
|
83
|
-
if filter_params.any? {|f| !f.nil? }
|
82
|
+
if filter_params.any? { |f| !f.nil? }
|
84
83
|
d[:DecodeParms] = filter_params
|
85
84
|
end
|
86
85
|
|
@@ -91,7 +90,14 @@ module PDF
|
|
91
90
|
end
|
92
91
|
|
93
92
|
def inspect
|
94
|
-
|
93
|
+
format(
|
94
|
+
'#<%<class>s:0x%<object_id>014x '\
|
95
|
+
'@stream=%<stream>s, @filters=%<filters>s>',
|
96
|
+
class: self.class.name,
|
97
|
+
object_id: object_id,
|
98
|
+
stream: @stream.inspect,
|
99
|
+
filters: @filters.inspect
|
100
|
+
)
|
95
101
|
end
|
96
102
|
end
|
97
103
|
end
|
data/lib/pdf/core/text.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
3
|
# prawn/core/text.rb : Implements low level text helpers for Prawn
|
4
4
|
#
|
@@ -11,20 +11,34 @@ module PDF
|
|
11
11
|
module Text #:nodoc:
|
12
12
|
# These should be used as a base. Extensions may build on this list
|
13
13
|
#
|
14
|
-
VALID_OPTIONS = [
|
15
|
-
MODES = {
|
16
|
-
|
17
|
-
|
14
|
+
VALID_OPTIONS = %i[kerning size style].freeze
|
15
|
+
MODES = {
|
16
|
+
fill: 0,
|
17
|
+
stroke: 1,
|
18
|
+
fill_stroke: 2,
|
19
|
+
invisible: 3,
|
20
|
+
fill_clip: 4,
|
21
|
+
stroke_clip: 5,
|
22
|
+
fill_stroke_clip: 6,
|
23
|
+
clip: 7
|
24
|
+
}.freeze
|
25
|
+
|
26
|
+
class BadFontFamily < StandardError
|
27
|
+
def initialize(message = 'Bad font family')
|
28
|
+
super
|
29
|
+
end
|
30
|
+
end
|
18
31
|
|
19
32
|
attr_reader :skip_encoding
|
20
33
|
|
21
|
-
# Low level call to set the current font style and extract text options
|
22
|
-
# an options hash. Should be called from within a save_font block
|
34
|
+
# Low level call to set the current font style and extract text options
|
35
|
+
# from an options hash. Should be called from within a save_font block
|
23
36
|
#
|
24
37
|
def process_text_options(options)
|
25
38
|
if options[:style]
|
26
|
-
raise
|
27
|
-
|
39
|
+
raise BadFontFamily unless font.family
|
40
|
+
|
41
|
+
font(font.family, style: options[:style])
|
28
42
|
end
|
29
43
|
|
30
44
|
# must compare against false to keep kerning on as default
|
@@ -40,23 +54,24 @@ module PDF
|
|
40
54
|
# Defaults to true
|
41
55
|
#
|
42
56
|
def default_kerning?
|
43
|
-
return true
|
57
|
+
return true unless defined?(@default_kerning)
|
58
|
+
|
44
59
|
@default_kerning
|
45
60
|
end
|
46
61
|
|
47
|
-
# Call with a boolean to set the document-wide kerning setting. This can
|
48
|
-
# overridden using the :kerning text option when drawing text or a text
|
62
|
+
# Call with a boolean to set the document-wide kerning setting. This can
|
63
|
+
# be overridden using the :kerning text option when drawing text or a text
|
49
64
|
# box.
|
50
65
|
#
|
51
66
|
# pdf.default_kerning = false
|
52
|
-
# pdf.text(
|
53
|
-
# pdf.text(
|
67
|
+
# pdf.text('hello world') # text is not kerned
|
68
|
+
# pdf.text('hello world', :kerning => true) # text is kerned
|
54
69
|
#
|
55
70
|
def default_kerning(boolean)
|
56
71
|
@default_kerning = boolean
|
57
72
|
end
|
58
73
|
|
59
|
-
|
74
|
+
alias default_kerning= default_kerning
|
60
75
|
|
61
76
|
# Call with no argument to retrieve the current default leading.
|
62
77
|
#
|
@@ -65,12 +80,12 @@ module PDF
|
|
65
80
|
# box.
|
66
81
|
#
|
67
82
|
# pdf.default_leading = 7
|
68
|
-
# pdf.text(
|
69
|
-
# pdf.text(
|
83
|
+
# pdf.text('hello world') # a leading of 7 is used
|
84
|
+
# pdf.text('hello world', :leading => 0) # a leading of 0 is used
|
70
85
|
#
|
71
86
|
# Defaults to 0
|
72
87
|
#
|
73
|
-
def default_leading(number=nil)
|
88
|
+
def default_leading(number = nil)
|
74
89
|
if number.nil?
|
75
90
|
defined?(@default_leading) && @default_leading || 0
|
76
91
|
else
|
@@ -78,7 +93,7 @@ module PDF
|
|
78
93
|
end
|
79
94
|
end
|
80
95
|
|
81
|
-
|
96
|
+
alias default_leading= default_leading
|
82
97
|
|
83
98
|
# Call with no argument to retrieve the current text direction.
|
84
99
|
#
|
@@ -87,8 +102,8 @@ module PDF
|
|
87
102
|
# box.
|
88
103
|
#
|
89
104
|
# pdf.text_direction = :rtl
|
90
|
-
# pdf.text(
|
91
|
-
# pdf.text(
|
105
|
+
# pdf.text('hello world') # prints 'dlrow olleh'
|
106
|
+
# pdf.text('hello world', :direction => :ltr) # prints 'hello world'
|
92
107
|
#
|
93
108
|
# Valid directions are:
|
94
109
|
#
|
@@ -100,7 +115,7 @@ module PDF
|
|
100
115
|
# * When printing left-to-right, the default text alignment is :left
|
101
116
|
# * When printing right-to-left, the default text alignment is :right
|
102
117
|
#
|
103
|
-
def text_direction(direction=nil)
|
118
|
+
def text_direction(direction = nil)
|
104
119
|
if direction.nil?
|
105
120
|
defined?(@text_direction) && @text_direction || :ltr
|
106
121
|
else
|
@@ -108,7 +123,7 @@ module PDF
|
|
108
123
|
end
|
109
124
|
end
|
110
125
|
|
111
|
-
|
126
|
+
alias text_direction= text_direction
|
112
127
|
|
113
128
|
# Call with no argument to retrieve the current fallback fonts.
|
114
129
|
#
|
@@ -121,16 +136,16 @@ module PDF
|
|
121
136
|
# Call with an empty array to turn off fallback fonts
|
122
137
|
#
|
123
138
|
# file = "#{Prawn::DATADIR}/fonts/gkai00mp.ttf"
|
124
|
-
# font_families[
|
125
|
-
# :normal => { :file => file, :font =>
|
139
|
+
# font_families['Kai'] = {
|
140
|
+
# :normal => { :file => file, :font => 'Kai' }
|
126
141
|
# }
|
127
142
|
# file = "#{Prawn::DATADIR}/fonts/Action Man.dfont"
|
128
|
-
# font_families[
|
129
|
-
# :normal => { :file => file, :font =>
|
143
|
+
# font_families['Action Man'] = {
|
144
|
+
# :normal => { :file => file, :font => 'ActionMan' },
|
130
145
|
# }
|
131
|
-
# fallback_fonts [
|
132
|
-
# font
|
133
|
-
# text
|
146
|
+
# fallback_fonts ['Times-Roman', 'Kai']
|
147
|
+
# font 'Action Man'
|
148
|
+
# text 'hello ƒ 你好'
|
134
149
|
# > hello prints in Action Man
|
135
150
|
# > ƒ prints in Times-Roman
|
136
151
|
# > 你好 prints in Kai
|
@@ -142,7 +157,7 @@ module PDF
|
|
142
157
|
# * Increased overhead when fallback fonts are declared as each glyph is
|
143
158
|
# checked to see whether it exists in the current font
|
144
159
|
#
|
145
|
-
def fallback_fonts(fallback_fonts=nil)
|
160
|
+
def fallback_fonts(fallback_fonts = nil)
|
146
161
|
if fallback_fonts.nil?
|
147
162
|
defined?(@fallback_fonts) && @fallback_fonts || []
|
148
163
|
else
|
@@ -150,7 +165,7 @@ module PDF
|
|
150
165
|
end
|
151
166
|
end
|
152
167
|
|
153
|
-
|
168
|
+
alias fallback_fonts= fallback_fonts
|
154
169
|
|
155
170
|
# Call with no argument to retrieve the current text rendering mode.
|
156
171
|
#
|
@@ -158,7 +173,7 @@ module PDF
|
|
158
173
|
# text rendering mode.
|
159
174
|
#
|
160
175
|
# pdf.text_rendering_mode(:stroke) do
|
161
|
-
# pdf.text(
|
176
|
+
# pdf.text('Outlined Text')
|
162
177
|
# end
|
163
178
|
#
|
164
179
|
# Valid modes are:
|
@@ -169,14 +184,19 @@ module PDF
|
|
169
184
|
# * :invisible - invisible text
|
170
185
|
# * :fill_clip - fill text then add to path for clipping
|
171
186
|
# * :stroke_clip - stroke text then add to path for clipping
|
172
|
-
# * :fill_stroke_clip - fill then stroke text, then add to path for
|
187
|
+
# * :fill_stroke_clip - fill then stroke text, then add to path for
|
188
|
+
# clipping
|
173
189
|
# * :clip - add text to path for clipping
|
174
|
-
def text_rendering_mode(mode=nil)
|
175
|
-
|
190
|
+
def text_rendering_mode(mode = nil)
|
191
|
+
if mode.nil?
|
192
|
+
return defined?(@text_rendering_mode) && @text_rendering_mode || :fill
|
193
|
+
end
|
194
|
+
|
176
195
|
unless MODES.key?(mode)
|
177
|
-
raise ArgumentError,
|
196
|
+
raise ArgumentError,
|
197
|
+
"mode must be between one of #{MODES.keys.join(', ')} (#{mode})"
|
178
198
|
end
|
179
|
-
original_mode =
|
199
|
+
original_mode = text_rendering_mode
|
180
200
|
|
181
201
|
if original_mode == mode
|
182
202
|
yield
|
@@ -197,8 +217,11 @@ module PDF
|
|
197
217
|
# For horizontal text, a positive value will increase the space.
|
198
218
|
# For veritical text, a positive value will decrease the space.
|
199
219
|
#
|
200
|
-
def character_spacing(amount=nil)
|
201
|
-
|
220
|
+
def character_spacing(amount = nil)
|
221
|
+
if amount.nil?
|
222
|
+
return defined?(@character_spacing) && @character_spacing || 0
|
223
|
+
end
|
224
|
+
|
202
225
|
original_character_spacing = character_spacing
|
203
226
|
if original_character_spacing == amount
|
204
227
|
yield
|
@@ -215,8 +238,9 @@ module PDF
|
|
215
238
|
# For horizontal text, a positive value will increase the space.
|
216
239
|
# For veritical text, a positive value will decrease the space.
|
217
240
|
#
|
218
|
-
def word_spacing(amount=nil)
|
241
|
+
def word_spacing(amount = nil)
|
219
242
|
return defined?(@word_spacing) && @word_spacing || 0 if amount.nil?
|
243
|
+
|
220
244
|
original_word_spacing = word_spacing
|
221
245
|
if original_word_spacing == amount
|
222
246
|
yield
|
@@ -230,25 +254,54 @@ module PDF
|
|
230
254
|
end
|
231
255
|
end
|
232
256
|
|
257
|
+
# Set the horizontal scaling. amount is a number specifying the
|
258
|
+
# percentage of the normal width.
|
259
|
+
def horizontal_text_scaling(amount = nil)
|
260
|
+
if amount.nil?
|
261
|
+
return defined?(@horizontal_text_scaling) && @horizontal_text_scaling || 100
|
262
|
+
end
|
263
|
+
|
264
|
+
original_horizontal_text_scaling = horizontal_text_scaling
|
265
|
+
if original_horizontal_text_scaling == amount
|
266
|
+
yield
|
267
|
+
else
|
268
|
+
@horizontal_text_scaling = amount
|
269
|
+
add_content "\n#{PDF::Core.real(amount)} Tz"
|
270
|
+
yield
|
271
|
+
add_content "\n#{PDF::Core.real(original_horizontal_text_scaling)} Tz"
|
272
|
+
@horizontal_text_scaling = original_horizontal_text_scaling
|
273
|
+
end
|
274
|
+
end
|
275
|
+
|
233
276
|
def add_text_content(text, x, y, options)
|
234
|
-
chunks = font.encode_text(text,options)
|
277
|
+
chunks = font.encode_text(text, options)
|
235
278
|
|
236
279
|
add_content "\nBT"
|
237
280
|
|
238
281
|
if options[:rotate]
|
239
282
|
rad = options[:rotate].to_f * Math::PI / 180
|
240
|
-
array = [
|
283
|
+
array = [
|
284
|
+
Math.cos(rad),
|
285
|
+
Math.sin(rad),
|
286
|
+
-Math.sin(rad),
|
287
|
+
Math.cos(rad),
|
288
|
+
x, y
|
289
|
+
]
|
241
290
|
add_content "#{PDF::Core.real_params(array)} Tm"
|
242
291
|
else
|
243
|
-
add_content "#{PDF::Core.real_params([x,y])} Td"
|
292
|
+
add_content "#{PDF::Core.real_params([x, y])} Td"
|
244
293
|
end
|
245
294
|
|
246
295
|
chunks.each do |(subset, string)|
|
247
296
|
font.add_to_current_page(subset)
|
248
|
-
add_content
|
297
|
+
add_content [
|
298
|
+
PDF::Core.pdf_object(font.identifier_for(subset), true),
|
299
|
+
PDF::Core.pdf_object(font_size, true),
|
300
|
+
'Tf'
|
301
|
+
].join(' ')
|
249
302
|
|
250
|
-
operation = options[:kerning] && string.is_a?(Array) ?
|
251
|
-
add_content PDF::Core
|
303
|
+
operation = options[:kerning] && string.is_a?(Array) ? 'TJ' : 'Tj'
|
304
|
+
add_content "#{PDF::Core.pdf_object(string, true)} #{operation}"
|
252
305
|
end
|
253
306
|
|
254
307
|
add_content "ET\n"
|
data/pdf-core.gemspec
CHANGED
@@ -1,29 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
Gem::Specification.new do |spec|
|
2
|
-
spec.name =
|
3
|
-
spec.version =
|
4
|
+
spec.name = 'pdf-core'
|
5
|
+
spec.version = '0.9.0'
|
4
6
|
spec.platform = Gem::Platform::RUBY
|
5
|
-
spec.summary =
|
6
|
-
spec.files =
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
spec.
|
12
|
-
spec.
|
7
|
+
spec.summary = 'PDF::Core is used by Prawn to render PDF documents'
|
8
|
+
spec.files =
|
9
|
+
Dir.glob('lib/**/**/*') +
|
10
|
+
%w[COPYING GPLv2 GPLv3 LICENSE] +
|
11
|
+
%w[Gemfile Rakefile] +
|
12
|
+
['pdf-core.gemspec']
|
13
|
+
spec.require_path = 'lib'
|
14
|
+
spec.required_ruby_version = '>= 2.5'
|
15
|
+
spec.required_rubygems_version = '>= 1.3.6'
|
16
|
+
|
17
|
+
spec.cert_chain = ['certs/pointlessone.pem']
|
18
|
+
if $PROGRAM_NAME.end_with? 'gem'
|
19
|
+
spec.signing_key = File.expand_path('~/.gem/gem-private_key.pem')
|
20
|
+
end
|
13
21
|
|
14
|
-
#spec.
|
15
|
-
#spec.
|
16
|
-
#spec.rdoc_options << '--title' << 'Prawn Documentation' <<
|
22
|
+
# spec.extra_rdoc_files = %w{README.md LICENSE COPYING GPLv2 GPLv3}
|
23
|
+
# spec.rdoc_options << '--title' << 'Prawn Documentation' <<
|
17
24
|
# '--main' << 'README.md' << '-q'
|
18
|
-
spec.authors = [
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
spec.
|
23
|
-
|
25
|
+
spec.authors = [
|
26
|
+
'Gregory Brown', 'Brad Ediger', 'Daniel Nelson', 'Jonathan Greenberg',
|
27
|
+
'James Healy'
|
28
|
+
]
|
29
|
+
spec.email = [
|
30
|
+
'gregory.t.brown@gmail.com', 'brad@bradediger.com', 'dnelson@bluejade.com',
|
31
|
+
'greenberg@entryway.net', 'jimmy@deefa.com'
|
32
|
+
]
|
33
|
+
spec.licenses = %w[PRAWN GPL-2.0 GPL-3.0]
|
24
34
|
spec.add_development_dependency('pdf-inspector', '~> 1.1.0')
|
25
|
-
spec.add_development_dependency('
|
35
|
+
spec.add_development_dependency('pdf-reader', '~>1.2')
|
26
36
|
spec.add_development_dependency('rake')
|
27
|
-
spec.
|
28
|
-
spec.
|
37
|
+
spec.add_development_dependency('rspec')
|
38
|
+
spec.add_development_dependency('rubocop', '~> 0.93')
|
39
|
+
spec.add_development_dependency('rubocop-performance', '~> 1.8')
|
40
|
+
spec.add_development_dependency('rubocop-rspec', '~> 1.44')
|
41
|
+
spec.add_development_dependency('simplecov')
|
42
|
+
spec.homepage = 'http://prawnpdf.org'
|
43
|
+
spec.description = 'PDF::Core is used by Prawn to render PDF documents'
|
29
44
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pdf-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gregory Brown
|
@@ -11,9 +11,44 @@ authors:
|
|
11
11
|
- James Healy
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
|
-
cert_chain:
|
15
|
-
|
14
|
+
cert_chain:
|
15
|
+
- |
|
16
|
+
-----BEGIN CERTIFICATE-----
|
17
|
+
MIIDODCCAiCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAjMSEwHwYDVQQDDBhhbGV4
|
18
|
+
L0RDPXBvaW50bGVzcy9EQz1vbmUwHhcNMjAwODAxMTQxMjE1WhcNMjEwODAxMTQx
|
19
|
+
MjE1WjAjMSEwHwYDVQQDDBhhbGV4L0RDPXBvaW50bGVzcy9EQz1vbmUwggEiMA0G
|
20
|
+
CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPOVLPGEK+eaP6zJfifrpWvPTg4qo3
|
21
|
+
XNJJPom80SwqX2hVCVsRDK4RYgKUQqKRQzHhlx14wZHwWLETBVbNDGX3uqyCnTWU
|
22
|
+
JUKh3ydiZShXpNHoV/NW7hhEYvNsDcBAjYTmbvXOhuYCo0Tz/0N2Oiun/0wIICtP
|
23
|
+
vytY9TY0/lklWjAbsqJjNOu3o8IYkJBAN/rU96E/6WhFwjnxLcTnV9RfFRXdjG5j
|
24
|
+
CughoB2xSwKX8gwbQ8fsnaZRmdyDGYNpz6sGF0zycfiLkTttbLA2nYATCALy98CH
|
25
|
+
nsyZNsTjb4WINCuY2yEDjwesw9f/ROkNC68EgQ5M+aMjp+D0WcYGfzojAgMBAAGj
|
26
|
+
dzB1MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRPgIwSVbeonua/
|
27
|
+
Ny/8576oxdUbrjAdBgNVHREEFjAUgRJhbGV4QHBvaW50bGVzcy5vbmUwHQYDVR0S
|
28
|
+
BBYwFIESYWxleEBwb2ludGxlc3Mub25lMA0GCSqGSIb3DQEBCwUAA4IBAQAzhGxF
|
29
|
+
M0bXJ9GWD9vdVHOyzBQBJcJAvnsz2yV3+r4eJBsQynFIscsea8lHFL/d1eHYP0mN
|
30
|
+
k0fhK+WDcPlrj0Sn/Ezhk2qogTIekwDOK6pZkGRQzD45leJqQMnYd+/TXK3ri485
|
31
|
+
Gi4oJ6NitnnUT59SQnjD5JcENfc0EcRzclmVRFE8W4O+ORgo4Dypq1rwYUzxeyUk
|
32
|
+
mP5jNBWtH+hGUph28GQb0Hph6YnQb8zEFB88Xq80PK1SzkIPHpbTBk9mwPf6ypeX
|
33
|
+
Un1TJEahAlgENVml6CyDXSwk0H8N1V3gm1mb9Fe1T2Z/kAzvjo0qTDEtMVLU7Bxh
|
34
|
+
uqMUrdETjTnRYCVq
|
35
|
+
-----END CERTIFICATE-----
|
36
|
+
date: 2020-10-24 00:00:00.000000000 Z
|
16
37
|
dependencies:
|
38
|
+
- !ruby/object:Gem::Dependency
|
39
|
+
name: pdf-inspector
|
40
|
+
requirement: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - "~>"
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: 1.1.0
|
45
|
+
type: :development
|
46
|
+
prerelease: false
|
47
|
+
version_requirements: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - "~>"
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: 1.1.0
|
17
52
|
- !ruby/object:Gem::Dependency
|
18
53
|
name: pdf-reader
|
19
54
|
requirement: !ruby/object:Gem::Requirement
|
@@ -29,7 +64,7 @@ dependencies:
|
|
29
64
|
- !ruby/object:Gem::Version
|
30
65
|
version: '1.2'
|
31
66
|
- !ruby/object:Gem::Dependency
|
32
|
-
name:
|
67
|
+
name: rake
|
33
68
|
requirement: !ruby/object:Gem::Requirement
|
34
69
|
requirements:
|
35
70
|
- - ">="
|
@@ -43,35 +78,63 @@ dependencies:
|
|
43
78
|
- !ruby/object:Gem::Version
|
44
79
|
version: '0'
|
45
80
|
- !ruby/object:Gem::Dependency
|
46
|
-
name:
|
81
|
+
name: rspec
|
82
|
+
requirement: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
type: :development
|
88
|
+
prerelease: false
|
89
|
+
version_requirements: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - ">="
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: rubocop
|
47
96
|
requirement: !ruby/object:Gem::Requirement
|
48
97
|
requirements:
|
49
98
|
- - "~>"
|
50
99
|
- !ruby/object:Gem::Version
|
51
|
-
version:
|
100
|
+
version: '0.93'
|
52
101
|
type: :development
|
53
102
|
prerelease: false
|
54
103
|
version_requirements: !ruby/object:Gem::Requirement
|
55
104
|
requirements:
|
56
105
|
- - "~>"
|
57
106
|
- !ruby/object:Gem::Version
|
58
|
-
version:
|
107
|
+
version: '0.93'
|
59
108
|
- !ruby/object:Gem::Dependency
|
60
|
-
name:
|
109
|
+
name: rubocop-performance
|
61
110
|
requirement: !ruby/object:Gem::Requirement
|
62
111
|
requirements:
|
63
|
-
- - "
|
112
|
+
- - "~>"
|
64
113
|
- !ruby/object:Gem::Version
|
65
|
-
version: '
|
114
|
+
version: '1.8'
|
66
115
|
type: :development
|
67
116
|
prerelease: false
|
68
117
|
version_requirements: !ruby/object:Gem::Requirement
|
69
118
|
requirements:
|
70
|
-
- - "
|
119
|
+
- - "~>"
|
71
120
|
- !ruby/object:Gem::Version
|
72
|
-
version: '
|
121
|
+
version: '1.8'
|
73
122
|
- !ruby/object:Gem::Dependency
|
74
|
-
name:
|
123
|
+
name: rubocop-rspec
|
124
|
+
requirement: !ruby/object:Gem::Requirement
|
125
|
+
requirements:
|
126
|
+
- - "~>"
|
127
|
+
- !ruby/object:Gem::Version
|
128
|
+
version: '1.44'
|
129
|
+
type: :development
|
130
|
+
prerelease: false
|
131
|
+
version_requirements: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - "~>"
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '1.44'
|
136
|
+
- !ruby/object:Gem::Dependency
|
137
|
+
name: simplecov
|
75
138
|
requirement: !ruby/object:Gem::Requirement
|
76
139
|
requirements:
|
77
140
|
- - ">="
|
@@ -121,20 +184,13 @@ files:
|
|
121
184
|
- lib/pdf/core/renderer.rb
|
122
185
|
- lib/pdf/core/stream.rb
|
123
186
|
- lib/pdf/core/text.rb
|
187
|
+
- lib/pdf/core/utils.rb
|
124
188
|
- pdf-core.gemspec
|
125
|
-
|
126
|
-
- spec/filters_spec.rb
|
127
|
-
- spec/name_tree_spec.rb
|
128
|
-
- spec/object_store_spec.rb
|
129
|
-
- spec/pdf_object_spec.rb
|
130
|
-
- spec/reference_spec.rb
|
131
|
-
- spec/spec_helper.rb
|
132
|
-
- spec/stream_spec.rb
|
133
|
-
homepage: http://prawn.majesticseacreature.com
|
189
|
+
homepage: http://prawnpdf.org
|
134
190
|
licenses:
|
135
|
-
-
|
136
|
-
- GPL-2
|
137
|
-
- GPL-3
|
191
|
+
- PRAWN
|
192
|
+
- GPL-2.0
|
193
|
+
- GPL-3.0
|
138
194
|
metadata: {}
|
139
195
|
post_install_message:
|
140
196
|
rdoc_options: []
|
@@ -144,17 +200,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
144
200
|
requirements:
|
145
201
|
- - ">="
|
146
202
|
- !ruby/object:Gem::Version
|
147
|
-
version:
|
203
|
+
version: '2.5'
|
148
204
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
149
205
|
requirements:
|
150
206
|
- - ">="
|
151
207
|
- !ruby/object:Gem::Version
|
152
208
|
version: 1.3.6
|
153
209
|
requirements: []
|
154
|
-
|
155
|
-
rubygems_version: 2.2.2
|
210
|
+
rubygems_version: 3.0.3
|
156
211
|
signing_key:
|
157
212
|
specification_version: 4
|
158
213
|
summary: PDF::Core is used by Prawn to render PDF documents
|
159
214
|
test_files: []
|
160
|
-
has_rdoc:
|