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

jrh*_*cks 5 printing pdf postscript ghostscript pdftk

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

我正在寻找这种格式:

  • 第1页,共2页

  • 第2页,共2页

Kur*_*fle 7

如果你想借助pdftk它来做这件事,你可以使用multistampmultibackground操作.但首先,您必须准备一份文档(使用您选择的软件),Page X of Y在空白页面上创建页脚(如PDF).

创建页脚

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

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

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"
Run Code Online (Sandbox Code Playgroud)

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

使用pdftk叠加的页码

下一个命令使用pdftkmultistamp页面编号文件覆盖到原来的:

pdftk original.pdf              \
  multistamp 100pagenumbers.pdf \
  output pages-numbered.pdf
Run Code Online (Sandbox Code Playgroud)