Page 1 of the input file Page 1 of output Page 2 of output +------------------------------+ +---------------+ +---------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Page 1 | Page 2 | | Page 1 | | Page 2 | | of the book | of the book | | of the book| | of the book| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +------------------------------+ +---------------+ +---------------+ +-------> Page 2 of the input file +-------> Page 3 of output Page 4 of output +------------------------------+ +---------------+ +---------------+ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Page 3 | Page 4 | | Page 3 | | Page 4 | | of the book | of the book | | of the book| | of the book| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | +------------------------------+ +---------------+ +---------------+So to do this, I extracted the left sides as page-0.pdf, and the right sides as page-1.pdf to the folder out, and the n joined these together:
#!/bin/bash set -eux # Default resolution is 720 dpi # For points, use 72 dpi # The actual pdf was 297 x 215 mm --(720 dpi)----> 8418 x 6094 pixels # I only want to extract half of it -------------> 4209 x 6094 # For the right page, I need an offset -(72 dpi)-> -421.0 0 INPUT_FILE="$1" rm -rf ./out mkdir out ghostscript -o "out/%d-0.pdf" -sDEVICE=pdfwrite -g4209x6094 \ -c "<</PageOffset [0 0]>> setpagedevice" -f "$INPUT_FILE" ghostscript -o "out/%d-1.pdf" -sDEVICE=pdfwrite -g4209x6094 \ -c "<</PageOffset [-421.0 0]>> setpagedevice" -f "$INPUT_FILE" ghostscript -o "singlepage-$INPUT_FILE" -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook \ $(ls out/* | sort -V) rm -rf ./outReferences:
http://superuser.com/questions/54054/convert-pdf-2-sides-per-page-to-1-side-per-page