修改现有PDF以添加“NNN页面N”页脚

时间:2015-05-21 15:54:10

标签: pdf printing ghostscript postscript pdftk

如何从命令行(或最好从Ruby)使用pdftk将页码添加到预先存在的PDF的底部?

我正在寻找这种格式:

  • 第1页,共2页

  • 第2页,共2页

1 个答案:

答案 0 :(得分:6)

如果您想在pdftk的帮助下执行此操作,可以使用multistampmultibackground操作执行此操作。但首先,您必须准备一份文档(使用您选择的软件),在空白页面上创建Page X of Y页脚(PDF格式)。

创建页脚

您可以使用LibreOffice,OpenOffice,MS Winword,...您喜欢创建包含空页面内容但页面编号的多页文件。只需确保您将获得PDF输出,并且您的页码正是您想要的。

我将在这里使用Ghostscript创建页脚。以下命令(可以很容易地放入shell脚本中,并且可以相应地对其进行参数化,以便使用正确数量的total)。这个使用的页面大小为595x842 PostScript点(a.k.a. A4尺寸),字体Helvetica为12磅尺寸:

total=100
gs -o 100pagenumbers.pdf    \
   -sDEVICE=pdfwrite        \
   -g5950x8420              \
   -c "/Helvetica findfont  \
       12 scalefont setfont \
       1 1  ${total} {      \
       /PageNo exch def     \
       450 20 moveto        \
       (Page ) show         \
       PageNo 3 string cvs  \
       show                 \
       ( of ${total}) show  \
       showpage             \
       } for"

这将创建一个100页的PDF文件 100pagenumbers.pdf

使用pdftk覆盖页码

下一个命令使用pdftkmultistamp将页码编号文件重叠为原始文件:

pdftk original.pdf              \
  multistamp 100pagenumbers.pdf \
  output pages-numbered.pdf