【问题标题】:Modify existing PDF to add "Page N of NNN" footer修改现有 PDF 以添加“NNN 的第 N 页”页脚
【发布时间】:2015-08-03 09:57:24
【问题描述】:

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

我正在寻找这种格式:

  • 第 1 页,共 2 页

  • 第 2 页,共 2 页

【问题讨论】:

    标签: pdf printing ghostscript postscript pdftk


    【解决方案1】:

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

    创建页脚

    您可以使用 LibreOffice、OpenOffice、MS Winword 等任何您喜欢的方式来创建一个包含空页面内容但对页面进行编号的多页文件。只需确保您将获得 PDF 输出,并且您的页码正是您想要的。

    我将在这里借助 Ghostscript 创建页脚。以下命令(可以很容易地放入 shell 脚本中,您可以相应地对其进行参数化,以便使用正确数量的total)。这个使用 595x842 PostScript 点(也称为 A4 大小)的页面大小,以及 12 pt 大小的字体 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"
    

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

    使用pdftk 覆盖页码

    下一个命令使用pdftkmultistamp 将页码文件覆盖到原始文件:

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-30
    • 1970-01-01
    • 1970-01-01
    • 2020-07-23
    • 2016-07-27
    • 2019-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多