Descobri que você pode usar o gpg para assinar um PDF de forma que ele ainda seja exibido em um visualizador.
gpg --clearsign --output=signed.pdf input.pdf
Acima produziria arquivo .asc que é basicamente uma concatenação da assinatura de entrada || mas a extensão do arquivo é forçada para o formato .pdf fazendo com que ele abra no visualizador, produza miniaturas, etc.
Você pode verificar a assinatura usando o gpg novamente.
$ gpg --verify signed.pdf
gpg: Podpisano nie, 12 kwi 2015, 19:07:15 CEST z użyciem RSA kluczem
gpg: Poprawny podpis od "Arkadiusz Bulski <[email protected]>"
Esteja avisado que alguns PDFs não funcionam bem com a assinatura desta forma, como os PDFs otimizados. Você deve verificar os resultados você mesmo.