Randomly reorder pages in PDF document

2

1

I'm looking for a series of commands to randomize the order of pages in an existing PDF document.

synaptik

Posted 2013-10-07T23:09:33.147

Reputation: 265

See also How can I shuffle pages from a PDF file in a random order?  (on Unix&Linux)

– G-Man Says 'Reinstate Monica' – 2015-06-14T21:38:42.083

Answers

2

Turns out, there's a nice python library pyPDF which can be used in the following script to randomize the order of pages in a PDF document.

The script below, call it mixpdf, creates a copy of an input PDF file with randomly reordered pages when called by the statement 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()

synaptik

Posted 2013-10-07T23:09:33.147

Reputation: 265