summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/lpdf-ini.lua
diff options
context:
space:
mode:
authorHans Hagen <pragma@wxs.nl>2018-11-29 20:53:37 +0100
committerContext Git Mirror Bot <phg@phi-gamma.net>2018-11-29 20:53:37 +0100
commit9bd28a3039a458b054459fe1ef80161b107b798f (patch)
treec15bf6aedc4313de999a97bf92dc63b16ca60794 /tex/context/base/mkiv/lpdf-ini.lua
parent744095aa4676553437db0d71c281a74557a3222f (diff)
downloadcontext-9bd28a3039a458b054459fe1ef80161b107b798f.tar.gz
2018-11-29 19:54:00
Diffstat (limited to 'tex/context/base/mkiv/lpdf-ini.lua')
-rw-r--r--tex/context/base/mkiv/lpdf-ini.lua178
1 files changed, 112 insertions, 66 deletions
diff --git a/tex/context/base/mkiv/lpdf-ini.lua b/tex/context/base/mkiv/lpdf-ini.lua
index a6702cd35..98c121778 100644
--- a/tex/context/base/mkiv/lpdf-ini.lua
+++ b/tex/context/base/mkiv/lpdf-ini.lua
@@ -32,7 +32,7 @@ local context = context
-- encoded utf16 string type between <>. We could probably save some bytes by using
-- strings between () but then we end up with escaped ()\ too.
-local pdf = pdf
+pdf = type(pdf) == "table" and pdf or { }
local factor = number.dimenfactors.bp
local codeinjections = { }
@@ -54,42 +54,46 @@ lpdf = lpdf or { }
local lpdf = lpdf
lpdf.flags = lpdf.flags or { } -- will be filled later
-local pdfsetinfo = pdf.setinfo
-local pdfsetcatalog = pdf.setcatalog
------ pdfsetnames = pdf.setnames
------ pdfsettrailer = pdf.settrailer
-local pdfsettrailerid = pdf.settrailerid
------ pdfsetomitcidset = pdf.setomitcidset
-
-local pdfsetpageresources = pdf.setpageresources
-local pdfsetpageattributes = pdf.setpageattributes
-local pdfsetpagesattributes = pdf.setpagesattributes
-
-local pdfreserveobject = pdf.reserveobj
-local pdfimmediateobject = pdf.immediateobj
-local pdfdeferredobject = pdf.obj
-local pdfreferenceobject = pdf.refobj
-
-local pdfgetfontname = pdf.getfontname
-local pdfgetfontobjnum = pdf.getfontobjnum
-local pdfgetxformname = pdf.getxformname
-local pdfincludeimage = pdf.includeimage
-local pdfincludechar = pdf.includechar
-local pdfgetpagereference = pdf.getpageref or pdf.pageref -- tex.pdfpageref is obsolete
-local pdfsetfontattributes = pdf.setfontattributes
-
-local setmajorversion = pdf.setmajorversion
-local setminorversion = pdf.setminorversion
-local getmajorversion = pdf.getmajorversion
-local getminorversion = pdf.getminorversion
-
-local setcompresslevel = pdf.setcompresslevel
-local setobjectcompresslevel = pdf.setobjcompresslevel
-local getcompresslevel = pdf.getcompresslevel
-local getobjectcompresslevel = pdf.getobjcompresslevel
+local pdfsetinfo = pdf.setinfo
+local pdfsetcatalog = pdf.setcatalog
+----- pdfsetnames = pdf.setnames
+----- pdfsettrailer = pdf.settrailer
+local pdfsettrailerid = pdf.settrailerid
+
+local pdfsetpageresources = pdf.setpageresources
+local pdfsetpageattributes = pdf.setpageattributes
+local pdfsetpagesattributes = pdf.setpagesattributes
+
+local pdfreserveobject = pdf.reserveobj
+local pdfimmediateobject = pdf.immediateobj
+local pdfdeferredobject = pdf.obj
+local pdfreferenceobject = pdf.refobj
+
+local pdfgetfontname = pdf.getfontname
+local pdfgetfontobjnum = pdf.getfontobjnum
+local pdfgetxformname = pdf.getxformname
+local pdfincludeimage = pdf.includeimage
+local pdfincludechar = pdf.includechar
+local pdfgetpagereference = pdf.getpageref or pdf.pageref -- tex.pdfpageref is obsolete
+local pdfsetfontattributes = pdf.setfontattributes
+
+local setmajorversion = pdf.setmajorversion
+local setminorversion = pdf.setminorversion
+local getmajorversion = pdf.getmajorversion
+local getminorversion = pdf.getminorversion
+
+local setcompresslevel = pdf.setcompresslevel
+local setobjectcompresslevel = pdf.setobjcompresslevel
+local getcompresslevel = pdf.getcompresslevel
+local getobjectcompresslevel = pdf.getobjcompresslevel
+
+local setsuppressoptionalinfo = pdf.setsuppressoptionalinfo
+local setomitcidset = pdf.setomitcidset
local function pdfdisablecommand(command)
- pdf[command] = function() report_blocked("'pdf.%s' is not supported",command) end
+ pdf[command] = function()
+-- report_blocked("'pdf.%s' is not supported",command)
+ end
end
pdfdisablecommand("setinfo")
@@ -108,33 +112,39 @@ pdf.disablecommand = pdfdisablecommand
updaters.register("backend.update.lpdf",function()
- pdfsetinfo = pdf.setinfo
- pdfsetcatalog = pdf.setcatalog
- pdfsettrailerid = pdf.settrailerid
+ pdfsetinfo = pdf.setinfo
+ pdfsetcatalog = pdf.setcatalog
+ pdfsettrailerid = pdf.settrailerid
+
+ pdfreserveobject = pdf.reserveobj
+ pdfimmediateobject = pdf.immediateobj
+ pdfdeferredobject = pdf.obj
+ pdfreferenceobject = pdf.refobj
+ pdfsetfontattributes = pdf.setfontattributes
- pdfreserveobject = pdf.reserveobj
- pdfimmediateobject = pdf.immediateobj
- pdfdeferredobject = pdf.obj
- pdfreferenceobject = pdf.refobj
- pdfsetfontattributes = pdf.setfontattributes
+ pdfgetfontname = pdf.getfontname
+ pdfgetfontobjnum = pdf.getfontobjnum
+ pdfgetxformname = pdf.getxformname
+ pdfincludeimage = pdf.includeimage
+ pdfincludechar = pdf.includechar
+ pdfgetpagereference = pdf.getpageref
- pdfgetfontname = pdf.getfontname
- pdfgetfontobjnum = pdf.getfontobjnum
- pdfgetxformname = pdf.getxformname
- pdfincludeimage = pdf.includeimage
- pdfincludechar = pdf.includechar
- pdfgetpagereference = pdf.getpageref
+ setmajorversion = pdf.setmajorversion
+ setminorversion = pdf.setminorversion
+ getmajorversion = pdf.getmajorversion
+ getminorversion = pdf.getminorversion
+ setcompresslevel = pdf.setcompresslevel
+ setobjectcompresslevel = pdf.setobjcompresslevel
+ getcompresslevel = pdf.getcompresslevel
+ getobjectcompresslevel = pdf.getobjcompresslevel
- setmajorversion = pdf.setmajorversion
- setminorversion = pdf.setminorversion
- getmajorversion = pdf.getmajorversion
- getminorversion = pdf.getminorversion
+ pdfsetpageresources = pdf.setpageresources
+ pdfsetpageattributes = pdf.setpageattributes
+ pdfsetpagesattributes = pdf.setpagesattributes
- setcompresslevel = pdf.setcompresslevel
- setobjectcompresslevel = pdf.setobjcompresslevel
- getcompresslevel = pdf.getcompresslevel
- getobjectcompresslevel = pdf.getobjcompresslevel
+ setsuppressoptionalinfo = pdf.setsuppressoptionalinfo
+ setomitcidset = pdf.setomitcidset
pdfdisablecommand("setinfo")
pdfdisablecommand("setcatalog")
@@ -176,21 +186,55 @@ function lpdf.includechar (f,c) pdfincludechar(f,c) end
function lpdf.includecharlist(f,c) pdfincludechar(f,c) end -- can be disabled
local frozen = false
+local clevel = 3
+local olevel = 1
function lpdf.setcompression(level,objectlevel,freeze)
if not frozen then
- setcompresslevel(level or 3)
- setobjectcompresslevel(objectlevel or level or 3)
+ if setcompresslevel then
+ setcompresslevel(level or 3)
+ setobjectcompresslevel(objectlevel or level or 3)
+ else
+ clevel = level
+ olevel = objectlevel
+ end
frozen = freeze
end
end
function lpdf.getcompression()
- return getcompresslevel(), getobjectcompresslevel()
+ if getcompresslevel then
+ return getcompresslevel(), getobjectcompresslevel()
+ else
+ return clevel, olevel
+ end
end
-function lpdf.compresslevel () return getcompresslevel () end
-function lpdf.objectcompresslevel() return getobjectcompresslevel() end
+function lpdf.compresslevel()
+ if getcompresslevel then
+ return getcompresslevel()
+ else
+ return clevel
+ end
+end
+
+function lpdf.objectcompresslevel()
+ if getobjectcompresslevel then
+ return getobjectcompresslevel()
+ else
+ return olevel
+ end
+end
+
+function lpdf.setsuppressoptionalinfo(n)
+ if setsuppressoptionalinfo then
+ setsuppressoptionalinfo(n) -- todo
+ end
+end
+
+function lpdf.setomitcidset(v)
+ return pdfsetomitcidset(v)
+end
do
@@ -1653,19 +1697,21 @@ do
function lpdf.procset(dict)
if not a_procset then
- a_procset = pdfreference(pdfimmediateobject(pdfarray {
+ a_procset = pdfarray {
pdfconstant("PDF"),
pdfconstant("Text"),
pdfconstant("ImageB"),
pdfconstant("ImageC"),
pdfconstant("ImageI"),
- }))
+ }
+ a_procset = pdfreference(pdfimmediateobject(tostring(a_procset)))
end
if dict then
if not d_procset then
- d_procset = pdfreference(pdfimmediateobject(pdfdictionary {
+ d_procset = pdfdictionary {
ProcSet = a_procset
- }))
+ }
+ d_procset = pdfreference(pdfimmediateobject(tostring(d_procset)))
end
return d_procset
else