Merge two PDF files output by LaTeX?

Create the separate documents separately and merge them with a PDF utility. Semantically speaking, I feel this is the way to go rather than futzing with the document settings. After all, what you are submitting is not one "document" but a set of them.

Edit: This is an important question that has been asked more than once. It's also not exactly TeX-related. So I'm community-wikifying my answer so it can be improved and made definitive.

LaTeX

use Herbert's answer: the pdfpages package

\documentclass{article}% or something else
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=-]{paper1}
\includepdf[pages=-]{paper2}

\end{document}

Command Line

  • pdftk

     $ pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf
    
  • GhostScript

     $ gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=merged.pdf source1.pdf source2.pdf source3.pdf etc.pdf
    

    (via Macworld)

  • PDFJAM is a suite of scripts that uses LaTeX and pdfpages on the backend.

     $ pdfjoin foo1.pdf foo2.pdf --outfile bar.pdf
    

    (via Uwe Hermann)

  • stapler is a pure Python alternative to pdftk.

      $ stapler cat in1.pdf in2.pdf out.pdf
    
  • PyMuPDF is a Python binding for MuPDF – “a lightweight PDF and XPS viewer”.

       $ python -m fitz join -o output.pdf file1.pdf file2.pdf
    

GUI

  • Preview (Mac only) example

  • Acrobat Pro (non-free) video example

  • GUIPDFTK

  • PDFCreator (Win only, free, Open Source, acts like a printer ⇒ no hyperlinks etc.)

  • PDF Mod (Linux, free software)

  • PDF-Shuffler (Linux, free software)

  • PDFsam (JRE - Windows, Linux, Mac, free and non-free versions)

This question is very similar although the questioner didn't realize it.


Package pdfpagesmay help

\documentclass{article}% or something else
\usepackage{pdfpages}
\begin{document}
\includepdf[pages=...]{paper1}
\includepdf[pages=...]{paper2}

\end{document}

If you have Ghostscript installed, you might also join the two separate PDF files in one by issuing a command such as this:

gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=merged.pdf input1.pdf input2.pdf

Tags:

Pdf