随机重新排序 PDF 文档中的页面

随机重新排序 PDF 文档中的页面

我正在寻找一系列命令来随机化现有 PDF 文档中的页面顺序。

答案1

事实证明,有一个很好的 Python 库 pyPDF,可以在以下脚本中使用它来随机化 PDF 文档中页面的顺序。

下面的脚本,称为mixpdf,在被语句调用时,会创建一个输入 PDF 文件的副本,其中页面是随机重新排序的mixpdf myinputfile.pdf

#!/usr/bin/python

import sys
import random

from pyPdf import PdfFileWriter, PdfFileReader

# read input pdf and instantiate output pdf
output = PdfFileWriter()
input1 = PdfFileReader(file(sys.argv[1],"rb"))

# construct and shuffle page number list
pages = list(range(input1.getNumPages()))
random.shuffle(pages)

# display new sequence
print 'Reordering pages according to sequence:'
print pages

# add the new sequence of pages to output pdf
for page in pages:
    output.addPage(input1.getPage(page))

# write the output pdf to file
outputStream = file(sys.argv[1]+'-mixed.pdf','wb')
output.write(outputStream)
outputStream.close()

答案2

为此,我建议qpdf使用shufbash 脚本

#!/usr/bin/bash

INPUT="${1}"
OUTPUT=$(basename "${INPUT}" .pdf)-rand.pdf
NPAGES=$(qpdf --show-npages "${INPUT}")
RANDOM_PERMUTATION=$(shuf -i 1-${NPAGES} | xargs | tr ' ' ',')

qpdf --empty --pages "${INPUT}" ${RANDOM_PERMUTATION} -- "${OUTPUT}"

相关内容