diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3backend-testphase.lua')
-rw-r--r-- | Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3backend-testphase.lua | 143 |
1 files changed, 143 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3backend-testphase.lua b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3backend-testphase.lua new file mode 100644 index 00000000000..f6ae9306076 --- /dev/null +++ b/Master/texmf-dist/doc/latex/pdfmanagement-testphase/l3backend-testphase.lua @@ -0,0 +1,143 @@ +-- +-- This is file `l3backend-testphase.lua', +-- generated with the docstrip utility. +-- +-- The original source files were: +-- +-- l3backend-testphase.dtx (with options: `lua') +-- +-- Copyright (C) 2019-2021 The LaTeX Project +-- +-- It may be distributed and/or modified under the conditions of +-- the LaTeX Project Public License (LPPL), either version 1.3c of +-- this license or (at your option) any later version. The latest +-- version of this license is in the file: +-- +-- https://www.latex-project.org/lppl.txt +-- +-- This file is part of the "LaTeX PDF management testphase bundle" (The Work in LPPL) +-- and all files in that bundle must be distributed together. +-- +-- File: l3backend-testphase.dtx + + + +ltx= ltx or {} +ltx.__pdf = ltx.__pdf or {} +ltx.__pdf.Page = ltx.__pdf.Page or {} +ltx.__pdf.Page.dflt = ltx.__pdf.Page.dflt or {} +ltx.__pdf.Page.Resources = ltx.__pdf.Resources or {} +ltx.__pdf.Page.Resources.Properties = ltx.__pdf.Page.Resources.Properties or {} +ltx.__pdf.Page.Resources.List={"ExtGState","ColorSpace","Pattern","Shading"} +ltx.__pdf.object = ltx.__pdf.object or {} + +ltx.pdf= ltx.pdf or {} -- for "public" functions + +local __pdf = ltx.__pdf +local pdf = pdf + +local function __pdf_backend_Page_gput (name,value) + __pdf.Page.dflt[name]=value +end + +local function __pdf_backend_Page_gremove (name) + __pdf.Page.dflt[name]=nil +end + +local function __pdf_backend_Page_gclear () + __pdf.Page.dflt={} +end + +local function __pdf_backend_ThisPage_gput (page,name,value) + __pdf.Page[page] = __pdf.Page[page] or {} + __pdf.Page[page][name]=value +end + +local function __pdf_backend_ThisPage_gpush (page) + local token="" + local t = {} + local tkeys= {} + for name,value in pairs(__pdf.Page.dflt) do + t[name]=value + end + if __pdf.Page[page] then + for name,value in pairs(__pdf.Page[page]) do + t[name] = value + end + end + -- sort the table to get reliable test files. + for name,value in pairs(t) do + table.insert(tkeys,name) + end + table.sort(tkeys) + for _,name in ipairs(tkeys) do + token = token .. "/"..name.." "..t[name] + end + return token +end + +function ltx.__pdf.backend_ThisPage_gput (page,name,value) -- tex.count["g_shipout_readonly_int"] + __pdf_backend_ThisPage_gput (page,name,value) +end + +function ltx.__pdf.backend_ThisPage_gpush (page) + pdf.setpageattributes(__pdf_backend_ThisPage_gpush (page)) +end + +function ltx.__pdf.backend_Page_gput (name,value) + __pdf_backend_Page_gput (name,value) +end + +function ltx.__pdf.backend_Page_gremove (name) + __pdf_backend_Page_gremove (name) +end + +function ltx.__pdf.backend_Page_gclear () + __pdf_backend_Page_gclear () +end + +local Properties = ltx.__pdf.Page.Resources.Properties +local ResourceList= ltx.__pdf.Page.Resources.List +local function __pdf_backend_PageResources_gpush (page) + local token="" + if Properties[page] then +-- we sort the table, so that the pdf test works + local t = {} + for name,value in pairs (Properties[page]) do + table.insert (t,name) + end + table.sort (t) + for _,name in ipairs(t) do + token = token .. "/"..name.." ".. Properties[page][name] + end + token = "/Properties <<"..token..">>" + end + for i,name in ipairs(ResourceList) do + if ltx.__pdf.Page.Resources[name] then + token = token .. "/"..name.." "..ltx.pdf.object_ref("Page/Resources/"..name) + end + end + return token +end + +-- the function is public, as I probably need it in tagpdf too ... +function ltx.pdf.Page_Resources_Properties_gput (page,name,value) -- tex.count["g_shipout_readonly_int"] + Properties[page] = Properties[page] or {} + Properties[page][name]=value + pdf.setpageresources(__pdf_backend_PageResources_gpush (page)) +end + +function ltx.pdf.Page_Resources_gpush(page) + pdf.setpageresources(__pdf_backend_PageResources_gpush (page)) +end + +function ltx.pdf.object_ref (objname) + if ltx.__pdf.object[objname] then + local ref= ltx.__pdf.object[objname] + return ref + else + return "false" + end +end +-- +-- End of File `l3backend-testphase.lua'. |