Hello,

I am currently trying to replace the Java Code of pax to Lua
to get a more portable version, which is easier to install.
Therefore, I am experimenting with the epdf library of LuaTeX

BTW, the manual has a typo:
  <Catalog>:isOK() => <Catalog>:isOk()

The main problem is getting the destinations of a PDF document:

<Catalog>:getDests() *always* returns the null object:

Test file "getdests.lua":

  filename = arg[1]
  print('filename:      ' .. filename)
  doc = epdf.open(filename)
  catalog = doc:getCatalog()
  dests = catalog:getDests()
  print('type(dests):   ' .. type(dests))
  print('getType():     ' .. dests:getType())
  print('getTypeName(): ' .. dests:getTypeName())

Running: texlua getdests.lua filetotest.pdf

filetotest.tex, generated by "luatex --ini filetotest.tex":

  \catcode`\{=1
  \catcode`\}=2
  \ifx\directlua\undefined
  \else
    \directlua{tex.enableprimitives('', tex.extraprimitives())}
  \fi
  \pdfoutput=1
  \pdfobjcompresslevel=0
  \shipout\hbox{%
    \pdfdest name{mydest} xyz\relax\vrule width 10bp height 10bp\relax
  }
  \end

filetotest.pdf contains:

  6 0 obj
  <</Names[(mydest) 4 0 R]/Limits[(mydest) (mydest)]>>
  endobj
  7 0 obj
  <</Dests 6 0 R>>
  endobj
  8 0 obj
  <</Type/Catalog/Pages 5 0 R/Names 7 0 R>>
  endobj

Why does getDests() returns the null object?
Do I have to parse the destination name tree manually to get
the destination names?

Yours sincerely
  Heiko Oberdiek

Reply via email to