如何为页面大小不同的 pdf 文件添加页码

如何为页面大小不同的 pdf 文件添加页码

我想在 pdf 页面的每一页底部添加页码。页​​面大小不同

我在每页底部留出 15pt。

以下是我的 pdf 的样子

在此处输入图片描述

我努力了

\documentclass{article}
\usepackage{pdfpages}
\usepackage[footskip = 14mm,showframe]{geometry}

\usepackage{fancyhdr}
\fancyhf{} 
\cfoot{\fontsize{20}{20}\selectfont \thepage}

\begin{document}
\eject \pdfpagewidth=432pt \pdfpageheight=179.64pt
\includepdfmerge[fitpaper,pagecommand={\thispagestyle{fancy}}]{/home/simha/latex/test.pdf, 1743}
\eject \pdfpagewidth=432pt \pdfpageheight=71.63999999999999pt
\includepdfmerge[fitpaper,pagecommand={\thispagestyle{fancy}}]{/home/simha/latex/test.pdf, 1744}
\eject \pdfpagewidth=432pt \pdfpageheight=192.12pt
\includepdfmerge[fitpaper,pagecommand={\thispagestyle{fancy}}]{/home/simha/latex/test.pdf, 1745}
\end{document}

我得到的是

在此处输入图片描述

当页面大小不同时如何在底部添加页码

如果所有页面大小相同,则以下代码有效。此处我的整个文档为 432pt、226pt(宽、高)。使用 footskip=14mm,我可以将页码精确地定位到我想要的位置。

\batchmode
\documentclass[a4paper,]{article}
\usepackage[
    papersize={432pt, 226pt},
    footskip = 14mm,
    ]{geometry}
\usepackage[utf8]{inputenc}
\usepackage{pdfpages}

\usepackage{fancyhdr}
\fancyhf{} 
\cfoot{\fontsize{20}{20}\selectfont \thepage}
\begin{document}
\the\textwidth; \the\textheight
\includepdfmerge[pagecommand={\thispagestyle{fancy}}]{/var/tmp/pdfjam-7FXkbO/source-1.pdf,-}
\end{document}

我得到的结果如下

在此处输入图片描述

答案1

我的基本想法是将 包装tikzpicture在 中pagecommand\includepdfmerge此外,您还需要remember picture, overlay在 pdf 上写入的参数和pagenodestikz 的函数来获取当前页面底部的位置。此机制应该能够处理所包含 pdf 的不同页面大小,并将页码始终放在底部(将参数设置yshift为适合您的值)。

基于您的代码的 MWE

\documentclass{article}
\usepackage{pdfpages, tikz}

\begin{document}
\includepdfmerge[fitpaper,pagecommand={
   \begin{tikzpicture}[remember picture, overlay]
     \node[yshift=15pt] at (current page.south) {\thepage};
   \end{tikzpicture}}]{/var/tmp/pdfjam-7FXkbO/source-1.pdf,-}
\end{document}

答案2

这是一个incgraph解决方案:

  • 在第一个例子中,页码放在图片里面,
  • 在第二个例子中,页码放在图片外面,因此扩大了页面尺寸。
\documentclass{article}
\usepackage{incgraph}
\usepackage{tikz}

\igrset{
  my page number/.style={
    overlay={
      \node[anchor=south] at ([yshift=5pt]page.south) {\thepage};
    }
  }
}

\begin{document}
content
\incgraph[my page number][page=1]{example-image-a}

\igrpage{%
  \begin{tikzpicture}
    \node[inner sep=0pt] (pic) {\includegraphics{example-image-b}};
    \node at ([yshift=-10pt]pic.south) {\thepage};
  \end{tikzpicture}%
}
\end{document}

第一个例子 第二个例子

答案3

经过一番努力后,我可以通过以下方式做到这一点。

答案基于更改文档中间的页面大小:花式页眉和页脚水平宽度

但我仍然需要努力,最终使用left=0mm,right=0mm,top=0mm, bottom=0mm,footskip=1mm完成\newgeometry了工作

showframe帮助我可视化文本区域。

问题是 fancyhdr 不适应中间文档页面大小的变化。然后理解几何包是关键

但我还是一知半解。并在脚本中留下了一些问题作为注释。我不知道它们的用途是什么。但经过反复尝试,我明白它们是必需的。

\documentclass{scrartcl} % THIS IS REQUIRED
% QUESTION:
% \documentclass{article} pushes the pagenumber down
% I dont know the reason
\usepackage{geometry}
\usepackage{pdfpages}
\usepackage[automark,headsepline,footsepline]{scrlayer-scrpage} % THIS IS REQUIRED
% QUESTION:
% without the above line the page number is pushed down /out of the page
% I dont know the reason
% \usepackage{showframe}

\begin{document}

\newgeometry{layoutwidth  = 432pt,
layoutheight = 179.64pt,
left=0mm,right=0mm,top=0mm, bottom=0mm,footskip=1mm}
\includepdfmerge[fitpaper,pagecommand={\thispagestyle{plain}}]{/home/simha/latex/test.pdf, 1743}

\newgeometry{layoutwidth  = 432pt,
layoutheight = 71.63999999999999pt,
left=0mm,right=0mm,top=0mm, bottom=0mm,footskip=1mm}
\includepdfmerge[fitpaper,pagecommand={\thispagestyle{plain}}]{/home/simha/latex/test.pdf, 1744}

\newgeometry{layoutwidth  = 432pt,
layoutheight = 192.12pt,
left=0mm,right=0mm,top=0mm, bottom=0mm,footskip=1mm}
\includepdfmerge[fitpaper,pagecommand={\thispagestyle{plain}}]{/home/simha/latex/test.pdf, 1745}
\end{document}

输出为

在此处输入图片描述

另外,对于如何在具有不同页面大小的 pdf 中添加底部空间(例如,页码为 15 毫米),然后添加页码,请参阅答案 https://tex.stackexchange.com/a/556945/221200

相关内容