12

I have got two pdf files with same number of pages and want compare each page with the corresponding page in the other file. For this I would like to merge say page 1 of File1.pdf with page 1 of File2.pdf so it gets one page in the new document. Then page 2 of File1.pdf with page 2 of File2.pdf and make it page 2 of the new file.

In this question I learned already that I can put two pages on one page with the --nup option of the pdfjam command:

pdfjam File1.pdf File2.pdf --nup 2x1 --landscape --outfile File1+2.pdf

The same can be achieved with the ImageMagick package:

montage *.pdf merged.pdf

But this puts together page 1 and page 2 of the first file and does the same later on with the second file - not as intended.

What I did is to split the two documents. The first file got even numbers in the file name, the second odd numbers (actually I created the files anew with appropriate file names). Then I merged all files again with

pdftk *.pdf cat output merged.pdf

and finally put two pages on one with

pdfjam --nup 2x1 --landscape --outfile merged2up.pdf merged.pdf

I could write a script with a loop doing this, but I was wondering whether there is an easy one-liner to achieve this? Maybe I didn't find the right pdfjam, pdftk or ImageMagick command?

nnn
  • 241

4 Answers4

10

You can split File1.pdf and File2.pdf into pages and then combine those tmp files into File1+2.pdf like so:

# Split files, note the naming scheme
pdfseparate File1.pdf temp-%04d-file1.pdf
pdfseparate File2.pdf temp-%04d-file2.pdf

# Combine the final pdf
pdfjam temp-*-*.pdf --nup 2x1 --landscape --outfile File1+2.pdf

# Clean up
rm -f temp-*-*.pdf
Sergei
  • 201
1

I would use this:

sudo apt install psutils 
sudo apt install ghostscript

pdf2ps -sOutputFile=input1file%d.ps input1file.pdf input1file.ps # cut to individual pages pdf2ps -sOutputFile=input2file%d.ps input2file.pdf input2file.ps psmerge -oinput.ps *.ps # put them together page by page from the alternative files pstops -p a4 "2:0L@.7(21cm,0)+1L@.7(21cm,14.85cm)" input.ps output.ps # put 2 pages on one ps2pdf output.ps output.pdf # convert back to pdf

May be you will appreciate that. I like it because it is small and fast, but the man pages need improvement. :-(

1

(If I don't misunderstand what the OP needs,) here is a simple(r) solution

pdftk A=File1.pdf B=File2.pdf shuffle A B output tmp-Figure1+2.pdf
pdfjam tmp-Figure1+2.pdf --nup '2x1' --landscape --outfile Figure1+2.pdf
rm tmp-Figure1+2.pdf

With pdftk ... shuffle A B ..., you create an intermediate PDF file that will look like

File1-page1
File2-page1
File1-page2
File2-page2
. . . .

Then, with pdfjam, you merge the odd and even pages of the intermediate file:

File1-page1 File2-page1
File1-page2 File2-page2
. . . .

I've just come up with this solution and tested it.

Ryo
  • 389
-1

A, err, little late, but may be helpful to some one else.

The original approach of the OP, to display pages side-by-side, can be achieved by the other answer given.

However, the approach may be arduous if the aim is to find some small textual difference. To that goal, use a pdfdiff, of which there are a few from different authors, commercial, open-sourced, command-line and GUI alike.

https://duckduckgo.com/?q=pdfdiff&t=ffab&ia=software

Note that this approach is not as effective for images as "identical" images can be encoded differently.