J'ai une copie scannée de ma signature écrite et je dois l'appliquer à certains documents dans le bloc de signature. J'avais l'habitude de faire ça sur Windows tout le temps mais je n'ai plus que Linux.
Est-ce possible? Comment puis-je ajouter une image de signature à un fichier PDF sous Linux (Gnome 3)?
En utilisant Xournal, vous pouvez annoter des PDF et ajouter des images personnalisées (par exemple un PNG transparent). Bien qu'il soit utilisé pour prendre des notes à main levée et dessiner, il peut également annoter des PDF.
Sur Ubuntu:
Plus d'informations sur http://www.howtogeek.com/215485/sign-pdf-documents-without-printing-and-scanning-them-from-any-device/
Beaucoup de gens recommandent Xournal, mais je l'ai trouvé fonctionner comme une version de Gimp que je ne peux pas utiliser. Ainsi, si vous connaissez Gimp, je vous recommande de l'essayer.
Je le fais régulièrement lorsque j'ai besoin de signer des documents d'une seule page, et cela me prend plus ou moins cinq minutes. Malheureusement, cela ne fonctionnera pas si vous devez par exemple signer chaque page d'un document de plusieurs pages. Dans ce dernier cas, je viens d'imprimer, de signer et de numériser à nouveau!
Il convient de mentionner Xournal qui a une interface utilisateur agréable et permet d'ajouter du texte, des images et des notes manuscrites aux fichiers PDF. Le seul problème que j'ai eu est ne semble pas gérer le texte des formulaires natifs PDF très bien.
J'ai trouvé ce script que vous pouvez modifier pour attacher une signature à un fichier PDF.
Vous pouvez également le télécharger à partir de cette URL Pastebin:
Il y a aussi ce Q&A sur AskUbuntu qui a beaucoup d'autres méthodes pour le faire. Le Q&A est intitulé: Comment mettre une image sur un fichier pdf existant? .
J'ai eu une assez bonne expérience avec Pdf .
Sudo add-apt-repository ppa:atareao/updf
Sudo apt-get update
Sudo apt-get install -y updf
Ensuite, corrigez un bug par éditant 2 lignes dans un script Python .
Lancez uPdf, sélectionnez l'outil Ajouter une image , dessinez un rectangle autour de la zone où vous souhaitez que la signature aille et sélectionnez le fichier image avec votre signature. Un PNG avec un fond transparent fonctionne mieux.
Je suis surpris de trouver le premier logiciel de bureau gratuit pour Linux mentionné nulle part sur cette page. LibreOffice Draw ouvrira un PDF et vous permettra d'insérer une image. Si votre fichier de signature existe déjà dans le système de fichiers au format PNG avec un fond transparent, c'est un jeu d'enfant de le mettre sur une page , modifiez la taille et déplacez-la en place dans Draw. Draw enregistrera le document au format ODG par défaut, vous devrez donc exporter le document modifié au format PDF.
Tout en mettant mes propres commandes de signature dans un script Shell, je cherchais un moyen de sélectionner de manière interactive la zone où la signature devrait aller. Heureusement, j'ai trouvé cette question et le script de Emmanuel Branlard contient l'idée sur la façon de le faire (avec xv
). J'ai implémenté les points suivants:
display
au lieu de xv
stdbuf -oL
et le -update
option pour avoir un aperçu en directpdftk stamp
pour éviter la dégradation de la qualité de l'imagegpg
pdftk
wipe
Voici donc le code:
#!/bin/env zsh
#dependencies: pdftk, ImageMagick, gpg, wipe, openssl
signature=~/PGP/signature.png.gpg
f=${1%.pdf}
page=$2
density=144
bo=0.2 #baseline overlap in relation to y-size of the signature
pagecount=$(pdftk $f.pdf dump_data | grep NumberOfPages | sed "s/.*: //")
#sign on last page by default
if [ -z "$page" ]; then page=$pagecount; fi
function cleanup
{
echo "Cleaning up..."
rm $f.$page.pdf
wipe $f.$page.signature.pdf $f.$page.signed.pdf $f.signed.pdf signature.png
}
trap cleanup EXIT
echo "Signing document $f.pdf on page $page."
echo "Decrypting signature..."
gpg -d $signature > signature.png
identity=$(identify -format "%w,%h,%x,%y" signature.png)
sdata=(${(s/,/)identity})
echo "Please give the signature area with two clicks and finish by pressing ‘q’!"
#extract page
pdftk $f.pdf cat $page output $f.$page.pdf
cp $f.$page.pdf $f.$page.signed.pdf
size=$(identify -format "%wx%h" $f.$page.pdf)
#select signature area
display -density $sdata[3]x$sdata[4] -immutable -alpha off -update 1 -debug X11 -log "%e" -title "sign $f.pdf#$page" $f.$page.signed.pdf 2>&1 >/dev/null | \
grep --line-buffered "Button Press" | \
stdbuf -oL sed -r "s/^.*\+([0-9]+)\+([0-9]+).*$/\1,\2/" | \
while read line
do
p1=($p2)
p2=(${(s/,/)line})
if [ -n "$p1" ]
then
p=(0 0)
if (( p1[1] < p2[1] )); then dx=$((p2[1]-p1[1])); p[1]=$p1[1]; else dx=$((p1[1]-p2[1])); p[1]=$p2[1]; fi
if (( p1[2] < p2[2] )); then dy=$((p2[2]-p1[2])); p[2]=$p1[2]; else dy=$((p1[2]-p2[2])); p[2]=$p2[2]; fi
dy=$((dy*(1+bo)))
if (( $dx*$sdata[2] > $sdata[1]*$dy ))
then
resize=$(((dy+0.0)/sdata[2]))
p[1]=$((p[1]+(dx-resize*sdata[1])/2))
else
resize=$(((dx+0.0)/sdata[1]))
p[2]=$((p[2]+(dy-resize*sdata[2])/2))
fi
echo "Inserting signature..."
convert -density $density -size $size xc:transparent \( signature.png -resize $((resize*100))% \) -geometry +$p[1]+$p[2] -composite $f.$page.signature.pdf
pdftk $f.$page.pdf stamp $f.$page.signature.pdf output $f.$page.signed.pdf
unset p1 p2
fi
done
if [ -z "$p" ]
then
echo "You have to click two times. Aborting..."
exit 1
fi
echo "Joining PDF pages..."
sew=( pdftk A=$f.pdf B=$f.$page.signed.pdf cat )
if (( page > 1 )); then
sew+=A1-$((page-1))
fi
sew+=B
if (( page < pagecount )); then
sew+=A$((page+1))-end
fi
sew+=( output $f.signed.pdf )
$sew
echo "Encrypting PDF file..."
pdftk $f.signed.pdf output $f.signenc.pdf user_pw Prompt owner_pw $(openssl Rand -base64 32) allow AllFeatures
Sur Debian (Bullseye), j'ai trouvé que le moyen le plus simple (?) Gratuit est d'utiliser Scribus 1.5.5 qui peut facilement importer un PDF (cela peut être possible) dans les versions antérieures également):
Importez le PDF, puis créez une zone d'image où vous voulez votre signature, choisissez votre fichier de signature, redimensionnez-le si nécessaire, puis exportez-le comme un nouveau PDF (bien sûr, vous pouvez utiliser une zone de texte pour placez le texte nécessaire tel que la date, etc.) En fin de compte, ce n'est pas différent d'utiliser GIMP ou similaire, mais si vous êtes familier avec Scribus, cela ne prend que quelques secondes. Je viens de le faire deux fois pour fermer les comptes, ce qui c'est comme ça que je me suis retrouvé ici;)
Pour être complet, il existe un script alternatif pour ce faire, qui ne convertit pas le pdf en une image (de faible qualité), contrairement à celui mentionné jusqu'à présent : https: // github.com/martinruenz/signpdf
Mon expérience avec les autres solutions a été:
Okular PDF viewer has this built-in with annotations. Open the PDF you want to sign, select reviews on the bar to the left, select the third option dans le menu contextuel qui dit "Ligne à main levée". Dessinez votre signature. Si vous la voulez à l'encre noire plutôt qu'au vert fluo, sélectionnez "Paramètres" dans le menu, sélectionnez "Configurer Okular", sélectionnez le bouton "Annotations" sur le à gauche. Sélectionnez "Ligne à main levée" dans les options, puis sélectionnez le bouton "Modifier". Vous pouvez ajuster l'épaisseur et la couleur du trait ici. Appuyez sur Appliquer et profitez.
Je dirige une entreprise et Xournal n'a pas la qualité ou l'étendue du contrôle des fichiers pdf dont j'ai besoin.
J'utilise ou applique également des signatures numériques tout le temps.
Master PDF Editor (version 5 à partir de cette date) est une application payante qui dépasse facilement les attentes et est maintenant mon lecteur pdf par défaut pour Ubuntu. Fonctionnalité clé: - signer des documents - remplir des formulaires - modifier texte et objets - annoter et surligner des documents - fusionner et diviser des fichiers pdf - etc.
Pour plus de détails, rendez-vous sur: https://code-industry.net/masterpdfeditor/?-about&ver=5438
updf est vraiment bon pour cela. Ayant utilisé l'aperçu sur MacOS pour "signer" des documents, updf offre l'expérience utilisateur la plus proche de cela.
Les travaux suivants sur Ubuntu 14.10 et Debian 8.
Je ne voulais pas ajouter de ppa tiers à mon système, j'ai donc mis à jour updf de la manière suivante:
$ bzr branch lp:updf
puis fait le éditer 2 lignes comme référencé de l'autre réponse.
Installer les dépendances:
# 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
(ce qui précède était suffisant; cependant, tous les colis peuvent ne pas être nécessaires).
puis le programme python est exécutable sur place:
$ ./src/updf.py
Malheureusement, la qualité peut être gravement affectée dans le document de sortie par rapport au document d'entrée. La bonne façon de procéder serait de superposer la signature, et non de modifier l'original, dans un processus sans perte. Alors que updf semble s'engager dans le ré-encodage de l'original.