Com pdftk e GNU coreutils
Determine o número de páginas no arquivo PDF e, em seguida, chame shuf
para gerar uma lista aleatória de números de páginas e chamar pdftk
novamente para extrair a sequência de páginas fornecida.
pdftk original.pdf cat $(shuf 1-$(pdftk original.pdf dump_data | awk '$1=="NumberOfPages:" {print $2}')) output randomized.pdf
Com Python e PyPdf
#!/usr/bin/env python2
import random, sys
from pyPdf import PdfFileWriter, PdfFileReader
input = PdfFileReader(sys.stdin)
output = PdfFileWriter()
pages = range(input.getNumPages())
random.shuffle(pages)
for i in pages:
output.addPage(input.getPage(i))
output.write(sys.stdout)'
Uso: /path/to/script <original.pdf >randomized.pdf