summaryrefslogtreecommitdiff
path: root/tex/context/base/lpdf-fld.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2012-01-24 14:55:00 +0100
committerHans Hagen <pragma@wxs.nl>2012-01-24 14:55:00 +0100
commit97af40831e32337e13acae3b562782a8f6a8e79b (patch)
tree0122175ebcadaa63d33d998cb6addca99cc51216 /tex/context/base/lpdf-fld.lua
parenta09a16817c8461b4f1c518f5dab0fa3f734b62d6 (diff)
downloadcontext-97af40831e32337e13acae3b562782a8f6a8e79b.tar.gz
beta 2012.01.24 14:55
Diffstat (limited to 'tex/context/base/lpdf-fld.lua')
-rw-r--r--tex/context/base/lpdf-fld.lua24
1 files changed, 24 insertions, 0 deletions
diff --git a/tex/context/base/lpdf-fld.lua b/tex/context/base/lpdf-fld.lua
index 5f59c951c..41d428004 100644
--- a/tex/context/base/lpdf-fld.lua
+++ b/tex/context/base/lpdf-fld.lua
@@ -457,6 +457,30 @@ end
local fields, radios, clones, fieldsets, calculationset = { }, { }, { }, { }, nil
+local xfdftemplate = [[
+<?xml version='1.0' encoding='UTF-8'?>
+
+<xfdf xmlns='http://ns.adobe.com/xfdf/'>
+ <f href='%s.pdf'/>
+ <fields>
+%s
+ </fields>
+</xfdf>
+]]
+
+function codeinjections.exportformdata(name)
+ local result = { }
+ for k, v in table.sortedhash(fields) do
+ result[#result+1] = format(" <field name='%s'><value>%s</value></field>",v.name or k,v.default or "")
+ end
+ local base = file.basename(tex.jobname)
+ local xfdf = format(xfdftemplate,base,table.concat(result))
+ if not name or name == "" then
+ name = base
+ end
+ io.savedata(file.addsuffix(name,"xfdf"),xfdf)
+end
+
function codeinjections.definefieldset(tag,list)
fieldsets[tag] = list
end