pdfrb 0.7.19 → 0.7.20
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 +4 -4
- data/lib/pdfrb/model/type/appearance.rb +6 -3
- data/lib/pdfrb/model/type/appearance_characteristics.rb +1 -0
- data/lib/pdfrb/model/type/appearance_trap_net.rb +1 -0
- data/lib/pdfrb/model/type/d_part.rb +91 -0
- data/lib/pdfrb/model/type/dss.rb +81 -0
- data/lib/pdfrb/model/type/three_d_activation.rb +1 -0
- data/lib/pdfrb/model/type/three_d_animation_style.rb +1 -0
- data/lib/pdfrb/model/type/three_d_background.rb +1 -0
- data/lib/pdfrb/model/type/three_d_cross_section.rb +1 -0
- data/lib/pdfrb/model/type/three_d_lighting_scheme.rb +1 -0
- data/lib/pdfrb/model/type/three_d_measure_3dc.rb +1 -0
- data/lib/pdfrb/model/type/three_d_measure_ad3.rb +1 -0
- data/lib/pdfrb/model/type/three_d_measure_ld3.rb +1 -0
- data/lib/pdfrb/model/type/three_d_measure_pd3.rb +1 -0
- data/lib/pdfrb/model/type/three_d_measure_rd3.rb +1 -0
- data/lib/pdfrb/model/type/three_d_node.rb +1 -0
- data/lib/pdfrb/model/type/three_d_reference.rb +1 -0
- data/lib/pdfrb/model/type/three_d_render_mode.rb +1 -0
- data/lib/pdfrb/model/type/three_d_stream.rb +1 -0
- data/lib/pdfrb/model/type/three_d_units.rb +1 -0
- data/lib/pdfrb/model/type/three_d_view.rb +1 -0
- data/lib/pdfrb/model/type.rb +7 -0
- data/lib/pdfrb/version.rb +1 -1
- metadata +3 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: a799578418324e198b38930d7dce57663503478adb1b529c608d58183f84f183
|
|
4
|
+
data.tar.gz: 94b49f8a02ce9845ad283afa39ec4224ce0ecef9240919c21909e38f18f52ccd
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 1d2bdf98564008508094b7c6165160541419331edd629f2dd836dc4632b1f99830e0b8d3b9490cd3395ebc5e0674c40f8ce99bf42b079ff9f8ab7c3b13e8180a
|
|
7
|
+
data.tar.gz: 984567fb69359980624147608deeeed46c9a345a0ec4f97158924629d1bf78f8c3a6be5dba5cfc1c6a36d930865a55d33a5c5d0fa17922fb4c16726d1142f037
|
|
@@ -7,20 +7,23 @@ module Pdfrb
|
|
|
7
7
|
# annotation holds three sub-dicts: /N (normal), /R (rollover),
|
|
8
8
|
# /D (down).
|
|
9
9
|
class Appearance < Pdfrb::Model::Cos::Dictionary
|
|
10
|
+
arlington_object "Appearance"
|
|
10
11
|
def normal; self[:N]; end
|
|
11
12
|
def rollover; self[:R]; end
|
|
12
13
|
def down; self[:D]; end
|
|
13
14
|
|
|
15
|
+
# Presence checks use the raw value (not the Arlington
|
|
16
|
+
# default) because /D defaults to /N's value per the spec.
|
|
14
17
|
def has_normal?
|
|
15
|
-
|
|
18
|
+
!value[:N].nil?
|
|
16
19
|
end
|
|
17
20
|
|
|
18
21
|
def has_rollover?
|
|
19
|
-
|
|
22
|
+
!value[:R].nil?
|
|
20
23
|
end
|
|
21
24
|
|
|
22
25
|
def has_down?
|
|
23
|
-
|
|
26
|
+
!value[:D].nil?
|
|
24
27
|
end
|
|
25
28
|
|
|
26
29
|
def normal_for_state(state_name)
|
|
@@ -8,6 +8,7 @@ module Pdfrb
|
|
|
8
8
|
# colors, normal/rollover/down captions, etc. Often stored under
|
|
9
9
|
# the widget's /MK key.
|
|
10
10
|
class AppearanceCharacteristics < Pdfrb::Model::Cos::Dictionary
|
|
11
|
+
arlington_object "AppearanceCharacteristics"
|
|
11
12
|
def background_color; self[:BG]; end
|
|
12
13
|
def caption; self[:CA]; end
|
|
13
14
|
def rollover_caption; self[:RC]; end
|
|
@@ -6,6 +6,7 @@ module Pdfrb
|
|
|
6
6
|
# AppearanceTrapNet sub-dictionary (s7.7.3.3, Table 327). Per-
|
|
7
7
|
# appearance-stream trap-net (ink-flattening) parameters.
|
|
8
8
|
class AppearanceTrapNetSubDict < Pdfrb::Model::Cos::Dictionary
|
|
9
|
+
arlington_object "AppearanceTrapNet"
|
|
9
10
|
def pos_h; self[:PosH]; end
|
|
10
11
|
def pos_l; self[:PosL]; end
|
|
11
12
|
def span_h_min; self[:SpanH]; end
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Model
|
|
5
|
+
module Type
|
|
6
|
+
# DPartRoot (ISO 16612-2 PDF/VT §6.3.4). The root of the
|
|
7
|
+
# Document Part hierarchy, attached to the Catalog via the
|
|
8
|
+
# /DPartRoot key. Represents the root node of a tree whose
|
|
9
|
+
# leaves are groups of document parts.
|
|
10
|
+
class DPartRoot < Pdfrb::Model::Cos::Dictionary
|
|
11
|
+
arlington_object "DPartRoot"
|
|
12
|
+
|
|
13
|
+
# /Type — optional, fixed "DPartRoot".
|
|
14
|
+
def type
|
|
15
|
+
value[:Type]&.to_sym
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# /DPartRootNode — required indirect reference to the
|
|
19
|
+
# first DPart child.
|
|
20
|
+
def root_node(document = nil)
|
|
21
|
+
ref = value[:DPartRootNode]
|
|
22
|
+
return nil unless ref && document
|
|
23
|
+
|
|
24
|
+
resolved = ref.is_a?(Pdfrb::Model::Reference) ? document.object(ref) : ref
|
|
25
|
+
return nil unless resolved && resolved.value.is_a?(::Hash)
|
|
26
|
+
|
|
27
|
+
DPart.new(resolved.value)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# /RecordLevel — optional integer >= 0, the nesting depth
|
|
31
|
+
# at which DParts represent individual records.
|
|
32
|
+
def record_level
|
|
33
|
+
value[:RecordLevel]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# /NodeNameList — optional array of names identifying the
|
|
37
|
+
# tree levels (required for PDF/VT-2).
|
|
38
|
+
def node_name_list
|
|
39
|
+
value[:NodeNameList]
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
# DPart (ISO 16612-2 PDF/VT §6.3.5). One node in the Document
|
|
44
|
+
# Part hierarchy. Either has /DParts (a tree of child DParts)
|
|
45
|
+
# or /Start + /End pointing to the page range it covers.
|
|
46
|
+
class DPart < Pdfrb::Model::Cos::Dictionary
|
|
47
|
+
arlington_object "DPart"
|
|
48
|
+
|
|
49
|
+
# /Type — optional, fixed "DPart".
|
|
50
|
+
def type
|
|
51
|
+
value[:Type]&.to_sym
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
# /Parent — required indirect ref to the containing DPart
|
|
55
|
+
# or DPartRoot (may be absent when Metadata is present).
|
|
56
|
+
def parent(document = nil)
|
|
57
|
+
ref = value[:Parent]
|
|
58
|
+
return nil unless ref && document
|
|
59
|
+
|
|
60
|
+
ref.is_a?(Pdfrb::Model::Reference) ? document.object(ref) : ref
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# /DParts — array of arrays of child DParts. Mutually
|
|
64
|
+
# exclusive with /Start + /End.
|
|
65
|
+
def child_parts
|
|
66
|
+
value[:DParts]
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
# /Start — indirect ref to the first Page in this part.
|
|
70
|
+
def start_page(document = nil)
|
|
71
|
+
ref = value[:Start]
|
|
72
|
+
return nil unless ref && document
|
|
73
|
+
|
|
74
|
+
ref.is_a?(Pdfrb::Model::Reference) ? document.object(ref) : ref
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
# /End — indirect ref to the last Page in this part.
|
|
78
|
+
def end_page(document = nil)
|
|
79
|
+
ref = value[:End]
|
|
80
|
+
return nil unless ref && document
|
|
81
|
+
|
|
82
|
+
ref.is_a?(Pdfrb::Model::Reference) ? document.object(ref) : ref
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def leaf?
|
|
86
|
+
child_parts.nil?
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
end
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Pdfrb
|
|
4
|
+
module Model
|
|
5
|
+
module Type
|
|
6
|
+
# DSS (Document Security Store) per ETSI EN 319 142-1 (PAdES)
|
|
7
|
+
# §B.5. Attached to the Catalog via the /DSS key. Holds the
|
|
8
|
+
# long-term validation material: certificates, CRLs, OCSP
|
|
9
|
+
# responses, and per-signature VRI dictionaries.
|
|
10
|
+
class Dss < Pdfrb::Model::Cos::Dictionary
|
|
11
|
+
arlington_object "DSS"
|
|
12
|
+
|
|
13
|
+
# /Type — optional, fixed "DSS".
|
|
14
|
+
def type
|
|
15
|
+
value[:Type]&.to_sym
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# /Certs — array of indirect streams, each a DER-encoded
|
|
19
|
+
# X.509 certificate used by any signature in the document.
|
|
20
|
+
def certificates(document = nil)
|
|
21
|
+
resolve_streams(value[:Certs], document)
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# /OCSPs — array of indirect streams, each a DER-encoded
|
|
25
|
+
# OCSP response.
|
|
26
|
+
def ocsp_responses(document = nil)
|
|
27
|
+
resolve_streams(value[:OCSPs], document)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# /CRLs — array of indirect streams, each a DER-encoded
|
|
31
|
+
# certificate revocation list.
|
|
32
|
+
def crls(document = nil)
|
|
33
|
+
resolve_streams(value[:CRLs], document)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# /VRI — optional map of SHA-1 hex digest -> VRI dict for
|
|
37
|
+
# each signature. Returns the raw Hash.
|
|
38
|
+
def vri_map
|
|
39
|
+
value[:VRI]
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
# Enumerate each (signature-hash, Vri) pair, resolving the
|
|
43
|
+
# VRI dicts to typed instances.
|
|
44
|
+
def each_vri(document = nil)
|
|
45
|
+
return enum_for(:each_vri, document) unless block_given?
|
|
46
|
+
|
|
47
|
+
map = vri_map
|
|
48
|
+
return unless map
|
|
49
|
+
|
|
50
|
+
raw = map.is_a?(Pdfrb::Model::Cos::Dictionary) ? map.value : map
|
|
51
|
+
raw.each do |sig_hash, ref|
|
|
52
|
+
resolved = if ref.is_a?(Pdfrb::Model::Reference) && document
|
|
53
|
+
document.object(ref)
|
|
54
|
+
else
|
|
55
|
+
ref
|
|
56
|
+
end
|
|
57
|
+
next unless resolved && resolved.value.is_a?(::Hash)
|
|
58
|
+
|
|
59
|
+
yield sig_hash.to_s, Vri.new(resolved.value)
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
# Look up a VRI by the hex-encoded SHA-1 digest of the
|
|
64
|
+
# signature's DER bytes.
|
|
65
|
+
def vri_for(signature_sha1_hex, document = nil)
|
|
66
|
+
each_vri(document).find { |h, _v| h == signature_sha1_hex }&.last
|
|
67
|
+
end
|
|
68
|
+
|
|
69
|
+
private
|
|
70
|
+
|
|
71
|
+
def resolve_streams(refs, document)
|
|
72
|
+
return [] unless refs && document
|
|
73
|
+
|
|
74
|
+
arr = refs.is_a?(Pdfrb::Model::PdfArray) ? refs.value : refs
|
|
75
|
+
arr = [arr] unless arr.is_a?(::Array)
|
|
76
|
+
arr.filter_map { |r| r.is_a?(Pdfrb::Model::Reference) ? document.object(r) : r }
|
|
77
|
+
end
|
|
78
|
+
end
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
end
|
|
@@ -6,6 +6,7 @@ module Pdfrb
|
|
|
6
6
|
# 3D Activation (s13.6.2). Controls when a 3D stream becomes
|
|
7
7
|
# active and how it's deactivated.
|
|
8
8
|
class ThreeDActivation < Pdfrb::Model::Cos::Dictionary
|
|
9
|
+
arlington_object "3DActivation"
|
|
9
10
|
def activation_mode; self[:A]&.to_sym; end
|
|
10
11
|
def activation_instance; self[:AIS]&.to_sym; end
|
|
11
12
|
def deactivation_mode; self[:D]&.to_sym; end
|
|
@@ -6,6 +6,7 @@ module Pdfrb
|
|
|
6
6
|
# 3D Animation Style (s13.6.3, Table 312-313). Animation control
|
|
7
7
|
# for a 3D stream.
|
|
8
8
|
class ThreeDAnimationStyle < Pdfrb::Model::Cos::Dictionary
|
|
9
|
+
arlington_object "3DAnimationStyle"
|
|
9
10
|
def type; self[:Type]; end
|
|
10
11
|
def subtype; self[:Subtype]&.to_sym; end
|
|
11
12
|
def play_count; self[:PC] || 0; end
|
|
@@ -5,6 +5,7 @@ module Pdfrb
|
|
|
5
5
|
module Type
|
|
6
6
|
# 3D Background (s13.6.4). Background fill for a 3D view.
|
|
7
7
|
class ThreeDBackground < Pdfrb::Model::Cos::Dictionary
|
|
8
|
+
arlington_object "3DBackground"
|
|
8
9
|
def type; self[:Type]; end
|
|
9
10
|
def subtype; self[:Subtype]&.to_sym; end
|
|
10
11
|
def color_space; self[:CS]; end
|
|
@@ -5,6 +5,7 @@ module Pdfrb
|
|
|
5
5
|
module Type
|
|
6
6
|
# 3D Cross Section (s13.6.4). Plane cutaway view of a 3D model.
|
|
7
7
|
class ThreeDCrossSection < Pdfrb::Model::Cos::Dictionary
|
|
8
|
+
arlington_object "3DCrossSection"
|
|
8
9
|
def type; self[:Type]; end
|
|
9
10
|
def center; self[:C]; end
|
|
10
11
|
def orientation; self[:O]; end
|
|
@@ -6,6 +6,7 @@ module Pdfrb
|
|
|
6
6
|
# 3D Reference (s13.6.5). Indirect reference to a 3D stream
|
|
7
7
|
# elsewhere in the document.
|
|
8
8
|
class ThreeDReference < Pdfrb::Model::Cos::Dictionary
|
|
9
|
+
arlington_object "3DReference"
|
|
9
10
|
def type; self[:Type]; end
|
|
10
11
|
def target_stream; self[:Target]; end
|
|
11
12
|
|
|
@@ -6,6 +6,7 @@ module Pdfrb
|
|
|
6
6
|
# 3D Render Mode (s13.6.4, Table 318-319). Rendering style for
|
|
7
7
|
# 3D objects (solid, wireframe, transparent, etc.).
|
|
8
8
|
class ThreeDRenderMode < Pdfrb::Model::Cos::Dictionary
|
|
9
|
+
arlington_object "3DRenderMode"
|
|
9
10
|
def type; self[:Type]; end
|
|
10
11
|
def subtype; self[:Subtype]&.to_sym; end
|
|
11
12
|
def auxiliary_color; self[:AC]; end
|
|
@@ -5,6 +5,7 @@ module Pdfrb
|
|
|
5
5
|
module Type
|
|
6
6
|
# 3D Stream (s13.6.3). Carries a U3D or PRC binary 3D model.
|
|
7
7
|
class ThreeDStream < Pdfrb::Model::Cos::Stream
|
|
8
|
+
arlington_object "3DStream"
|
|
8
9
|
def type; self[:Type]; end
|
|
9
10
|
def subtype; self[:Subtype]&.to_sym; end
|
|
10
11
|
def views; self[:VA]; end
|
|
@@ -5,6 +5,7 @@ module Pdfrb
|
|
|
5
5
|
module Type
|
|
6
6
|
# 3D Units (s13.6.4). Scaling factor and unit name for 3D measures.
|
|
7
7
|
class ThreeDUnits < Pdfrb::Model::Cos::Dictionary
|
|
8
|
+
arlington_object "3DUnits"
|
|
8
9
|
def type; self[:Type]; end
|
|
9
10
|
def unit_name; self[:U]; end
|
|
10
11
|
def scale_factor; self[:SF]; end
|
|
@@ -6,6 +6,7 @@ module Pdfrb
|
|
|
6
6
|
# 3D View (s13.6.4). A single camera/lighting/material configuration
|
|
7
7
|
# for a 3D stream.
|
|
8
8
|
class ThreeDView < Pdfrb::Model::Cos::Dictionary
|
|
9
|
+
arlington_object "3DView"
|
|
9
10
|
def type; self[:Type]; end
|
|
10
11
|
def external_name; self[:XN]; end
|
|
11
12
|
def internal_name; self[:IN]; end
|
data/lib/pdfrb/model/type.rb
CHANGED
|
@@ -394,6 +394,13 @@ module Pdfrb
|
|
|
394
394
|
|
|
395
395
|
# Sound action (s12.6.4.11, deprecated 2.0).
|
|
396
396
|
autoload :ActionSound, "pdfrb/model/type/action_sound"
|
|
397
|
+
|
|
398
|
+
# Document Security Store (ETSI EN 319 142-1 PAdES).
|
|
399
|
+
autoload :Dss, "pdfrb/model/type/dss"
|
|
400
|
+
|
|
401
|
+
# Document Part hierarchy (ISO 16612-2 PDF/VT).
|
|
402
|
+
autoload :DPartRoot, "pdfrb/model/type/d_part"
|
|
403
|
+
autoload :DPart, "pdfrb/model/type/d_part"
|
|
397
404
|
end
|
|
398
405
|
end
|
|
399
406
|
end
|
data/lib/pdfrb/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pdfrb
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.7.
|
|
4
|
+
version: 0.7.20
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
@@ -1004,11 +1004,13 @@ files:
|
|
|
1004
1004
|
- lib/pdfrb/model/type/collection_schema.rb
|
|
1005
1005
|
- lib/pdfrb/model/type/collection_sort.rb
|
|
1006
1006
|
- lib/pdfrb/model/type/crypt_filter.rb
|
|
1007
|
+
- lib/pdfrb/model/type/d_part.rb
|
|
1007
1008
|
- lib/pdfrb/model/type/device_n.rb
|
|
1008
1009
|
- lib/pdfrb/model/type/device_n_mixing_hints.rb
|
|
1009
1010
|
- lib/pdfrb/model/type/device_n_process.rb
|
|
1010
1011
|
- lib/pdfrb/model/type/doc_mdp_transform_parameters.rb
|
|
1011
1012
|
- lib/pdfrb/model/type/document_security_store.rb
|
|
1013
|
+
- lib/pdfrb/model/type/dss.rb
|
|
1012
1014
|
- lib/pdfrb/model/type/embedded_file.rb
|
|
1013
1015
|
- lib/pdfrb/model/type/embedded_file_parameter.rb
|
|
1014
1016
|
- lib/pdfrb/model/type/encryption_public_key.rb
|