我使用以下命令从一组 PNG 文件生成 PDF:
convert -- $(ls -v -- src/*.png) out/book.pdf
其中有一些文件的名称如-03.png
,我需要比其他文件具有更小的页码。但我得到一个 PDF,其中 -01 页码为 1,-02 页码为 2,等等,01 从页码 6 开始。
PDF 是扫描书籍,其中包含一些不包含在页码中的元素,例如目录等。我记得见过一些 PDF,在正常的阿拉伯数字开始之前有特殊的页码,例如 vii
。
我尝试使用 -scene -5
为页码添加偏移量,但这并没有改变结果。
那么我应该怎么做才能使页面“01.png”的页码为1等,而之前的页面有一些其他数字(负数或拉丁文等)并出现在文档的开头?
最佳答案
首先,您想要对文件进行数字排序,计算可选的减号,但您不会使用显示的命令来执行此操作。
其次,您讨论了 PDF 页面的PageLabels,您可以使用 Ghostscript 和 pdfmark
运算符添加它。
尝试这个命令:
ls src/*.png | \
sort -n | \
convert @- pdf:- | \
gs \
-sDEVICE=pdfwrite \
-o out/book.pdf \
-c '[{Catalog}<</PageLabels<</Nums[0<</P(-3)>>1<</P(-2)>>2<</P(-1)>>3<</S/D>>]>>>>/PUT pdfmark' \
-f -
它包含 3 个页面 -3、-2 和 -1,后面是标记为 1、2、3 等的任意数量的页面。根据您的需要进行修改。
关于pdf - ImageMagick 生成带有特殊页码的 pdf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19877257/