[2024-feb-29] Sad news: Eric Layton aka Nocturnal Slacker aka vtel57 passed away on Feb 26th, shortly after hospitalization. He was one of our Wiki's most prominent admins. He will be missed.

Welcome to the Slackware Documentation Project

How to merge PDF-files

Introduction

PDF (Portable Document Format) is a file format invented by Adobe. PDF is useful to present documents independent of hardware, operating system and application software. Each PDF file has a fixed layout, including page size, fonts, graphics and other information. It is also possible to encrypt a PDF file for security, or create a digital signature for authentication.

Work in Progress!!!

PDF documents are created from traditional text documents via a printer driver, or as with LaTeX, created directly from source-code. One important consequence is that one cannot convert a PDF-document “back” into it's original format such as a Microsoft Word document.

This article describes how you can merge several PDF documents into a single PDF document. For example, this is useful if you have several pages from a scanner in PDF format and want to put these files into one file. There are several tools available; some are included in the stock Slackware install as well as others that can be readily installed.

Default Tools

Tools which are already available on your Slackware computer if you have a complete installation.

imagemagick (convert)

The convert tool comes in Slackware's imagemagick package from the xap-series.

The convert tool uses the -adjoin option to achieve this.

convert -adjoin file1.pdf file2.pdf merged.pdf

Thanks to jlinkels for the contribution.

To increase the quality of the output, it is better to read the input PDF files with a higher density (in dots per inch (DPI)) and then resize the output density back to common DPI, 96 for example. I usually use an input density of 600 (after many trial and errors), and then resize with 93.75% (if you dont resize you will get a huge output file).

convert -density 600 fileinput_1.pdf fileinput2_.pdf -resize 93.75% output.pdf

Thanks to eXpander_ for the contribution.

ghostscript (gs)

The ghostscript package resides in Slackware's ap-series.

With GhostScript you can merge PDF files on the command line.

gs -q -sPAPERSIZE=a4 -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=<newfilename>.pdf <inputfilenameshere>

Thanks to mrclisdue for the contribution.

pdfconcat

The pdfconcat tool comes in Slackware's xpaint package from the xap-series.

pdfconcat -o <output.pdf> <input1.pdf> [...]

Thanks to BroX for the contribution.

pdfunite

The pdfunite tool comes in Slackware's poppler package from the l-series.

pdfunite [options] PDF-sourcefile1..PDF-sourcefilen PDF-destfile

Thanks to nivieru for the contribution.

Additional tools

Additional tools that can be easily installed.

pdftk

pdftk is available at slackbuilds.org. It is also a command line tool and the usage is:

pdftk first.pdf second.pdf third.pdf cat output altogether.pdf

pdftk can do more things than joining PDF files, for example rotating a document by 180 degrees is done this way:

pdftk upsidedown.pdf cat 1-endsouth output rotated.pdf

Thanks to brianL and michaelk for pointing me to pdftk.

pdfshuffler

pdfshuffler is also available at slackbuilds.org. It comes with a graphical user interface and is written in Python, therefore pyPdf and pypoppler are required in order to get this program to work. It is very convenient because it comes with a document-viewer and shows what you're doing. It has additional features like rotating or splitting PDF files.

pdfjam

pdfjam is a LaTeX-package which is unfortunately not included in tetex. But those of us who have installed texlive instead already have pdfjam. It is also a command line tool (like LaTeX). The documentation is available with the texdoc command

texdoc pdfjam

Thanks to joghi for pointing me to pdfjam.

TODO: handling bookmarks in PDF-files, which of the above tools can handle those bookmarks?

Sources

 howtos:software:how_to_merge_pdf-files ()