O updf é realmente bom para isso. Tendo usado a visualização no MacOS para "assinar" documentos, o updf oferece a experiência do usuário mais próxima disso.
O seguinte funciona no Ubuntu 14.10 e Debian 8.
Eu não queria adicionar um ppa de terceiros ao meu sistema, portanto, o updf foi executado da seguinte maneira:
$ bzr branch lp:updf
em seguida, fez a edição de 2 linhas conforme referenciado na outra resposta.
Instale dependências:
# apt-get install python-poppler gir1.2-gtk-3.0 gir1.2-gdkpixbuf-2.0 gir1.2-poppler-0.18 python-cairo librsvg2-2 gir1.2-rsvg-2.0 python-gi-cairo
(o acima foi suficiente; embora nem todos os pacotes sejam necessários).
e então o programa python é executável no local:
$ ./src/updf.py
Infelizmente, a qualidade pode ser severamente afetada no documento de saída em comparação com o documento de entrada. A maneira correta de fazer isso seria sobrepor a assinatura e não alterar o original, em um processo sem perdas. Enquanto o updf parece se envolver na recodificação do original.