Распечатать PDF как раздаточный материал

Я хотел бы распечатать презентацию в формате PDF в следующем формате:

laouyt

Есть ли инструмент для достижения этого макета? К сожалению, презентация доступна только в формате PDF (т.е. нет файлов PowerPoint, OpenOffice или TeX)

4 ответа

Решение

Это можно сделать с помощью инструмента CLI PDFtk (включенного в репозиторий Ubuntu) и либо непосредственно в стандартном программном обеспечении для чтения PDF Evince, либо с помощью PDFjam , который требует установки LaTeX. В Debian Sid PDFjam в настоящее время содержится в texlive-extra-utils пакет.

Идея похожа в обоих случаях. Только с PDFtk и Evince:

  1. Создайте lines.pdf который является (альбомным) PDF, который состоит из линейных направляющих для письма.
  2. Раздать раздаточный материал на отдельные страницы, используя pdftk ,
  3. Создайте новый PDF, где каждая нечетная страница является последовательной страницей из раздаточного материала, а каждая четная страница является экземпляром lines.pdf ,
  4. Откройте PDF в Evince и выберите печать нескольких страниц на листе (6, в альбомном режиме).

Вот быстрая попытка, с которой я мог бы так работать. Обратите внимание, что предполагается, что входной файл находится в альбомном режиме, как это обычно бывает для презентаций. мой lines.pdf был создан с Inkscape в считанные секунды (A4, альбомная, создайте текстовое поле, которое заполняет весь холст, размер 100, заполните подчеркиванием).

Сохраните скрипт как handout.sh , сделайте его исполняемым и вызовите его с PDF-файлом в качестве единственного аргумента.

#!/bin/sh
usage() {
    cat <<-USAGE 1>&2
    usage: ${0##*/} [FILE]
    USAGE
    exit 1
}

[ $# -ne 1 ] && usage

if ! TMPDIR=$(mktemp -d); then
    printf 'error: could not create tempdir, aborting.\n' 1>&2
    exit 2
fi
# Clean everything up after closing Evince, or if the script is aborted.
trap 'rm -rf "$TMPDIR"' EXIT

LINES="$HOME/anteckningar/su-handout/lines.pdf"

HANDOUT="$TMPDIR/handout.pdf"

pdftk "$1" burst output "$TMPDIR/p%04d.pdf"

# Create PDF argument list with lines spliced in at every even position.
for p in $TMPDIR/*.pdf; do
    pdfs="$pdfs $p $LINES"
done

pdftk $pdfs cat output "$HANDOUT"
# Open Evince and print the file using wanted settings.
evince "$HANDOUT"

Использование PDFjam, решение еще проще для пользователя. Нам еще нужно lines.pdf как указано выше, и мы можем изменить скрипт на:

#!/bin/sh
usage() {
    cat <<-USAGE 1>&2
    usage: ${0##*/} [FILE]
    USAGE
    exit 1
}

[ $# -ne 1 ] && usage

if ! TMPDIR=$(mktemp -d); then
    printf 'error: could not create tempdir, aborting.\n' 1>&2
    exit 2
fi
# Clean everything up after closing Evince, or if the script is aborted.
trap 'rm -rf "$TMPDIR"' EXIT

LINES="$HOME/anteckningar/su-handout/lines.pdf"

HANDOUT="$TMPDIR/handout.pdf"
HANDOUT_SIXUP="${HANDOUT%.pdf}-6up.pdf"

pdftk "$1" burst output "$TMPDIR/p%04d.pdf"

# Create PDF argument list with lines spliced in at every even position.
for p in $TMPDIR/*.pdf; do
    pdfs="$pdfs $p $LINES"
done

pdftk $pdfs cat output "$HANDOUT"
pdfjam-slides6up --frame false --outfile "$TMPDIR" "$HANDOUT"
evince "$HANDOUT_SIXUP"

Это открывает сеанс Evince, где PDF уже правильно отформатирован для прямой печати. Можно изменить это, чтобы отправить результат непосредственно на принтер, но я предпочел бы получить предварительный просмотр в Evince в большинстве случаев.

Вы не говорите, как вы производите презентацию. Все приличные инструменты презентации будут производить раздаточный материал. Это то, что вы хотите.

И Libre Office, и Microsoft PowerPoint сделают это.

В вашем случае вы пояснили, что у вас есть слайды ТОЛЬКО в формате PDF, и вы хотите добавить место для заметок.

Самый простой способ - использовать приличный инструмент для чтения PDF (не уверен, что вы можете сделать это в Adobe Reader, поскольку я никогда не использую его). Я использую PDF-XChange Editor и могу распечатать файл примера с отключенным автоповоротом и автоцентрированием, это дает следующий макет:

введите описание здесь

Таким образом, вы получаете пространство под слайдом для записи, не совсем то же самое, но очень легко достижимо. Возможно, вы могли бы поиграть с ним дальше, чтобы приблизиться к своему примеру. Вы также можете получить область заметок с подкладкой, используя либо фоновое изображение, либо шаблон страницы фона.

Чтобы пойти дальше, вам потребуется извлечь каждую страницу из PDF и заново составить, возможно, больше работы, чем на самом деле оправдано.

LibreOffice сделает это. Создайте слайды в виде презентации, затем распечатайте их, используя "Документ: раздаточные материалы" и "Слайды на странице: 3", настроив диалоговое окно "Печать" следующим образом:

Диалог печати LibreOffice Impress

Откройте PDF в LibreOffice. Он должен открыться в LibreOffice Draw.

Начните пустую презентацию Impress. Измените размер страницы презентации, чтобы он соответствовал размеру страницы в PDF (соответствует фактическому размеру бумаги в миллиметрах / дюймах, а не только соотношению сторон).

Выберите все слайды в Draw. Копировать (Ctrl-C).

Перейти в Impress. Вставить (Ctrl-V).

Удалите пустой слайд из шаблона LibreOffice.

Надеюсь, теперь у вас есть нередактируемая презентация, которую вы можете распечатать.

Другие вопросы по тегам