澄清:

澄清:

目标是使用枚举一组 .pdf 文件命令行工具。理想情况下,免费的开源包将有助于在 Catalina 和 Ubuntu 20.04 上执行枚举任务。

假设一组文件:

  1. 文件1.pdf
  2. 文件2.pdf
  3. 文件3.pdf

算法:

  1. 仅将计数器初始化为 100 一次:永远不要重置为 100
  2. 从 file1.pdf 的第一页开始:
  3. 用“myText [counter]”枚举(标记)右下角
  4. 增加计数器并标记下一页
  5. 如果文件的最后一页已被枚举,则对下一个文件重复该过程,直到枚举所有文件的所有页。下一个文件将继续使用相同的计数器,该计数器不会重置为 100。

实现目标的解决方案/示例受到赞赏。

澄清:

所有页面都应具有唯一的页码:如果每个文档有 10 页,则最后页码将为 129。

答案1

修订问题的更新...

#!/bin/bash

label="$1"    #the label to be added to the footer
from=$2       #the starting number

#for each pdf in this directory
for input in *.pdf; do

  #compose an output file name
  output=${input%.*}.numbered.pdf
  
  #count the pages
  pagenum=$(pdftk "$input" dump_data | grep "NumberOfPages" | cut -d":" -f2)
  
  #calculate the last page no
  to=$(($from+$pagenum-1))
              
  (echo -e ".nr FM 0.125i\n.ds CH"; for s in $(seq -f "%05g" $from $to); do 
       echo -e ".ds RF $label $s \n.bp +1"; done) | 
       groff -ms -Tpdf | 
       pdftk "$input" multistamp - output "$output" 

  #get ready for the next file  
  from=$((to +1))
done

编写一个包含空白页面的基本文档,除了包含所需文本的groff -ms右页脚之外,其中是我用 0 填充的页码.ds RF$label $s$sseq -f "%05g"

groff -ms宏应用页眉,该页眉被抑制.ds CH.nr FM 0.125减少页脚边距高度,因此每个“页面”只是带有分页符的页脚.bp +1

将此文本通过管道传输到创建一个 pdf ,groff -Tpdf然后pdftk通过 stdin管道传输到输入文件,最后写入输出文件。-multistamped

如果这是一个黑客行为,我向任何真正知道如何groff正确使用的人致歉……直到今天我什至都没有看过它。

相关内容