1if not modules then modules = { } end modules ['lpdf-fix'] = {
2 version = 1.001,
3 comment = "companion to lpdf-ini.mkiv",
4 author = "Hans Hagen, PRAGMA-ADE, Hasselt NL",
5 copyright = "PRAGMA ADE / ConTeXt Development Team",
6 license = "see context related readme files"
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
34do
35
36 local pdfbackend = backends.registered.pdf
37 local codeinjections = pdfbackend.codeinjections
38 local setmetatableindex = table.setmetatableindex
39
40 local variables = interfaces.variables
41
42 local compactors = {
43
44
45
46 }
47
48 function codeinjections.registercompactor(name,data)
49 if not data then
50 data = name
51 name = data.name
52 end
53 compactors[name] = setmetatableindex(data,"table")
54 end
55
56 function codeinjections.validcompactor(name)
57 return name and compactors[name] or false
58 end
59
60 compactors["preset:yes"] = {
61 merge = {
62 lmtx = true,
63 },
64 }
65
66 compactors[interfaces.variables.yes] = compactors["preset:yes"]
67
68 compactors["preset:merge"] = {
69 merge = {
70 type0 = true,
71 truetype = true,
72 type1 = true,
73
74 lmtx = true,
75 },
76 }
77
78end
79
80do
81
82 local sequencers = utilities.sequencers
83 local appendgroup = sequencers.appendgroup
84
85 local pdfcontentmanipulators = sequencers.new {
86 name = "pdfcontentmanipulators",
87 arguments = "pdfdoc,page,pagenumber,resources,compactor",
88 }
89
90 appendgroup(pdfcontentmanipulators,"before")
91 appendgroup(pdfcontentmanipulators,"system")
92 appendgroup(pdfcontentmanipulators,"after" )
93
94 function lpdf.epdf.contentplugin(pdfdoc,page,pagenumber,resources,compactor)
95 local runner = pdfcontentmanipulators.runner
96 if runner then
97 runner(pdfdoc,page,pagenumber,resources,compactor)
98 end
99 end
100
101
102
103
104 local pdfpagemanipulators = sequencers.new {
105 name = "pdfpagemanipulators",
106 arguments = "pdfdoc,page,pagenumber,resources,compactor",
107 }
108
109 appendgroup(pdfpagemanipulators,"before")
110 appendgroup(pdfpagemanipulators,"system")
111 appendgroup(pdfpagemanipulators,"after" )
112
113 sequencers.appendaction("pdfpagemanipulators","system","lpdf.epdf.contentplugin")
114 sequencers.enableaction("pdfpagemanipulators","lpdf.epdf.contentplugin")
115
116 function lpdf.epdf.pageplugin(pdfdoc,page,pagenumber,resources,compactor)
117 local runner = pdfpagemanipulators.runner
118 if runner then
119 runner(pdfdoc,page,pagenumber,resources,compactor)
120 end
121 end
122
123end
124 |