Isso pode ser feito usando a ferramenta CLI PDFtk (incluída no repositório do Ubuntu) e qualquer diretamente no leitor de PDF padrão Evince, ou usando PDFjam , que requer uma instalação do LaTeX. No Debian Sid, o PDFjam está atualmente contido no pacote texlive-extra-utils
.
A ideia é semelhante nos dois casos. Com apenas PDFtk e Evince:
- Crie
lines.pdf
, que é um PDF (paisagem) que consiste em guias de linha para escrever. - Insira o folheto em páginas únicas usando
pdftk
. - Crie um novo PDF em que cada página ímpar seja uma página sequencial do folheto, e toda página par seja uma instância de
lines.pdf
. - Abra o PDF no Evince e escolha imprimir várias páginas por folha (6, no modo paisagem).
Aqui está uma tentativa rápida de que eu pudesse começar a trabalhar assim. Observe que ele pressupõe que o arquivo de entrada esteja no modo paisagem, como é geralmente o caso das apresentações. Meu lines.pdf
foi criado com o Inkscape em segundos (A4, paisagem, crie uma caixa de texto que preencha a tela inteira, tamanho 100, preencha com sublinhados).
Salve o script como, por exemplo, handout.sh
, torne-o executável e chame-o com um arquivo PDF como único argumento.
#!/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"
Usando o PDFjam, a solução é ainda mais simples para o usuário. Ainda precisamos do lines.pdf
acima e podemos modificar o script para:
#!/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"
Isso abre uma sessão do Evince onde o PDF já está formatado corretamente para impressão direta. Pode-se modificar isso para enviar o resultado diretamente para a impressora, mas eu prefiro obter a visualização no Evince na maioria dos casos.