将 PDF 打印为讲义

将 PDF 打印为讲义

我想按照以下布局打印 PDF 演示文稿:

劳伊特

有没有什么工具可以实现这种布局?不幸的是,演示文稿仅以 PDF 格式提供(即没有 PowerPoint、OpenOffice 或 TeX 文件)

答案1

可以使用PDFtkCLI 工具(包含在 Ubuntu 存储库中)和任何一个直接在标准 PDF 阅读器 Evince 中,或者使用PDFjam,但需要安装 LaTeX。在 Debian Sid 中,PDFjam 目前包含在软件包中texlive-extra-utils

两种情况下的想法都类似。仅使用 PDFtk 和 Evince:

  1. 创建lines.pdf包含用于书写的线条指南的(横向)PDF。
  2. 使用 将讲义分成单页pdftk
  3. 创建一个新的 PDF,其中每个奇数页都是讲义的连续页面,每个偶数页都是 的一个实例lines.pdf
  4. 在 Evince 中打开 PDF 并选择每张纸打印多页(横向模式下为 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 中获取预览。

答案2

自由办公室可以做到这一点。将幻灯片创建为演示文稿,然后使用“文档:讲义”和“每页幻灯片:3”打印它,方法是像这样设置打印对话框:

LibreOffice Impress 打印对话框

答案3

你没有说明你是如何制作演示文稿的。所有像样的演示工具都会制作讲义。这就是你想要的。

Libre Office 和 Microsoft PowerPoint 都会这样做。

就您而言,您现在已经明确表示您只有 PDF 格式的幻灯片,并且您想要添加注释空间。

最简单的方法是使用一个不错的 PDF 阅读器工具(不确定您是否可以在 Adob​​e 阅读器中执行此操作,因为我从未使用它)。我使用 PDF-XChange Editor,我可以打印自动旋转和自动居中的示例文件离开,这将给出以下布局:

在此处输入图片描述

因此,您可以在幻灯片下方留出空间来书写,虽然不太一样,但非常容易实现。您可以进一步尝试,以更接近您的示例。您还可以使用背景图像或背景页面模板来获得带线的笔记区域。

如果再进一步,您就需要从 PDF 中提取每一页并重新合成,这可能比实际需要的要多得多。

答案4

在 LibreOffice 中打开 PDF。它应该在 LibreOffice Draw 中打开。

开始一个空白的 Impress 演示文稿。更改演示文稿的页面大小以匹配 PDF 中的页面大小(匹配实际纸张大小(以毫米/英寸为单位),而不仅仅是纵横比)。

选择 Draw 中的所有幻灯片。复制(Ctrl-C)。

转到 Impress。粘贴(Ctrl-V)。

从 LibreOffice 模板中删除空白幻灯片。

希望您现在有一个可以打印的不可编辑的演示文稿。

相关内容