14

I have a PDF that consists of several hundred pages of bilingual text. Since I need to use OCR on each language separately, I want to grab the even and odd pages and make two separate PDFs, using convert or ghostscript. The language I want to do first is on the odd-numbered pages. What convert or ghostscript command can I use to grab these and write them to a new file?

don_crissti
  • 79,330
  • 30
  • 216
  • 245
ixtmixilix
  • 13,040
  • 27
  • 82
  • 118

5 Answers5

19

I'd do it with pdftk.

pdftk A=all.pdf cat Aodd output odd.pdf
pdftk A=all.pdf cat Aeven output even.pdf
Gilles 'SO- stop being evil'
  • 807,993
  • 194
  • 1,674
  • 2,175
9

pdftk is not Open Source any longer, unfortunately. (That is a long story.)

Plain gs engine can do it, though:

  gs -sDEVICE=pdfwrite     \
     -sPageList=odd         \
     -sOutputFile=odd.pdf   \
     -dBATCH -dNOPAUSE      \
     file.pdf 

Then substitute 'odd' with 'even' to select even pages.

Maxim
  • 280
  • 2
  • 5
5

With poppler-utils tools you could first extract single pages with pdfseparate:

pdfseparate infile.pdf piece-%d.pdf

into pieces like piece-1.pdf, piece-2.pdf ... piece-n.pdf where n is the total number of pages in your original pdf.

You could then join them with pdfunite (and a shell that supports using an increment value with range expansion: {<START>..<END>..<INCR>}):

pdfunite piece-{1..n..2}.pdf odd.pdf
pdfunite piece-{2..n..2}.pdf even.pdf

Finally, remove the pieces:

rm piece-{1..n}.pdf
don_crissti
  • 79,330
  • 30
  • 216
  • 245
1

You can do it with pdftocairo from Poppler:

pdftocairo -pdf -e input.pdf output.pdf

for odd pages, and:

pdftocairo -pdf -o input.pdf output.pdf

for even pages.

!! Keep in mind only that currently (pdftocairo v. 0.80.0) there is a bug: https://gitlab.freedesktop.org/poppler/poppler/issues/873 and odd and even pages options are mixed up. ))

vstepaniuk
  • 273
  • 2
  • 6
1

You can use qpdf

qpdf --empty --pages input.pdf 1-z:even -- even.pdf
qpdf --empty --pages input.pdf 1-z:odd  --  odd.pdf
lezambranof
  • 321
  • 3
  • 5