Procházka Lukáš Ing. schrieb am 06.12.18 um 11:20:
Hello,

I'm using the following code, mentioned here some time ago, to get some info about PDF:

----
\startluacode
figures.getinfo = function(name, page)
     if type(name) == "string" then
         name = { name = name, page = page }
     end
     if name.name then
         local data = figures.push(name)

         --figures.identify()
local ok, res = pcall(figures.identify)
print(">>1", ok, res)

         --figures.check()
local ok, res = pcall(figures.check)
print(">>2", ok, res)

         figures.pop()
         return data
     end
end

local data = figures.getinfo("NonExisting.pdf")

\stopluacode
----

The problem is that once the PDF file doesn't exist, the function causes ConTeXt to exit, even when I enclose 'figure.check()' into the 'pcall' (to be handled like try/catch mechanism).

Is there a way so that the function 'figures.getinfo()' does't exit ConTeXt, it just returns 'nil', or even gives info which directories (or even which file types) were searched?

You can use the \doifelsefigure command for a simple check


\setupexternalfigure[location={local,global,default}]

\starttext

\doifelsefigure{cow}{YES}{NO}

\doifelsefigure{mill}{YES}{NO}

\doifelsefigure{bridge}{YES}{NO}

\stoptext


or the following stripped down version of the underlying Lua
code of the \doifelsefigure command


\setupexternalfigure[location={local,global,default}]

\starttext

\startluacode

local cow = figures.getinfo("cow")

if figures.get("status","status",0) == 0 then
  context("NO")  context.par()
else
  context("YES") context.par()
end

local mill = figures.getinfo("mill")

if figures.get("status","status",0) == 0 then
  context("NO")  context.par()
else
  context("YES") context.par()
end

local bridge = figures.getinfo("bridge")

if figures.get("status","status",0) == 0 then
  context("NO")  context.par()
else
  context("YES") context.par()
end

\stopluacode

\stoptext


Wolfgang
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://context.aanhet.net
archive  : https://bitbucket.org/phg/context-mirror/commits/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to