PDF files
Manipulate PDF document and images
PDFTK for documents
pdftk is a tool in the command line that allows you to manipulate pdf documents, such as concatenating documents or extracting pages.
General syntax
pdftk INPUT_FILES OPERATION output OUTPUT_FILES
where OPERATION corresponds to the desired manipulation on the INPUT_FILES.
Concatenation
This can be done with cat:
pdftk doc_1.pdf doc_2.pdf doc_3.pdf cat output doc_123.pdfpdftk *.pdf cat output all.pdf
Extraction
This can also be done with cat:
- only page 1:
pdftk doc.pdf cat 1 output doc_page_1.pdf - a range of pages:
pdftk doc.pdf cat 2-5 output doc_page_2to5.pdf - a combination:
pdftk doc.pdf cat 1-10 12 15 output doc_page_1to10_12_15.pdf - from multiple documents:
pdftk A=doc_1.pdf B=doc_2.pdf cat A1-10 B1-3 output doc_1_page_1to10_doc_2_page_1to3.pdf
PDFCROP for images
pdfcrop is also a tool in the command line, to remove margins in images saved as pdf files. A concrete example is embedding figures in LaTeX or Beamer from pdf files. Figures in pdf has the advantage of being vectorized, meaning that resizing them will not impact their quality.
- automatically remove margins:
pdfcrop INPUT.pdf - if parts are cropped/removed or margins remains:
pdfcrop --hires --resolution WIDTHxHEIGHT INPUT.pdf
use a high resolution like--resolution 1000x1000if errors remains. - manually set margins:
pdfcrop --margins 'LEFT TOP RIGHT BOTTOM' --clip INPUT.pdf
you can set positive or negative values to respectively increase or decrease the margins. You can also set a single value for all margins--margins VALUE.
This will process and create a new file INPUT-crop.pdf at the same location.
Convert SVG to PDF
Similarly to PDF, SVG figures are vectorized. However, embedding SVG into LaTeX or beamer can be tedious. A simple workaround is to convert the SVG figure to PDF, as there are, fortunately, a number of tools to do this from the command line:
- ImageMagick:
sudo apt install imagemagick convert INPUT.svg OUTPUT.pdf - rsvg-convert:
sudo apt install librsvg2-bin rsvg-convert -f pdf -o OUTPUT.pdf INPUT.svg - Inkscape:
sudo apt install inkscape inkscape INPUT.svg --export-pdf=OUTPUT.pdf
Each of these tools install their own dependencies, but from my limited usage inkscape seemed to be the most convenient solution.
