使用循环通过 \includegraphics 添加 PDF 页面

使用循环通过 \includegraphics 添加 PDF 页面

我需要包含 PDF 页面\includegraphics。我知道有包\usepackage{pdfpages}。所以这就是我所拥有的:

\begin{picture}(0,0)(75,272.5)
\put(0,0){\frame{\includegraphics[page=i]{pdf_file_name}}}
\end{picture}

我需要这些尺寸,以便 PDF 页面覆盖其所包含的整个页面。现在我想将每一页添加到该 PDF 文件的一行中。我该如何创建一个循环来完成此操作?文件最后一页有键吗?我不知道在这种情况下如何使用\while \for\if。如果您有关于它的进一步文档,那就太好了。

例子:

\for i=1 to i=last_page_of_pdf_file
{
\begin{picture}(0,0)(75,272.5)
\put(0,0){\frame{\includegraphics[page=i]{pdf_file_name}}}
\end{picture}
\newpage
}

我使用 询问了类似的问题\includepdf。-关联

答案1

棘手的部分是获取 PDF 文件中的最大页数。如果文件包含在 pdfTeX 中,则它会设置一个原语,\pdflastximagepages其中包含所包含 PDF 文件中的页数。

因此,以下示例定义了宏\getpdfpages。它将第一页包含在临时框中。然后它将 LaTeX 计数器设置pdfpages为值\pdflastximagepages

循环有多种实现方式。本例仅使用了其中一种,\foreachpgf/ TikZ

\documentclass{article}
\usepackage{graphicx}
\usepackage{pgffor}

\newcounter{pdfpages}
\newcommand*{\getpdfpages}[1]{%
  \begingroup
    \sbox0{% 
      \includegraphics{#1}%
      \setcounter{pdfpages}{\pdflastximagepages}%
    }%
  \endgroup
}

\begin{document}
  \getpdfpages{t.pdf}
  \foreach \x in {1,...,\value{pdfpages}} {
    % your code for page \x of t.pdf goes here
    \includegraphics[page=\x]{t.pdf}%
  }
\end{document}

相关内容