
我嘗試了有關該主題的所有答案,但無法找到工作。
這個 MWE 工作正常,但只能在 pdflatex 中工作,因為\pdfximage
在 lualatex 中不起作用。
\documentclass[12pt]{article}%
\usepackage{graphicx}
\begin{document}
\pdfximage{index.pdf}%
\the\pdflastximagepages
\end{document}
答案在取得外部PDF的頁數
不起作用,這是上面連結中的程式碼:
\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}
現在,lulatex foo.tex
給出
(/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}
使用獲取外部PDF文件的pdf頁數的正確方法是什麼盧拉泰克斯?
在 Linux 上使用 TL 2019。
答案1
pdftex 原語並沒有消失,它們只是被重新命名:\pdfximage
is\saveimageresource
和\pdflastximagepages
is \lastsavedimageresourcepages
。所以:
\documentclass[12pt]{article}%
\usepackage{graphicx}
\begin{document}
\saveimageresource{index.pdf}%
\the\lastsavedimageresourcepages
\end{document}
或者您可以載入該luatex85
套件,然後使用 pdftex 原語,以便使用 pdflatex 和 lualatex 編譯該文件。
答案2
庫epdf
(基於 poppler)已替換為pdfe
庫(基於 pplib)。另外你沒有定義\luatexluaescapestring
,你一定是這個意思\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}