/
Resourced.pm
56 lines (48 loc) · 1.36 KB
/
Resourced.pm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
use v6;
role PDF::Content::Resourced {
method !resources { self.Resources //= {} }
method core-font(|c) {
self!resources.core-font(|c);
}
method use-font($obj, |c) {
self!resources.use-font($obj, |c);
}
method use-resource($obj, |c) {
self!resources.resource($obj, |c);
}
method resource-key($obj, |c) {
self!resources.resource-key($obj, |c);
}
#| my %fonts = $pdf.page(1).resources('Font');
multi method resources('ProcSet') {
my @entries;
my $resource-entries = .ProcSet with self.Resources;
@entries = .keys.map( { $resource-entries[$_] } )
with $resource-entries;
@entries;
}
multi method resources(Str $type) is default {
my Hash $resource-entries;
with self.Resources -> $resources {
$resource-entries = $resources{$type}
if $resources{$type}:exists;
}
my %entries = .keys.map( { $_ => $resource-entries{$_} } )
with $resource-entries;
%entries;
}
method resource-entry(|c) {
.resource-entry(|c) with self.Resources;
}
method find-resource(|c ) {
.find-resource(|c)
with self.Resources;
}
method images(Bool :$inline = True) {
my %forms = self.resources: 'XObject';
my @images = %forms.values.grep( *.<Subtype> eq 'Image');
@images.append: self.gfx.inline-images
if $inline;
@images;
}
}