Описание работает для:
Убунту 21.04
pdfjam 3.03
GPL Ghostscript 9.53.3 (01.10.2020)
Я создал этот вопрос после того, как нашел решение - чтобы упростить его для других (поскольку некоторые найденные мной команды устарели и т. д.)
Ключом к поиску решения является знание того, что «сохранение» аннотаций называется «сведением», что по существу переводит слой аннотаций в «стандартный» слой (слои).
Таким образом, у нас есть три шага:
- сглаживание:
pdf2ps -q -sOutputFile=- input.pdf | ps2pdf - вне-плоский.pdf
- слияние 4на1:
pdfjam --nup 2x2 out-flat.pdf --outfile out-4on1.pdf --landscape
Для меня на шаге 1 был создан PDF-файл, который был значительно больше оригинала, поэтому альтернативным третьим шагом может быть сжатие:
- сжатие:
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/ebook -q -o out-4on1-compressed.pdf out-4on1.pdf
Обратите внимание, что для сжатия существует несколько уровней сжатия, которые вы можете выбрать, выбранный здесь (электронная книга) лучше всего подходит для моих целей. Подробнее ниже.
Так как мне придется делать это регулярно, я создал для этого удобный скрипт. Надеюсь, это будет полезно и другим!
#!/бин/ш
# аргумент 1: входное имя файла
# аргумент 2: степень сжатия (необязательно)
# удалить окончание файла, чтобы можно было изменить имя файла
имя_файла=$(базовое имя -- "$1")
расширение = "${имя файла##*.}"
префикс = "${имя файла".*}"
# компилируем аннотации в основной слой(и)
pdf2ps -q -sOutputFile=- $1 | ps2pdf — $prefix-flattened.pdf
# поместите 4 слайда по одному на страницу, альбомный режим
pdfjam --nup 2x2 $prefix-flattened.pdf --outfile $prefix-4on1-largeFile.pdf --landscape
# сжать
gs -sDEVICE=pdfwrite -dPDFSETTINGS=/${2:-ebook} -q -o $prefix-4on1.pdf $prefix-4on1-largeFile.pdf
# удалить промежуточные файлы
rm ./$prefix-flattened.pdf
rm ./$prefix-4on1-largeFile.pdf
Не забудьте сделать исполняемый файл скрипта (например, через chmod +x 4on1-script.sh
). Скрипт удаляет все промежуточные файлы.Также он создает полезное имя файла, для которого требовалось «идентифицировать» префикс файла. Его первым аргументом является имя входного файла. Его второй аргумент является необязательным и определяет качество сжатия. Значение по умолчанию — электронная книга, другие значения:
- screen: выбирает вывод с низким разрешением, аналогичный настройке Acrobat Distiller «Screen Optimized».
- Электронная книга: выбор среднего разрешения для вывода, аналогичного настройке «Электронная книга» в Acrobat Distiller. (выбрано здесь)
- принтер выбирает вывод, аналогичный настройке Acrobat Distiller «Оптимизированная печать».
- prepress выбирает вывод, аналогичный настройке Acrobat Distiller «Prepress Optimized».
- default выбирает выходные данные, предназначенные для широкого спектра применений, возможно, за счет большего выходного файла.
Если вам нравится это решение, подумайте о том, чтобы также понравиться те, на которых я основывал это: