A biblioteca PyPdf facilita esse tipo de coisa se você estiver disposto a escrever um pouco de Python. Salve o código abaixo em um script chamado pdf-cat-even
(ou o que você quiser), torne-o executável ( chmod +x pdf-cat-even
) e execute-o como um filtro ( ./pdf-cat-even a.pdf b.pdf >concatenated.pdf
). Você precisa de pyPdf ≥1.13 para o método addBlankPage
.
#!/usr/bin/env python
import copy, sys
from pyPdf import PdfFileWriter, PdfFileReader
output = PdfFileWriter()
output_page_number = 0
alignment = 2 # to align on even pages
for filename in sys.argv[1:]:
# This code is executed for every file in turn
input = PdfFileReader(open(filename))
for p in [input.getPage(i) for i in range(0,input.getNumPages())]:
# This code is executed for every input page in turn
output.addPage(p)
output_page_number += 1
while output_page_number % alignment != 0:
output.addBlankPage()
output_page_number += 1
output.write(sys.stdout)