Intereting Posts
Как исправить графические проблемы с приложениями Qt? (дельфин: 14635): Gdk-WARNING **: ошибка shmget: ошибка 28 (на устройстве не осталось места) Есть ли какое-нибудь руководство по C в Linux? Если есть, что это? Потеря пакетов с пакетами ошибок RX Конфигурация концентратора CentOS 7 для Hyper-V Как я могу предоставить все разрешения для файла для одного пользователя, а не я? Имеет ли FreeBSD проблемы с использованием ext2fs с внешними жесткими дисками USB, размер сектора которых составляет 4096 байтов? Как изменить док-станцию ​​в XFCE4? Может ли один пользователь иметь несколько файлов crontab? Сохранять права доступа cifs к файлу samba do … while или do … пока в сценарии оболочки POSIX Является ли оболочка переносимой для запуска команды в той же строке после назначения переменной? Можем ли мы использовать Linux Mint ISO для ремонта Grub Ubuntu? Контроллер Logitech не переходит в виртуальную машину Centos как джойстик Несколько пользователей в среде рабочего стола Порт не добавлен в iptables

Объединить PDF-файлы, но увеличить число PDF-страниц, чтобы быть равномерным количеством страниц

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

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

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 

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

 #!/bin/bash cat<<EoF > 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<<EoF > 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<<EoF >> 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;