diff options
author | Hans Hagen <pragma@wxs.nl> | 2018-11-18 16:12:36 +0100 |
---|---|---|
committer | Context Git Mirror Bot <phg@phi-gamma.net> | 2018-11-18 16:12:36 +0100 |
commit | 744095aa4676553437db0d71c281a74557a3222f (patch) | |
tree | bfdf5d203b5fbfa44ee7db705d3b3475361ad28f /tex/context/base/mkiv/lpdf-swf.lua | |
parent | e2ee706a3114129601a30908d6b8cbb57068d32c (diff) | |
download | context-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.lua | 40 |
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) |