Объединять PDF-файлы, но расширять PDF-файлы до четного числа страниц

Я хочу объединить несколько файлов PDF, но для целей печати я бы предпочел, чтобы пустые страницы добавлялись в каждый документ с нечетным числом страниц. Могу ли я сделать это с PDFTK?

Вот простой маленький скрипт, который будет перебирать все PDF-файлы в текущем каталоге и объединять их в один PDF-файл, используя LaTeX. PDF-файлы с нечетным количеством страниц будут иметь дополнительную пустую страницу после них:

#!/bin/bash cat< all.tex \documentclass{article} \usepackage{pdfpages} \begin{document} EoF ## rename the PDFs to something safe c=0; for f in *pdf do ## Link the PDF with a safe name ln -s "$f" "$c".pdf ## Include the PDF in the tex file printf '\includepdf[pages=-]{%s.pdf}\n' "$c" >> all.tex; ## Get the number of pages pages=$(pdfinfo "$c".pdf | grep -oP '^Pages:\s*\K\d+') ## Add an empty page if they are odd [[ $(expr "$pages" % 2) != 0 ]] && printf '%s\n' "\newpage\null" >> all.tex ((c++)); done printf '\\end{document}' >> all.tex; pdflatex all.tex 

Поскольку это LaTeX, вы можете делать все что угодно. Например, вы можете иметь каждый PDF-файл в отдельном разделе с интерактивным оглавлением:

 #!/bin/bash cat< all.tex \documentclass{article} \usepackage{pdfpages} \usepackage[colorlinks=true,linkcolor=blue,linktoc=page]{hyperref} \begin{document} \tableofcontents \newpage EoF ## rename the PDFs to something safe c=0; for f in *pdf do ## Link the PDF with a safe name ln -s "$f" "$c".pdf ## Include the PDF in the tex file cat<> all.tex \section{${f//.pdf}} \includepdf[pages=-]{$c.pdf} EoF ## Get the number of pages pages=$(pdfinfo "$c".pdf | grep -oP '^Pages:\s*\K\d+') ## This time, because each PDF has its own section title ## we want to add a blank page to the even numbered ones [[ $(expr "$pages" % 2) = 0 ]] && printf '%s\n' "\newpage\null\newpage" >> all.tex ((c++)); done printf '\\end{document}' >> all.tex; ## Need to run it twice to build the ToC pdflatex all.tex; pdflatex all.tex; 

Конечно. Просто создайте пустую страницу с (например)

 echo "" | ps2pdf -sPAPERSIZE=a4 - blank.pdf 

и добавьте blank.pdf к каждому документу с нечетным количеством страниц. Например

 pdftk \ BLANK=blank.pdf \ A=foo1.pdf \ B=foo2.pdf \ C=foo3.pdf \ cat A BLANK B BLANK C \ output bar.pdf