Consegui juntar esta solução.
flattenpdf() {
if [[ $# -ne 2 ]]
then
echo "Usage: flattenpdf input.pdf output.pdf"
return 1
fi
temp=$(mktemp)
pdftk "$1" generate_fdf output ${temp}
pdftk "$1" fill_form ${temp} output "$2" flatten
rm ${temp}
}
Ele usa o pdftk para gerar um arquivo fdf a partir do pdf preenchido e, em seguida, usa esse arquivo em uma segunda execução para nivelá-lo. Por que o pdftk não faz algo assim em primeiro lugar está além de mim.