summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/lpdf-swf.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2018-11-18 16:12:36 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2018-11-18 16:12:36 +0100
commit744095aa4676553437db0d71c281a74557a3222f (patch)
treebfdf5d203b5fbfa44ee7db705d3b3475361ad28f /tex/context/base/mkiv/lpdf-swf.lua
parente2ee706a3114129601a30908d6b8cbb57068d32c (diff)
downloadcontext-744095aa4676553437db0d71c281a74557a3222f.tar.gz
2018-11-18 14:16:00
Diffstat (limited to 'tex/context/base/mkiv/lpdf-swf.lua')
-rw-r--r--tex/context/base/mkiv/lpdf-swf.lua40
1 files changed, 39 insertions, 1 deletions
diff --git a/tex/context/base/mkiv/lpdf-swf.lua b/tex/context/base/mkiv/lpdf-swf.lua
index 7d76efc73..44e42dc5f 100644
--- a/tex/context/base/mkiv/lpdf-swf.lua
+++ b/tex/context/base/mkiv/lpdf-swf.lua
@@ -11,6 +11,7 @@ if not modules then modules = { } end modules ['lpdf-swf'] = {
local format, gsub = string.format, string.gsub
local concat = table.concat
+local formatters = string.formatters
local backends = backends
local lpdf = lpdf
@@ -33,6 +34,43 @@ local trace_swf = false trackers.register("backend.swf", function(v) trace_swf
local report_swf = logs.reporter("backend","swf")
+--------------------------------------------------------------------------------------
+
+local createimage = images.create
+local embedimage = images.embed
+
+local basepoints = number.dimenfactors.bp
+
+local f_image = formatters["%.6F 0 0 %.6F 0 0 cm /%s Do"]
+
+directives.register("pdf.stripzeros",function()
+ f_image = formatters["%.6N 0 0 %.6N 0 0 cm /%s Do"]
+end)
+
+local function package(image) -- see lpdf-u3d **
+ local boundingbox = image.bbox
+ local imagetag = "Im" .. image.index -- this is not ok
+ local resources = pdfdictionary {
+ ProcSet = lpdf.procset(),
+ Resources = pdfdictionary {
+ XObject = pdfdictionary {
+ [imagetag] = pdfreference(image.objnum)
+ }
+ }
+ }
+ local width = boundingbox[3]
+ local height = boundingbox[4]
+ local xform = createimage {
+ attr = resources(),
+ stream = f_image(width,height,imagetag),
+ bbox = { 0, 0, width/basepoints, height/basepoints },
+ }
+ embedimage(xform)
+ return xform
+end
+
+--------------------------------------------------------------------------------------
+
local activations = {
click = "XA",
page = "PO",
@@ -279,7 +317,7 @@ local function insertswf(spec)
end
end
if figure then
- local image = img.package(figure.status.private)
+ local image = package(figure.status.private)
appearance = pdfdictionary { N = pdfreference(image.objnum) }
if trace_swf then
report_swf("using preview %s",preview)