* 'figures.getinfo()' not to exit ConTeXt
@ 2018-12-06 10:20 Procházka Lukáš Ing.
2018-12-06 10:23 ` luigi scarso
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Procházka Lukáš Ing. @ 2018-12-06 10:20 UTC (permalink / raw)
To: ConTeXt
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?
TIA.
Best regards,
Lukas
--
Ing. Lukáš Procházka | mailto:LPr@pontex.cz
Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz | IDDS: nrpt3sn | IČO: 40763439
Bezová 1658
147 14 Praha 4
Mob.: +420 702 033 396
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 'figures.getinfo()' not to exit ConTeXt
2018-12-06 10:20 'figures.getinfo()' not to exit ConTeXt Procházka Lukáš Ing.
@ 2018-12-06 10:23 ` luigi scarso
2018-12-06 10:57 ` Procházka Lukáš Ing.
2018-12-06 11:05 ` Hans van der Meer
2018-12-06 11:25 ` Wolfgang Schuster
2 siblings, 1 reply; 6+ messages in thread
From: luigi scarso @ 2018-12-06 10:23 UTC (permalink / raw)
To: mailing list for ConTeXt users
[-- Attachment #1.1: Type: text/plain, Size: 1455 bytes --]
On Thu, Dec 6, 2018 at 11:17 AM Procházka Lukáš Ing. <LPr@pontex.cz> wrote:
> 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?
>
> TIA.
>
> something like that (untested), eventaully to be wrapped in a your
function
local fileone = "NonExisting.pdf"
local data
if not lfs.isfile(fileone) then
report("unknown file %a",fileone)
else
data = figures.getinfo("NonExisting.pdf")
end
--
luigi
[-- Attachment #1.2: Type: text/html, Size: 2196 bytes --]
[-- Attachment #2: Type: text/plain, Size: 492 bytes --]
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 'figures.getinfo()' not to exit ConTeXt
2018-12-06 10:23 ` luigi scarso
@ 2018-12-06 10:57 ` Procházka Lukáš Ing.
2018-12-06 10:57 ` luigi scarso
0 siblings, 1 reply; 6+ messages in thread
From: Procházka Lukáš Ing. @ 2018-12-06 10:57 UTC (permalink / raw)
To: mailing list for ConTeXt users
Hello Luigi,
On Thu, 06 Dec 2018 11:23:25 +0100, luigi scarso <luigi.scarso@gmail.com> wrote:
> On Thu, Dec 6, 2018 at 11:17 AM Procházka Lukáš Ing. <LPr@pontex.cz> wrote:
>
>> 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?
>>
>> TIA.
>>
>> something like that (untested), eventaully to be wrapped in a your
> function
> local fileone = "NonExisting.pdf"
> local data
> if not lfs.isfile(fileone) then
> report("unknown file %a",fileone)
well, yes, this should work; but \externalfigure uses a mechanism to lookup for a file which combines paths specified by "location=", "directory=", "order=" and maybe some more.
And whilst \externalfigure should find a file (whose location may not be known exactly, it just may use e.g. "directory=" spec), simple "lfs.isfile(fileone)" could not find the file since the exact path has not been specified.
IOW, I need to combine searching-for-file mechanism which is used inside \externalfigure with 'figures.getinfo()' so the 'getinfo()' should return 'nil' when no file (being specified like in \externalfigure, i.e. with no exact path, even without extension) is found.
BTW: Ctx tells me "attempt to call a nil value (global 'report')" on "report("unknown file %a",fileone)" - do I have to enable/load something?
Lukas
> else
> data = figures.getinfo("NonExisting.pdf")
> end
>
--
Ing. Lukáš Procházka | mailto:LPr@pontex.cz
Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz | IDDS: nrpt3sn | IČO: 40763439
Bezová 1658
147 14 Praha 4
Mob.: +420 702 033 396
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 'figures.getinfo()' not to exit ConTeXt
2018-12-06 10:57 ` Procházka Lukáš Ing.
@ 2018-12-06 10:57 ` luigi scarso
0 siblings, 0 replies; 6+ messages in thread
From: luigi scarso @ 2018-12-06 10:57 UTC (permalink / raw)
To: mailing list for ConTeXt users
[-- Attachment #1.1: Type: text/plain, Size: 345 bytes --]
On Thu, Dec 6, 2018 at 11:54 AM Procházka Lukáš Ing. <LPr@pontex.cz> wrote:
> Hello Luigi,
>
> BTW: Ctx tells me "attempt to call a nil value (global 'report')" on
> "report("unknown file %a",fileone)" - do I have to enable/load something?
>
> should be something like
local report = logs.reporter("my application")
--
luigi
[-- Attachment #1.2: Type: text/html, Size: 757 bytes --]
[-- Attachment #2: Type: text/plain, Size: 492 bytes --]
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 'figures.getinfo()' not to exit ConTeXt
2018-12-06 10:20 'figures.getinfo()' not to exit ConTeXt Procházka Lukáš Ing.
2018-12-06 10:23 ` luigi scarso
@ 2018-12-06 11:05 ` Hans van der Meer
2018-12-06 11:25 ` Wolfgang Schuster
2 siblings, 0 replies; 6+ messages in thread
From: Hans van der Meer @ 2018-12-06 11:05 UTC (permalink / raw)
To: NTG ConTeXt
[-- Attachment #1.1: Type: text/plain, Size: 2051 bytes --]
Are you sure that data is not nil here?
If so, this function returns nil.
dr. Hans van der Meer
> On 6 Dec 2018, at 11:20, Procházka Lukáš Ing. <LPr@pontex.cz> wrote:
>
> 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?
>
> TIA.
>
> Best regards,
>
> Lukas
>
>
> --
> Ing. Lukáš Procházka | mailto:LPr@pontex.cz
> Pontex s. r. o. | mailto:pontex@pontex.cz | http://www.pontex.cz | IDDS: nrpt3sn | IČO: 40763439
> Bezová 1658
> 147 14 Praha 4
>
> Mob.: +420 702 033 396
>
> ___________________________________________________________________________________
> 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
> ___________________________________________________________________________________
[-- Attachment #1.2: Type: text/html, Size: 5217 bytes --]
[-- Attachment #2: Type: text/plain, Size: 492 bytes --]
___________________________________________________________________________________
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: 'figures.getinfo()' not to exit ConTeXt
2018-12-06 10:20 'figures.getinfo()' not to exit ConTeXt Procházka Lukáš Ing.
2018-12-06 10:23 ` luigi scarso
2018-12-06 11:05 ` Hans van der Meer
@ 2018-12-06 11:25 ` Wolfgang Schuster
2 siblings, 0 replies; 6+ messages in thread
From: Wolfgang Schuster @ 2018-12-06 11:25 UTC (permalink / raw)
To: mailing list for ConTeXt users, Procházka Lukáš Ing.
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
___________________________________________________________________________________
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2018-12-06 11:25 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-06 10:20 'figures.getinfo()' not to exit ConTeXt Procházka Lukáš Ing.
2018-12-06 10:23 ` luigi scarso
2018-12-06 10:57 ` Procházka Lukáš Ing.
2018-12-06 10:57 ` luigi scarso
2018-12-06 11:05 ` Hans van der Meer
2018-12-06 11:25 ` Wolfgang Schuster
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).