
Tentei todas as respostas que encontrei sobre esse tópico e não consigo fazer nada funcionar.
Este MWE funciona bem, mas apenas em pdflatex, já que \pdfximage
não funciona em lualatex.
\documentclass[12pt]{article}%
\usepackage{graphicx}
\begin{document}
\pdfximage{index.pdf}%
\the\pdflastximagepages
\end{document}
Respostas emObtenha o número de páginas do PDF externo
não funciona, aqui está o código do link acima:
\documentclass{article}
\newcommand*{\pdfnumberofpages}[1]{%
\directlua{%
local doc = epdf.open("\luatexluaescapestring{#1}")
local pages
if (doc) then
pages = doc:getCatalog():getNumPages()
else
pages = 0
end
tex.write(pages)
}%
}
\begin{document}
Number of pages: \pdfnumberofpages{index.pdf}
\end{document}
Agora, lulatex foo.tex
dá
(/usr/local/texlive/2019/texmf-dist/tex/latex/base/size10.clo)) (./foo.aux)
! Undefined control sequence.
\pdfnumberofpages ...open("\luatexluaescapestring
{#1}") local pages if (doc...
l.17 Number of pages: \pdfnumberofpages{test.pdf}
Qual é a maneira correta de obter o número de páginas PDF de um arquivo PDF externo usandolualatex?
Usando TL 2019 no Linux.
Responder1
As primitivas do pdftex não desapareceram, apenas foram renomeadas: \pdfximage
is \saveimageresource
e \pdflastximagepages
is \lastsavedimageresourcepages
. Então:
\documentclass[12pt]{article}%
\usepackage{graphicx}
\begin{document}
\saveimageresource{index.pdf}%
\the\lastsavedimageresourcepages
\end{document}
Ou você pode carregar o luatex85
pacote e então usar as primitivas pdftex, para que o documento seja compilado com pdflatex e lualatex.
Responder2
A epdf
biblioteca (baseada em poppler) foi substituída pela pdfe
biblioteca (baseada em pplib). Além disso, você não definiu \luatexluaescapestring
, você deve ter querido dizer \luaescapestring
.
\documentclass{article}
\newcommand*{\pdfnumberofpages}[1]{%
\directlua{%
local pages = 0
local doc = pdfe.open("\luaescapestring{#1}")
if doc then
pages = pdfe.getnofpages(doc)
pdfe.close(doc)
end
tex.write(pages)
}%
}
\begin{document}
Number of pages: \pdfnumberofpages{index.pdf}
\end{document}