Hello Hans,

thank you for implementation 'figures.getinfo()'; two points:

1. Code:

----
\startluacode

local n = 
"x:/Users/MMi/Akce/I-6_Krusovice.DSP-ZDS/Admin/Jednani/2017-07-07-SU-Rakovnik/ZJ.pdf"
local d = figures.getinfo(n)
...
----

prints (probably to-string converted) resulting table:

"
close source    > level 3, order 8, name 'd://Lukas/ConTeXt/Styles/PxLetter.sty'
table={
 ["request"]={
  ["arguments"]=false,
  ["cache"]=false,
  ["color"]=false,
  ["controls"]=false,
  ["conversion"]=false,
  ["display"]=false,
  ["format"]=false,
  ["height"]=false,
  ["label"]=false,
  ["mask"]=false,
  
["name"]="x:/Users/MMi/Akce/I-6_Krusovice.DSP-ZDS/Admin/Jednani/2017-07-07-SU-Rakovnik/ZJ.pdf",
...
 },
 ["status"]={
...
 },
 ["used"]={
  ["colordepth"]=0,
  ["depth"]=0,
  ["format"]="pdf",
  
["fullname"]="x:/Users/MMi/Akce/I-6_Krusovice.DSP-ZDS/Admin/Jednani/2017-07-07-SU-Rakovnik/ZJ.pdf",
  ["height"]=55380991,
...
 },
}
"

- Is it intend? Or residual debugging status?


2. Is there a Ctx built-in converter which would convert width and height (e.g. here: 
["height"]=55380991) from "height units" to milimeters?

Best regards,

Lukas


On Mon, 14 Aug 2017 16:55:09 +0200, Hans Hagen <pra...@wxs.nl> wrote:

On 8/14/2017 1:08 PM, Procházka Lukáš Ing. wrote:
Hello,

is there a way how to get the following info from a PDF file via Lua/Ctx
API?:

- first: number of pages of the PDF,

- next: for each page: get width, height and orientation
(portrait/landscape) or rotation (+90,+ 180, +270 or so) of i-th page.

this probably has come up several times now, anyway


\getfiguredimensions[test.pdf]
\dorecurse {\noffigurepages} {
     \getfiguredimensions[test.pdf][page=#1]
     \figurenaturalwidth
,\figurenaturalheight,\figureorientation,\figurerotation\par
}

in lua you can either use the img library (see luatex manual) or context
helpers

         local data = figures.push("foo.pdf")
         figures.identify()
         figures.check()
         figures.pop()
        inspect(data)

i'll add:

function figures.getinfo(name,page)
     if type(name) == "string" then
         name = { name = name, page = page }
     end
     if name.name then
         local data = figures.push(name)
         figures.identify()
         figures.check()
         figures.pop()
         return data
     end
end

so that one can do

local n = "ms.pdf"
local d = figures.getinfo(n)

if d then
     for i=1,d.used.pages do
         local p = figures.getinfo(n,i)
         if p then
             local u = p.used
             print(u.width,u.height,u.orientation)
         end
     end
end

etc etc




--
Ing. Lukáš Procházka | mailto:l...@pontex.cz
Pontex s. r. o.      | mailto:pon...@pontex.cz | http://www.pontex.cz | 
IDDS:nrpt3sn
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
___________________________________________________________________________________

Reply via email to