How can I add a signature .png to a PDF in Linux?
Clash Royale CLAN TAG#URR8PPP
up vote
40
down vote
favorite
I have a scanned copy of my written signature and I need to apply it to some documents in the signature block. I used to do this on Windows all the time but I now have only Linux.
Is this possible? How can I add a signature image to a PDF file in Linux (Gnome 3)?
pdf evince
add a comment |Â
up vote
40
down vote
favorite
I have a scanned copy of my written signature and I need to apply it to some documents in the signature block. I used to do this on Windows all the time but I now have only Linux.
Is this possible? How can I add a signature image to a PDF file in Linux (Gnome 3)?
pdf evince
add a comment |Â
up vote
40
down vote
favorite
up vote
40
down vote
favorite
I have a scanned copy of my written signature and I need to apply it to some documents in the signature block. I used to do this on Windows all the time but I now have only Linux.
Is this possible? How can I add a signature image to a PDF file in Linux (Gnome 3)?
pdf evince
I have a scanned copy of my written signature and I need to apply it to some documents in the signature block. I used to do this on Windows all the time but I now have only Linux.
Is this possible? How can I add a signature image to a PDF file in Linux (Gnome 3)?
pdf evince
pdf evince
edited Aug 7 '13 at 23:32
Gilles
514k12110231550
514k12110231550
asked Aug 7 '13 at 20:04
Freedom_Ben
74921319
74921319
add a comment |Â
add a comment |Â
9 Answers
9
active
oldest
votes
up vote
40
down vote
accepted
Using Xournal you can annotate PDFs and add custom images (e.g. a transparent PNG). Although it is used for taking freehand notes and drawing, it can also annotate PDFs.
On Ubuntu:
- Install Xournal through the Ubuntu Software Center
- Open Xournal
- Select "Annotate PDF" from the File menu and select your PDF file to be signed.
- Click the "Image" button in the toolbar (it looks like a silhouette of a person).
- Select a PNG image of your signature.
- Resize and position the image on the PDF.
- Select "Export to PDF" from the File menu.
More info at http://www.howtogeek.com/215485/sign-pdf-documents-without-printing-and-scanning-them-from-any-device/
3
Xournal was really buggy - when I finally managed to import the signature and exported the PDF, the scanned PDF was blurred - my signature was the only crisp element on the resulting pdf.
â Antti Haapala
Jan 2 '17 at 22:00
1
I just did this on with xournal on arch and it worked quite nicely, but the background pdf was from a document, not a scan. maybe relevant?
â Brandon Kuczenski
Jul 3 '17 at 8:39
Worked for me as well on Ubuntu 16.04. As a sidenote, you can also use xournal to annotate the PDF by adding text on top of it in different layers (usefull for example to complete forms).
â jotadepicas
Sep 10 '17 at 0:52
hm. so this works, actually, but other pdf programs on mint don't save text fields...
â mendota
Apr 26 at 17:47
add a comment |Â
up vote
7
down vote
I found this script which you can modify to attach a signature to an existing PDF file.
- http://emmanuel.branlard.free.fr/work/linux/dev/SignPDF/SignPDF
You can also download it from this pastebin URL:
- http://pastebin.com/9TL5pvBA
There is also this Q&A on AskUbuntu that has many other methods for doing this. The Q&A is titled: How to put a picture on an existing pdf file?.
@Freedom_Ben - also if you're interested I found how to sign your PDFs using certificates instead of just a PNG. LMK.
â slmâ¦
Aug 7 '13 at 22:44
3
The problem is that it creates images of the pages in very bad quality. :/ The other answer (about updf) works better. :)
â odinho - Velmont
Jun 4 '14 at 11:11
2
@slm: Very true. But it still creates a /picture/ of the page, instead of only stamping the image on like updf does. pdftk is also able to do such operations, but would need a driver-script like the one here.
â odinho - Velmont
Jun 4 '14 at 11:16
1
I've used pdftk and reportlab to do similar things before (mail merge on top of pdf): stackoverflow.com/questions/356502/⦠-- took lots of effort to find out an effective way. Very many bad ways to process PDFs out there.
â odinho - Velmont
Jun 4 '14 at 12:07
2
Is there a version of this that does not usexv
? It is too difficult to installxv
and it's not free software...
â Chris Beck
Dec 12 '16 at 19:09
 |Â
show 4 more comments
up vote
6
down vote
It's worth mentioning Xournal which has a nice UI and allows adding text, images, and hand-written notes to PDF files. The only problem I've had is it doesn't seem to handle text from native PDF forms very well.
add a comment |Â
up vote
5
down vote
I've had a reasonably good experience with uPdf.
Installation
sudo add-apt-repository ppa:atareao/updf
sudo apt-get update
sudo apt-get install -y updf
Then fix a bug by editing 2 lines in a Python script.
Usage
Launch uPdf, select the Add an image tool, draw a rectangle around the area where you want the signature to go and select the image file with your signature. A PNG with a transparent background works best.
Wow great tip, thanks!
â Freedom_Ben
Oct 31 '13 at 0:25
3
lol, that's so funny about the editing 2 lines of Python. Because I'm the one who created that comment. And here I am looking for a way to sign a PDF again, so happy about helpful people on the intarwebs :)
â odinho - Velmont
Jun 4 '14 at 11:12
Looks like the last release was for Ubuntu Quantal. Adding the repo on 15.04 (Vivid) errors with "Failed to fetch ..."
â Ponkadoodle
Jun 16 '15 at 20:20
@Wallacoloo The package is only built for Raring and Saucy. For any other distribution you need to manually change the distribution in thelst
file created in/etc/apt/sources.list.d
.
â kynan
Jun 16 '15 at 22:31
Crashes after splash screen on Wily 15.10 using either Precise or Quantal distributions.
â Jonathan Neufeld
Jan 6 '16 at 1:33
 |Â
show 1 more comment
up vote
5
down vote
A lot of people recommend Xournal, but i found it to work as a version of Gimp that i can't use. Thus if you are familiar with Gimp, i would recommend trying it.
- You should have a file with the signature (even a picture taken with the phone or webcam), and a file with the document to be signed. The latter is going to be in PDF format, that can be opened by Gimp
- Apply a threshold on the signature if the white is not white enough
- Convert white to alpha in the signature if the background of the document is not white
- Open the document with Gimp
- Open the signature on top of the document as a new layer (File -> Open as layer)
- Adjust size and position
- Merge layers
- Export as PDF
I do this regularly when i need to sign single page documents, and it takes me more or less five minutes. Unfortunately this won't work if you need for example to sign every page of a multi page document. In the latter case i just print, sign, and scan again!
2
I tried all the above solutions, they all failed after much effort.xournal
doesn't really work properly, there seem to be bugs in it's user interface and I wasn't able to scale or move the images after I imported them.xv
did not compile, requires numerous patches to C code, then finally doesn't work either.updf
, or its ubuntu PPA, doesn't exist anymore afaict. (tested on ubuntu xenial dec 2016)gimp
is the way to go, thanks for this!
â Chris Beck
Dec 12 '16 at 21:04
1
This is a beautiful solution! It does require some image editing skills to create the signature with a transparent background, and to scale the image when added to the document as a layer. BTW, the date can also be added to the working XCF file as a layer with a bit of fuss (text size and location). The resulting PDF export is quite acceptable!
â Tom Russell
Jun 12 at 17:53
1
If the document has multiple pages: import page as layers (default option), save the document as ".mng" (means multiple png) just adding .mng extensions and "export as" option on gimp, now got to command line and do:convert original_name.mng output_name.pdf
. That's all. By the way, if the resolution for output is low, try enlarge size of pdf images while importing the pdf at the begining: try something like "2000" for width. When exporting to MNG dont forget to check the option "compression level" to the maximum this way final file will not be too heavy.
â Diego Andrés DÃaz Espinoza
Sep 24 at 18:05
add a comment |Â
up vote
3
down vote
While putting my own signature commands into a shell script, I was looking for a way to interactively select the area where the signature should go. Luckily I found this question and the script of Emmanuel Branlard contains the idea on how to do it (with xv
). I implemented the following points:
- use ImageMagicks
display
instead ofxv
- use
stdbuf -oL
and the-update
option to have a live preview - overlay the signature with
pdftk stamp
to prevent image quality degradation - only extract the specific page from the pdf file
- decrypt the signature with
gpg
- encrypt the signed pdf file with
pdftk
- cleanup intermediate files containing the signature with
wipe
So here is the 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
This isn't working for me, imagamagick loads but only displays splash screen.
â Andreas
Jul 27 '16 at 20:41
add a comment |Â
up vote
1
down vote
(Would have left as a comment to the updf answer, but stackexchange's policy on "karma" prevents me commenting, but does not prevent me leaving an answer).
updf is really good for this. Having used preview on MacOS to "sign" documents, updf offers the closest user experience to this.
The following works on Ubuntu 14.10 and Debian 8.
I didn't want to add a third party ppa to my system, so got updf running in the following way instead:
$ bzr branch lp:updf
then made the 2 line edit as referenced from the other answer.
Install dependencies:
# 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
(the above was sufficient; not every package may be necessary, though).
and then the python program is runnable in-place:
$ ./src/updf.py
Unfortunately, quality can be severely affected in the output document compared to the input document. The right way to do this would be to overlay the signature, and not change the original, in a lossless process. Whereas updf appears to engage in re-encoding of the original.
I had to addpython-gi-cairo
to the dependencies to make it work.
â Joma
Mar 18 '15 at 7:07
Joma: thanks; I've now added python-gi-cairo to the list.
â projix
Jun 5 '16 at 20:01
add a comment |Â
up vote
0
down vote
For completeness, there is an alternative script to do this, which does not convert the pdf to a (low quality) image, in contrast to the one mentioned so far: https://github.com/martinruenz/signpdf
My experience with the other solutions was:
Xournal messed with the pdf (it seemed to work after building from source though)- The script SignPDF converts pdfs to images and reduces quality significantly. It also has a troublesome dependency (xv)
- I didn't try the gimp and updf option
- In the end I used Acrobat Reader in a VM as I also had to fill various forms
Thanks for sharing back. I'll check out your script. I've had really good success with Xournal, tho you have to make sure not to export to the original filename as that can cause issues. If you pick a new name to export to (so you aren't overwriting the original pdf) then you'll avoid this bug.
â Freedom_Ben
Jun 9 at 3:15
add a comment |Â
up vote
0
down vote
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 on the pop up menu that says, 'freehand line.' Draw out your signature. If you want it black ink rather then neon green, select 'Settings' from the menu, select 'Configure Okular,' select 'Annotations' button on the left. Select 'Freehand Line' from the options, then select the 'Edit' button. You can adjust both the line thickness and color here. Hit Apply and enjoy.
New contributor
add a comment |Â
9 Answers
9
active
oldest
votes
9 Answers
9
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
40
down vote
accepted
Using Xournal you can annotate PDFs and add custom images (e.g. a transparent PNG). Although it is used for taking freehand notes and drawing, it can also annotate PDFs.
On Ubuntu:
- Install Xournal through the Ubuntu Software Center
- Open Xournal
- Select "Annotate PDF" from the File menu and select your PDF file to be signed.
- Click the "Image" button in the toolbar (it looks like a silhouette of a person).
- Select a PNG image of your signature.
- Resize and position the image on the PDF.
- Select "Export to PDF" from the File menu.
More info at http://www.howtogeek.com/215485/sign-pdf-documents-without-printing-and-scanning-them-from-any-device/
3
Xournal was really buggy - when I finally managed to import the signature and exported the PDF, the scanned PDF was blurred - my signature was the only crisp element on the resulting pdf.
â Antti Haapala
Jan 2 '17 at 22:00
1
I just did this on with xournal on arch and it worked quite nicely, but the background pdf was from a document, not a scan. maybe relevant?
â Brandon Kuczenski
Jul 3 '17 at 8:39
Worked for me as well on Ubuntu 16.04. As a sidenote, you can also use xournal to annotate the PDF by adding text on top of it in different layers (usefull for example to complete forms).
â jotadepicas
Sep 10 '17 at 0:52
hm. so this works, actually, but other pdf programs on mint don't save text fields...
â mendota
Apr 26 at 17:47
add a comment |Â
up vote
40
down vote
accepted
Using Xournal you can annotate PDFs and add custom images (e.g. a transparent PNG). Although it is used for taking freehand notes and drawing, it can also annotate PDFs.
On Ubuntu:
- Install Xournal through the Ubuntu Software Center
- Open Xournal
- Select "Annotate PDF" from the File menu and select your PDF file to be signed.
- Click the "Image" button in the toolbar (it looks like a silhouette of a person).
- Select a PNG image of your signature.
- Resize and position the image on the PDF.
- Select "Export to PDF" from the File menu.
More info at http://www.howtogeek.com/215485/sign-pdf-documents-without-printing-and-scanning-them-from-any-device/
3
Xournal was really buggy - when I finally managed to import the signature and exported the PDF, the scanned PDF was blurred - my signature was the only crisp element on the resulting pdf.
â Antti Haapala
Jan 2 '17 at 22:00
1
I just did this on with xournal on arch and it worked quite nicely, but the background pdf was from a document, not a scan. maybe relevant?
â Brandon Kuczenski
Jul 3 '17 at 8:39
Worked for me as well on Ubuntu 16.04. As a sidenote, you can also use xournal to annotate the PDF by adding text on top of it in different layers (usefull for example to complete forms).
â jotadepicas
Sep 10 '17 at 0:52
hm. so this works, actually, but other pdf programs on mint don't save text fields...
â mendota
Apr 26 at 17:47
add a comment |Â
up vote
40
down vote
accepted
up vote
40
down vote
accepted
Using Xournal you can annotate PDFs and add custom images (e.g. a transparent PNG). Although it is used for taking freehand notes and drawing, it can also annotate PDFs.
On Ubuntu:
- Install Xournal through the Ubuntu Software Center
- Open Xournal
- Select "Annotate PDF" from the File menu and select your PDF file to be signed.
- Click the "Image" button in the toolbar (it looks like a silhouette of a person).
- Select a PNG image of your signature.
- Resize and position the image on the PDF.
- Select "Export to PDF" from the File menu.
More info at http://www.howtogeek.com/215485/sign-pdf-documents-without-printing-and-scanning-them-from-any-device/
Using Xournal you can annotate PDFs and add custom images (e.g. a transparent PNG). Although it is used for taking freehand notes and drawing, it can also annotate PDFs.
On Ubuntu:
- Install Xournal through the Ubuntu Software Center
- Open Xournal
- Select "Annotate PDF" from the File menu and select your PDF file to be signed.
- Click the "Image" button in the toolbar (it looks like a silhouette of a person).
- Select a PNG image of your signature.
- Resize and position the image on the PDF.
- Select "Export to PDF" from the File menu.
More info at http://www.howtogeek.com/215485/sign-pdf-documents-without-printing-and-scanning-them-from-any-device/
answered Aug 24 '15 at 22:43
Nate Lampton
51653
51653
3
Xournal was really buggy - when I finally managed to import the signature and exported the PDF, the scanned PDF was blurred - my signature was the only crisp element on the resulting pdf.
â Antti Haapala
Jan 2 '17 at 22:00
1
I just did this on with xournal on arch and it worked quite nicely, but the background pdf was from a document, not a scan. maybe relevant?
â Brandon Kuczenski
Jul 3 '17 at 8:39
Worked for me as well on Ubuntu 16.04. As a sidenote, you can also use xournal to annotate the PDF by adding text on top of it in different layers (usefull for example to complete forms).
â jotadepicas
Sep 10 '17 at 0:52
hm. so this works, actually, but other pdf programs on mint don't save text fields...
â mendota
Apr 26 at 17:47
add a comment |Â
3
Xournal was really buggy - when I finally managed to import the signature and exported the PDF, the scanned PDF was blurred - my signature was the only crisp element on the resulting pdf.
â Antti Haapala
Jan 2 '17 at 22:00
1
I just did this on with xournal on arch and it worked quite nicely, but the background pdf was from a document, not a scan. maybe relevant?
â Brandon Kuczenski
Jul 3 '17 at 8:39
Worked for me as well on Ubuntu 16.04. As a sidenote, you can also use xournal to annotate the PDF by adding text on top of it in different layers (usefull for example to complete forms).
â jotadepicas
Sep 10 '17 at 0:52
hm. so this works, actually, but other pdf programs on mint don't save text fields...
â mendota
Apr 26 at 17:47
3
3
Xournal was really buggy - when I finally managed to import the signature and exported the PDF, the scanned PDF was blurred - my signature was the only crisp element on the resulting pdf.
â Antti Haapala
Jan 2 '17 at 22:00
Xournal was really buggy - when I finally managed to import the signature and exported the PDF, the scanned PDF was blurred - my signature was the only crisp element on the resulting pdf.
â Antti Haapala
Jan 2 '17 at 22:00
1
1
I just did this on with xournal on arch and it worked quite nicely, but the background pdf was from a document, not a scan. maybe relevant?
â Brandon Kuczenski
Jul 3 '17 at 8:39
I just did this on with xournal on arch and it worked quite nicely, but the background pdf was from a document, not a scan. maybe relevant?
â Brandon Kuczenski
Jul 3 '17 at 8:39
Worked for me as well on Ubuntu 16.04. As a sidenote, you can also use xournal to annotate the PDF by adding text on top of it in different layers (usefull for example to complete forms).
â jotadepicas
Sep 10 '17 at 0:52
Worked for me as well on Ubuntu 16.04. As a sidenote, you can also use xournal to annotate the PDF by adding text on top of it in different layers (usefull for example to complete forms).
â jotadepicas
Sep 10 '17 at 0:52
hm. so this works, actually, but other pdf programs on mint don't save text fields...
â mendota
Apr 26 at 17:47
hm. so this works, actually, but other pdf programs on mint don't save text fields...
â mendota
Apr 26 at 17:47
add a comment |Â
up vote
7
down vote
I found this script which you can modify to attach a signature to an existing PDF file.
- http://emmanuel.branlard.free.fr/work/linux/dev/SignPDF/SignPDF
You can also download it from this pastebin URL:
- http://pastebin.com/9TL5pvBA
There is also this Q&A on AskUbuntu that has many other methods for doing this. The Q&A is titled: How to put a picture on an existing pdf file?.
@Freedom_Ben - also if you're interested I found how to sign your PDFs using certificates instead of just a PNG. LMK.
â slmâ¦
Aug 7 '13 at 22:44
3
The problem is that it creates images of the pages in very bad quality. :/ The other answer (about updf) works better. :)
â odinho - Velmont
Jun 4 '14 at 11:11
2
@slm: Very true. But it still creates a /picture/ of the page, instead of only stamping the image on like updf does. pdftk is also able to do such operations, but would need a driver-script like the one here.
â odinho - Velmont
Jun 4 '14 at 11:16
1
I've used pdftk and reportlab to do similar things before (mail merge on top of pdf): stackoverflow.com/questions/356502/⦠-- took lots of effort to find out an effective way. Very many bad ways to process PDFs out there.
â odinho - Velmont
Jun 4 '14 at 12:07
2
Is there a version of this that does not usexv
? It is too difficult to installxv
and it's not free software...
â Chris Beck
Dec 12 '16 at 19:09
 |Â
show 4 more comments
up vote
7
down vote
I found this script which you can modify to attach a signature to an existing PDF file.
- http://emmanuel.branlard.free.fr/work/linux/dev/SignPDF/SignPDF
You can also download it from this pastebin URL:
- http://pastebin.com/9TL5pvBA
There is also this Q&A on AskUbuntu that has many other methods for doing this. The Q&A is titled: How to put a picture on an existing pdf file?.
@Freedom_Ben - also if you're interested I found how to sign your PDFs using certificates instead of just a PNG. LMK.
â slmâ¦
Aug 7 '13 at 22:44
3
The problem is that it creates images of the pages in very bad quality. :/ The other answer (about updf) works better. :)
â odinho - Velmont
Jun 4 '14 at 11:11
2
@slm: Very true. But it still creates a /picture/ of the page, instead of only stamping the image on like updf does. pdftk is also able to do such operations, but would need a driver-script like the one here.
â odinho - Velmont
Jun 4 '14 at 11:16
1
I've used pdftk and reportlab to do similar things before (mail merge on top of pdf): stackoverflow.com/questions/356502/⦠-- took lots of effort to find out an effective way. Very many bad ways to process PDFs out there.
â odinho - Velmont
Jun 4 '14 at 12:07
2
Is there a version of this that does not usexv
? It is too difficult to installxv
and it's not free software...
â Chris Beck
Dec 12 '16 at 19:09
 |Â
show 4 more comments
up vote
7
down vote
up vote
7
down vote
I found this script which you can modify to attach a signature to an existing PDF file.
- http://emmanuel.branlard.free.fr/work/linux/dev/SignPDF/SignPDF
You can also download it from this pastebin URL:
- http://pastebin.com/9TL5pvBA
There is also this Q&A on AskUbuntu that has many other methods for doing this. The Q&A is titled: How to put a picture on an existing pdf file?.
I found this script which you can modify to attach a signature to an existing PDF file.
- http://emmanuel.branlard.free.fr/work/linux/dev/SignPDF/SignPDF
You can also download it from this pastebin URL:
- http://pastebin.com/9TL5pvBA
There is also this Q&A on AskUbuntu that has many other methods for doing this. The Q&A is titled: How to put a picture on an existing pdf file?.
edited Apr 13 '17 at 12:22
Communityâ¦
1
1
answered Aug 7 '13 at 20:23
slmâ¦
241k66500668
241k66500668
@Freedom_Ben - also if you're interested I found how to sign your PDFs using certificates instead of just a PNG. LMK.
â slmâ¦
Aug 7 '13 at 22:44
3
The problem is that it creates images of the pages in very bad quality. :/ The other answer (about updf) works better. :)
â odinho - Velmont
Jun 4 '14 at 11:11
2
@slm: Very true. But it still creates a /picture/ of the page, instead of only stamping the image on like updf does. pdftk is also able to do such operations, but would need a driver-script like the one here.
â odinho - Velmont
Jun 4 '14 at 11:16
1
I've used pdftk and reportlab to do similar things before (mail merge on top of pdf): stackoverflow.com/questions/356502/⦠-- took lots of effort to find out an effective way. Very many bad ways to process PDFs out there.
â odinho - Velmont
Jun 4 '14 at 12:07
2
Is there a version of this that does not usexv
? It is too difficult to installxv
and it's not free software...
â Chris Beck
Dec 12 '16 at 19:09
 |Â
show 4 more comments
@Freedom_Ben - also if you're interested I found how to sign your PDFs using certificates instead of just a PNG. LMK.
â slmâ¦
Aug 7 '13 at 22:44
3
The problem is that it creates images of the pages in very bad quality. :/ The other answer (about updf) works better. :)
â odinho - Velmont
Jun 4 '14 at 11:11
2
@slm: Very true. But it still creates a /picture/ of the page, instead of only stamping the image on like updf does. pdftk is also able to do such operations, but would need a driver-script like the one here.
â odinho - Velmont
Jun 4 '14 at 11:16
1
I've used pdftk and reportlab to do similar things before (mail merge on top of pdf): stackoverflow.com/questions/356502/⦠-- took lots of effort to find out an effective way. Very many bad ways to process PDFs out there.
â odinho - Velmont
Jun 4 '14 at 12:07
2
Is there a version of this that does not usexv
? It is too difficult to installxv
and it's not free software...
â Chris Beck
Dec 12 '16 at 19:09
@Freedom_Ben - also if you're interested I found how to sign your PDFs using certificates instead of just a PNG. LMK.
â slmâ¦
Aug 7 '13 at 22:44
@Freedom_Ben - also if you're interested I found how to sign your PDFs using certificates instead of just a PNG. LMK.
â slmâ¦
Aug 7 '13 at 22:44
3
3
The problem is that it creates images of the pages in very bad quality. :/ The other answer (about updf) works better. :)
â odinho - Velmont
Jun 4 '14 at 11:11
The problem is that it creates images of the pages in very bad quality. :/ The other answer (about updf) works better. :)
â odinho - Velmont
Jun 4 '14 at 11:11
2
2
@slm: Very true. But it still creates a /picture/ of the page, instead of only stamping the image on like updf does. pdftk is also able to do such operations, but would need a driver-script like the one here.
â odinho - Velmont
Jun 4 '14 at 11:16
@slm: Very true. But it still creates a /picture/ of the page, instead of only stamping the image on like updf does. pdftk is also able to do such operations, but would need a driver-script like the one here.
â odinho - Velmont
Jun 4 '14 at 11:16
1
1
I've used pdftk and reportlab to do similar things before (mail merge on top of pdf): stackoverflow.com/questions/356502/⦠-- took lots of effort to find out an effective way. Very many bad ways to process PDFs out there.
â odinho - Velmont
Jun 4 '14 at 12:07
I've used pdftk and reportlab to do similar things before (mail merge on top of pdf): stackoverflow.com/questions/356502/⦠-- took lots of effort to find out an effective way. Very many bad ways to process PDFs out there.
â odinho - Velmont
Jun 4 '14 at 12:07
2
2
Is there a version of this that does not use
xv
? It is too difficult to install xv
and it's not free software...â Chris Beck
Dec 12 '16 at 19:09
Is there a version of this that does not use
xv
? It is too difficult to install xv
and it's not free software...â Chris Beck
Dec 12 '16 at 19:09
 |Â
show 4 more comments
up vote
6
down vote
It's worth mentioning Xournal which has a nice UI and allows adding text, images, and hand-written notes to PDF files. The only problem I've had is it doesn't seem to handle text from native PDF forms very well.
add a comment |Â
up vote
6
down vote
It's worth mentioning Xournal which has a nice UI and allows adding text, images, and hand-written notes to PDF files. The only problem I've had is it doesn't seem to handle text from native PDF forms very well.
add a comment |Â
up vote
6
down vote
up vote
6
down vote
It's worth mentioning Xournal which has a nice UI and allows adding text, images, and hand-written notes to PDF files. The only problem I've had is it doesn't seem to handle text from native PDF forms very well.
It's worth mentioning Xournal which has a nice UI and allows adding text, images, and hand-written notes to PDF files. The only problem I've had is it doesn't seem to handle text from native PDF forms very well.
answered Mar 12 '15 at 15:21
Mike Chelen
16111
16111
add a comment |Â
add a comment |Â
up vote
5
down vote
I've had a reasonably good experience with uPdf.
Installation
sudo add-apt-repository ppa:atareao/updf
sudo apt-get update
sudo apt-get install -y updf
Then fix a bug by editing 2 lines in a Python script.
Usage
Launch uPdf, select the Add an image tool, draw a rectangle around the area where you want the signature to go and select the image file with your signature. A PNG with a transparent background works best.
Wow great tip, thanks!
â Freedom_Ben
Oct 31 '13 at 0:25
3
lol, that's so funny about the editing 2 lines of Python. Because I'm the one who created that comment. And here I am looking for a way to sign a PDF again, so happy about helpful people on the intarwebs :)
â odinho - Velmont
Jun 4 '14 at 11:12
Looks like the last release was for Ubuntu Quantal. Adding the repo on 15.04 (Vivid) errors with "Failed to fetch ..."
â Ponkadoodle
Jun 16 '15 at 20:20
@Wallacoloo The package is only built for Raring and Saucy. For any other distribution you need to manually change the distribution in thelst
file created in/etc/apt/sources.list.d
.
â kynan
Jun 16 '15 at 22:31
Crashes after splash screen on Wily 15.10 using either Precise or Quantal distributions.
â Jonathan Neufeld
Jan 6 '16 at 1:33
 |Â
show 1 more comment
up vote
5
down vote
I've had a reasonably good experience with uPdf.
Installation
sudo add-apt-repository ppa:atareao/updf
sudo apt-get update
sudo apt-get install -y updf
Then fix a bug by editing 2 lines in a Python script.
Usage
Launch uPdf, select the Add an image tool, draw a rectangle around the area where you want the signature to go and select the image file with your signature. A PNG with a transparent background works best.
Wow great tip, thanks!
â Freedom_Ben
Oct 31 '13 at 0:25
3
lol, that's so funny about the editing 2 lines of Python. Because I'm the one who created that comment. And here I am looking for a way to sign a PDF again, so happy about helpful people on the intarwebs :)
â odinho - Velmont
Jun 4 '14 at 11:12
Looks like the last release was for Ubuntu Quantal. Adding the repo on 15.04 (Vivid) errors with "Failed to fetch ..."
â Ponkadoodle
Jun 16 '15 at 20:20
@Wallacoloo The package is only built for Raring and Saucy. For any other distribution you need to manually change the distribution in thelst
file created in/etc/apt/sources.list.d
.
â kynan
Jun 16 '15 at 22:31
Crashes after splash screen on Wily 15.10 using either Precise or Quantal distributions.
â Jonathan Neufeld
Jan 6 '16 at 1:33
 |Â
show 1 more comment
up vote
5
down vote
up vote
5
down vote
I've had a reasonably good experience with uPdf.
Installation
sudo add-apt-repository ppa:atareao/updf
sudo apt-get update
sudo apt-get install -y updf
Then fix a bug by editing 2 lines in a Python script.
Usage
Launch uPdf, select the Add an image tool, draw a rectangle around the area where you want the signature to go and select the image file with your signature. A PNG with a transparent background works best.
I've had a reasonably good experience with uPdf.
Installation
sudo add-apt-repository ppa:atareao/updf
sudo apt-get update
sudo apt-get install -y updf
Then fix a bug by editing 2 lines in a Python script.
Usage
Launch uPdf, select the Add an image tool, draw a rectangle around the area where you want the signature to go and select the image file with your signature. A PNG with a transparent background works best.
edited Jan 7 '15 at 23:39
Forrest Voight
1032
1032
answered Oct 31 '13 at 0:22
kynan
16314
16314
Wow great tip, thanks!
â Freedom_Ben
Oct 31 '13 at 0:25
3
lol, that's so funny about the editing 2 lines of Python. Because I'm the one who created that comment. And here I am looking for a way to sign a PDF again, so happy about helpful people on the intarwebs :)
â odinho - Velmont
Jun 4 '14 at 11:12
Looks like the last release was for Ubuntu Quantal. Adding the repo on 15.04 (Vivid) errors with "Failed to fetch ..."
â Ponkadoodle
Jun 16 '15 at 20:20
@Wallacoloo The package is only built for Raring and Saucy. For any other distribution you need to manually change the distribution in thelst
file created in/etc/apt/sources.list.d
.
â kynan
Jun 16 '15 at 22:31
Crashes after splash screen on Wily 15.10 using either Precise or Quantal distributions.
â Jonathan Neufeld
Jan 6 '16 at 1:33
 |Â
show 1 more comment
Wow great tip, thanks!
â Freedom_Ben
Oct 31 '13 at 0:25
3
lol, that's so funny about the editing 2 lines of Python. Because I'm the one who created that comment. And here I am looking for a way to sign a PDF again, so happy about helpful people on the intarwebs :)
â odinho - Velmont
Jun 4 '14 at 11:12
Looks like the last release was for Ubuntu Quantal. Adding the repo on 15.04 (Vivid) errors with "Failed to fetch ..."
â Ponkadoodle
Jun 16 '15 at 20:20
@Wallacoloo The package is only built for Raring and Saucy. For any other distribution you need to manually change the distribution in thelst
file created in/etc/apt/sources.list.d
.
â kynan
Jun 16 '15 at 22:31
Crashes after splash screen on Wily 15.10 using either Precise or Quantal distributions.
â Jonathan Neufeld
Jan 6 '16 at 1:33
Wow great tip, thanks!
â Freedom_Ben
Oct 31 '13 at 0:25
Wow great tip, thanks!
â Freedom_Ben
Oct 31 '13 at 0:25
3
3
lol, that's so funny about the editing 2 lines of Python. Because I'm the one who created that comment. And here I am looking for a way to sign a PDF again, so happy about helpful people on the intarwebs :)
â odinho - Velmont
Jun 4 '14 at 11:12
lol, that's so funny about the editing 2 lines of Python. Because I'm the one who created that comment. And here I am looking for a way to sign a PDF again, so happy about helpful people on the intarwebs :)
â odinho - Velmont
Jun 4 '14 at 11:12
Looks like the last release was for Ubuntu Quantal. Adding the repo on 15.04 (Vivid) errors with "Failed to fetch ..."
â Ponkadoodle
Jun 16 '15 at 20:20
Looks like the last release was for Ubuntu Quantal. Adding the repo on 15.04 (Vivid) errors with "Failed to fetch ..."
â Ponkadoodle
Jun 16 '15 at 20:20
@Wallacoloo The package is only built for Raring and Saucy. For any other distribution you need to manually change the distribution in the
lst
file created in /etc/apt/sources.list.d
.â kynan
Jun 16 '15 at 22:31
@Wallacoloo The package is only built for Raring and Saucy. For any other distribution you need to manually change the distribution in the
lst
file created in /etc/apt/sources.list.d
.â kynan
Jun 16 '15 at 22:31
Crashes after splash screen on Wily 15.10 using either Precise or Quantal distributions.
â Jonathan Neufeld
Jan 6 '16 at 1:33
Crashes after splash screen on Wily 15.10 using either Precise or Quantal distributions.
â Jonathan Neufeld
Jan 6 '16 at 1:33
 |Â
show 1 more comment
up vote
5
down vote
A lot of people recommend Xournal, but i found it to work as a version of Gimp that i can't use. Thus if you are familiar with Gimp, i would recommend trying it.
- You should have a file with the signature (even a picture taken with the phone or webcam), and a file with the document to be signed. The latter is going to be in PDF format, that can be opened by Gimp
- Apply a threshold on the signature if the white is not white enough
- Convert white to alpha in the signature if the background of the document is not white
- Open the document with Gimp
- Open the signature on top of the document as a new layer (File -> Open as layer)
- Adjust size and position
- Merge layers
- Export as PDF
I do this regularly when i need to sign single page documents, and it takes me more or less five minutes. Unfortunately this won't work if you need for example to sign every page of a multi page document. In the latter case i just print, sign, and scan again!
2
I tried all the above solutions, they all failed after much effort.xournal
doesn't really work properly, there seem to be bugs in it's user interface and I wasn't able to scale or move the images after I imported them.xv
did not compile, requires numerous patches to C code, then finally doesn't work either.updf
, or its ubuntu PPA, doesn't exist anymore afaict. (tested on ubuntu xenial dec 2016)gimp
is the way to go, thanks for this!
â Chris Beck
Dec 12 '16 at 21:04
1
This is a beautiful solution! It does require some image editing skills to create the signature with a transparent background, and to scale the image when added to the document as a layer. BTW, the date can also be added to the working XCF file as a layer with a bit of fuss (text size and location). The resulting PDF export is quite acceptable!
â Tom Russell
Jun 12 at 17:53
1
If the document has multiple pages: import page as layers (default option), save the document as ".mng" (means multiple png) just adding .mng extensions and "export as" option on gimp, now got to command line and do:convert original_name.mng output_name.pdf
. That's all. By the way, if the resolution for output is low, try enlarge size of pdf images while importing the pdf at the begining: try something like "2000" for width. When exporting to MNG dont forget to check the option "compression level" to the maximum this way final file will not be too heavy.
â Diego Andrés DÃaz Espinoza
Sep 24 at 18:05
add a comment |Â
up vote
5
down vote
A lot of people recommend Xournal, but i found it to work as a version of Gimp that i can't use. Thus if you are familiar with Gimp, i would recommend trying it.
- You should have a file with the signature (even a picture taken with the phone or webcam), and a file with the document to be signed. The latter is going to be in PDF format, that can be opened by Gimp
- Apply a threshold on the signature if the white is not white enough
- Convert white to alpha in the signature if the background of the document is not white
- Open the document with Gimp
- Open the signature on top of the document as a new layer (File -> Open as layer)
- Adjust size and position
- Merge layers
- Export as PDF
I do this regularly when i need to sign single page documents, and it takes me more or less five minutes. Unfortunately this won't work if you need for example to sign every page of a multi page document. In the latter case i just print, sign, and scan again!
2
I tried all the above solutions, they all failed after much effort.xournal
doesn't really work properly, there seem to be bugs in it's user interface and I wasn't able to scale or move the images after I imported them.xv
did not compile, requires numerous patches to C code, then finally doesn't work either.updf
, or its ubuntu PPA, doesn't exist anymore afaict. (tested on ubuntu xenial dec 2016)gimp
is the way to go, thanks for this!
â Chris Beck
Dec 12 '16 at 21:04
1
This is a beautiful solution! It does require some image editing skills to create the signature with a transparent background, and to scale the image when added to the document as a layer. BTW, the date can also be added to the working XCF file as a layer with a bit of fuss (text size and location). The resulting PDF export is quite acceptable!
â Tom Russell
Jun 12 at 17:53
1
If the document has multiple pages: import page as layers (default option), save the document as ".mng" (means multiple png) just adding .mng extensions and "export as" option on gimp, now got to command line and do:convert original_name.mng output_name.pdf
. That's all. By the way, if the resolution for output is low, try enlarge size of pdf images while importing the pdf at the begining: try something like "2000" for width. When exporting to MNG dont forget to check the option "compression level" to the maximum this way final file will not be too heavy.
â Diego Andrés DÃaz Espinoza
Sep 24 at 18:05
add a comment |Â
up vote
5
down vote
up vote
5
down vote
A lot of people recommend Xournal, but i found it to work as a version of Gimp that i can't use. Thus if you are familiar with Gimp, i would recommend trying it.
- You should have a file with the signature (even a picture taken with the phone or webcam), and a file with the document to be signed. The latter is going to be in PDF format, that can be opened by Gimp
- Apply a threshold on the signature if the white is not white enough
- Convert white to alpha in the signature if the background of the document is not white
- Open the document with Gimp
- Open the signature on top of the document as a new layer (File -> Open as layer)
- Adjust size and position
- Merge layers
- Export as PDF
I do this regularly when i need to sign single page documents, and it takes me more or less five minutes. Unfortunately this won't work if you need for example to sign every page of a multi page document. In the latter case i just print, sign, and scan again!
A lot of people recommend Xournal, but i found it to work as a version of Gimp that i can't use. Thus if you are familiar with Gimp, i would recommend trying it.
- You should have a file with the signature (even a picture taken with the phone or webcam), and a file with the document to be signed. The latter is going to be in PDF format, that can be opened by Gimp
- Apply a threshold on the signature if the white is not white enough
- Convert white to alpha in the signature if the background of the document is not white
- Open the document with Gimp
- Open the signature on top of the document as a new layer (File -> Open as layer)
- Adjust size and position
- Merge layers
- Export as PDF
I do this regularly when i need to sign single page documents, and it takes me more or less five minutes. Unfortunately this won't work if you need for example to sign every page of a multi page document. In the latter case i just print, sign, and scan again!
edited Dec 14 '16 at 16:36
answered Feb 2 '16 at 10:26
danza
15114
15114
2
I tried all the above solutions, they all failed after much effort.xournal
doesn't really work properly, there seem to be bugs in it's user interface and I wasn't able to scale or move the images after I imported them.xv
did not compile, requires numerous patches to C code, then finally doesn't work either.updf
, or its ubuntu PPA, doesn't exist anymore afaict. (tested on ubuntu xenial dec 2016)gimp
is the way to go, thanks for this!
â Chris Beck
Dec 12 '16 at 21:04
1
This is a beautiful solution! It does require some image editing skills to create the signature with a transparent background, and to scale the image when added to the document as a layer. BTW, the date can also be added to the working XCF file as a layer with a bit of fuss (text size and location). The resulting PDF export is quite acceptable!
â Tom Russell
Jun 12 at 17:53
1
If the document has multiple pages: import page as layers (default option), save the document as ".mng" (means multiple png) just adding .mng extensions and "export as" option on gimp, now got to command line and do:convert original_name.mng output_name.pdf
. That's all. By the way, if the resolution for output is low, try enlarge size of pdf images while importing the pdf at the begining: try something like "2000" for width. When exporting to MNG dont forget to check the option "compression level" to the maximum this way final file will not be too heavy.
â Diego Andrés DÃaz Espinoza
Sep 24 at 18:05
add a comment |Â
2
I tried all the above solutions, they all failed after much effort.xournal
doesn't really work properly, there seem to be bugs in it's user interface and I wasn't able to scale or move the images after I imported them.xv
did not compile, requires numerous patches to C code, then finally doesn't work either.updf
, or its ubuntu PPA, doesn't exist anymore afaict. (tested on ubuntu xenial dec 2016)gimp
is the way to go, thanks for this!
â Chris Beck
Dec 12 '16 at 21:04
1
This is a beautiful solution! It does require some image editing skills to create the signature with a transparent background, and to scale the image when added to the document as a layer. BTW, the date can also be added to the working XCF file as a layer with a bit of fuss (text size and location). The resulting PDF export is quite acceptable!
â Tom Russell
Jun 12 at 17:53
1
If the document has multiple pages: import page as layers (default option), save the document as ".mng" (means multiple png) just adding .mng extensions and "export as" option on gimp, now got to command line and do:convert original_name.mng output_name.pdf
. That's all. By the way, if the resolution for output is low, try enlarge size of pdf images while importing the pdf at the begining: try something like "2000" for width. When exporting to MNG dont forget to check the option "compression level" to the maximum this way final file will not be too heavy.
â Diego Andrés DÃaz Espinoza
Sep 24 at 18:05
2
2
I tried all the above solutions, they all failed after much effort.
xournal
doesn't really work properly, there seem to be bugs in it's user interface and I wasn't able to scale or move the images after I imported them. xv
did not compile, requires numerous patches to C code, then finally doesn't work either. updf
, or its ubuntu PPA, doesn't exist anymore afaict. (tested on ubuntu xenial dec 2016) gimp
is the way to go, thanks for this!â Chris Beck
Dec 12 '16 at 21:04
I tried all the above solutions, they all failed after much effort.
xournal
doesn't really work properly, there seem to be bugs in it's user interface and I wasn't able to scale or move the images after I imported them. xv
did not compile, requires numerous patches to C code, then finally doesn't work either. updf
, or its ubuntu PPA, doesn't exist anymore afaict. (tested on ubuntu xenial dec 2016) gimp
is the way to go, thanks for this!â Chris Beck
Dec 12 '16 at 21:04
1
1
This is a beautiful solution! It does require some image editing skills to create the signature with a transparent background, and to scale the image when added to the document as a layer. BTW, the date can also be added to the working XCF file as a layer with a bit of fuss (text size and location). The resulting PDF export is quite acceptable!
â Tom Russell
Jun 12 at 17:53
This is a beautiful solution! It does require some image editing skills to create the signature with a transparent background, and to scale the image when added to the document as a layer. BTW, the date can also be added to the working XCF file as a layer with a bit of fuss (text size and location). The resulting PDF export is quite acceptable!
â Tom Russell
Jun 12 at 17:53
1
1
If the document has multiple pages: import page as layers (default option), save the document as ".mng" (means multiple png) just adding .mng extensions and "export as" option on gimp, now got to command line and do:
convert original_name.mng output_name.pdf
. That's all. By the way, if the resolution for output is low, try enlarge size of pdf images while importing the pdf at the begining: try something like "2000" for width. When exporting to MNG dont forget to check the option "compression level" to the maximum this way final file will not be too heavy.â Diego Andrés DÃaz Espinoza
Sep 24 at 18:05
If the document has multiple pages: import page as layers (default option), save the document as ".mng" (means multiple png) just adding .mng extensions and "export as" option on gimp, now got to command line and do:
convert original_name.mng output_name.pdf
. That's all. By the way, if the resolution for output is low, try enlarge size of pdf images while importing the pdf at the begining: try something like "2000" for width. When exporting to MNG dont forget to check the option "compression level" to the maximum this way final file will not be too heavy.â Diego Andrés DÃaz Espinoza
Sep 24 at 18:05
add a comment |Â
up vote
3
down vote
While putting my own signature commands into a shell script, I was looking for a way to interactively select the area where the signature should go. Luckily I found this question and the script of Emmanuel Branlard contains the idea on how to do it (with xv
). I implemented the following points:
- use ImageMagicks
display
instead ofxv
- use
stdbuf -oL
and the-update
option to have a live preview - overlay the signature with
pdftk stamp
to prevent image quality degradation - only extract the specific page from the pdf file
- decrypt the signature with
gpg
- encrypt the signed pdf file with
pdftk
- cleanup intermediate files containing the signature with
wipe
So here is the 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
This isn't working for me, imagamagick loads but only displays splash screen.
â Andreas
Jul 27 '16 at 20:41
add a comment |Â
up vote
3
down vote
While putting my own signature commands into a shell script, I was looking for a way to interactively select the area where the signature should go. Luckily I found this question and the script of Emmanuel Branlard contains the idea on how to do it (with xv
). I implemented the following points:
- use ImageMagicks
display
instead ofxv
- use
stdbuf -oL
and the-update
option to have a live preview - overlay the signature with
pdftk stamp
to prevent image quality degradation - only extract the specific page from the pdf file
- decrypt the signature with
gpg
- encrypt the signed pdf file with
pdftk
- cleanup intermediate files containing the signature with
wipe
So here is the 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
This isn't working for me, imagamagick loads but only displays splash screen.
â Andreas
Jul 27 '16 at 20:41
add a comment |Â
up vote
3
down vote
up vote
3
down vote
While putting my own signature commands into a shell script, I was looking for a way to interactively select the area where the signature should go. Luckily I found this question and the script of Emmanuel Branlard contains the idea on how to do it (with xv
). I implemented the following points:
- use ImageMagicks
display
instead ofxv
- use
stdbuf -oL
and the-update
option to have a live preview - overlay the signature with
pdftk stamp
to prevent image quality degradation - only extract the specific page from the pdf file
- decrypt the signature with
gpg
- encrypt the signed pdf file with
pdftk
- cleanup intermediate files containing the signature with
wipe
So here is the 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
While putting my own signature commands into a shell script, I was looking for a way to interactively select the area where the signature should go. Luckily I found this question and the script of Emmanuel Branlard contains the idea on how to do it (with xv
). I implemented the following points:
- use ImageMagicks
display
instead ofxv
- use
stdbuf -oL
and the-update
option to have a live preview - overlay the signature with
pdftk stamp
to prevent image quality degradation - only extract the specific page from the pdf file
- decrypt the signature with
gpg
- encrypt the signed pdf file with
pdftk
- cleanup intermediate files containing the signature with
wipe
So here is the 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
answered Jul 9 '14 at 9:45
bodo
1189
1189
This isn't working for me, imagamagick loads but only displays splash screen.
â Andreas
Jul 27 '16 at 20:41
add a comment |Â
This isn't working for me, imagamagick loads but only displays splash screen.
â Andreas
Jul 27 '16 at 20:41
This isn't working for me, imagamagick loads but only displays splash screen.
â Andreas
Jul 27 '16 at 20:41
This isn't working for me, imagamagick loads but only displays splash screen.
â Andreas
Jul 27 '16 at 20:41
add a comment |Â
up vote
1
down vote
(Would have left as a comment to the updf answer, but stackexchange's policy on "karma" prevents me commenting, but does not prevent me leaving an answer).
updf is really good for this. Having used preview on MacOS to "sign" documents, updf offers the closest user experience to this.
The following works on Ubuntu 14.10 and Debian 8.
I didn't want to add a third party ppa to my system, so got updf running in the following way instead:
$ bzr branch lp:updf
then made the 2 line edit as referenced from the other answer.
Install dependencies:
# 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
(the above was sufficient; not every package may be necessary, though).
and then the python program is runnable in-place:
$ ./src/updf.py
Unfortunately, quality can be severely affected in the output document compared to the input document. The right way to do this would be to overlay the signature, and not change the original, in a lossless process. Whereas updf appears to engage in re-encoding of the original.
I had to addpython-gi-cairo
to the dependencies to make it work.
â Joma
Mar 18 '15 at 7:07
Joma: thanks; I've now added python-gi-cairo to the list.
â projix
Jun 5 '16 at 20:01
add a comment |Â
up vote
1
down vote
(Would have left as a comment to the updf answer, but stackexchange's policy on "karma" prevents me commenting, but does not prevent me leaving an answer).
updf is really good for this. Having used preview on MacOS to "sign" documents, updf offers the closest user experience to this.
The following works on Ubuntu 14.10 and Debian 8.
I didn't want to add a third party ppa to my system, so got updf running in the following way instead:
$ bzr branch lp:updf
then made the 2 line edit as referenced from the other answer.
Install dependencies:
# 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
(the above was sufficient; not every package may be necessary, though).
and then the python program is runnable in-place:
$ ./src/updf.py
Unfortunately, quality can be severely affected in the output document compared to the input document. The right way to do this would be to overlay the signature, and not change the original, in a lossless process. Whereas updf appears to engage in re-encoding of the original.
I had to addpython-gi-cairo
to the dependencies to make it work.
â Joma
Mar 18 '15 at 7:07
Joma: thanks; I've now added python-gi-cairo to the list.
â projix
Jun 5 '16 at 20:01
add a comment |Â
up vote
1
down vote
up vote
1
down vote
(Would have left as a comment to the updf answer, but stackexchange's policy on "karma" prevents me commenting, but does not prevent me leaving an answer).
updf is really good for this. Having used preview on MacOS to "sign" documents, updf offers the closest user experience to this.
The following works on Ubuntu 14.10 and Debian 8.
I didn't want to add a third party ppa to my system, so got updf running in the following way instead:
$ bzr branch lp:updf
then made the 2 line edit as referenced from the other answer.
Install dependencies:
# 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
(the above was sufficient; not every package may be necessary, though).
and then the python program is runnable in-place:
$ ./src/updf.py
Unfortunately, quality can be severely affected in the output document compared to the input document. The right way to do this would be to overlay the signature, and not change the original, in a lossless process. Whereas updf appears to engage in re-encoding of the original.
(Would have left as a comment to the updf answer, but stackexchange's policy on "karma" prevents me commenting, but does not prevent me leaving an answer).
updf is really good for this. Having used preview on MacOS to "sign" documents, updf offers the closest user experience to this.
The following works on Ubuntu 14.10 and Debian 8.
I didn't want to add a third party ppa to my system, so got updf running in the following way instead:
$ bzr branch lp:updf
then made the 2 line edit as referenced from the other answer.
Install dependencies:
# 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
(the above was sufficient; not every package may be necessary, though).
and then the python program is runnable in-place:
$ ./src/updf.py
Unfortunately, quality can be severely affected in the output document compared to the input document. The right way to do this would be to overlay the signature, and not change the original, in a lossless process. Whereas updf appears to engage in re-encoding of the original.
edited Jun 5 '16 at 20:01
answered Mar 12 '15 at 8:46
projix
1285
1285
I had to addpython-gi-cairo
to the dependencies to make it work.
â Joma
Mar 18 '15 at 7:07
Joma: thanks; I've now added python-gi-cairo to the list.
â projix
Jun 5 '16 at 20:01
add a comment |Â
I had to addpython-gi-cairo
to the dependencies to make it work.
â Joma
Mar 18 '15 at 7:07
Joma: thanks; I've now added python-gi-cairo to the list.
â projix
Jun 5 '16 at 20:01
I had to add
python-gi-cairo
to the dependencies to make it work.â Joma
Mar 18 '15 at 7:07
I had to add
python-gi-cairo
to the dependencies to make it work.â Joma
Mar 18 '15 at 7:07
Joma: thanks; I've now added python-gi-cairo to the list.
â projix
Jun 5 '16 at 20:01
Joma: thanks; I've now added python-gi-cairo to the list.
â projix
Jun 5 '16 at 20:01
add a comment |Â
up vote
0
down vote
For completeness, there is an alternative script to do this, which does not convert the pdf to a (low quality) image, in contrast to the one mentioned so far: https://github.com/martinruenz/signpdf
My experience with the other solutions was:
Xournal messed with the pdf (it seemed to work after building from source though)- The script SignPDF converts pdfs to images and reduces quality significantly. It also has a troublesome dependency (xv)
- I didn't try the gimp and updf option
- In the end I used Acrobat Reader in a VM as I also had to fill various forms
Thanks for sharing back. I'll check out your script. I've had really good success with Xournal, tho you have to make sure not to export to the original filename as that can cause issues. If you pick a new name to export to (so you aren't overwriting the original pdf) then you'll avoid this bug.
â Freedom_Ben
Jun 9 at 3:15
add a comment |Â
up vote
0
down vote
For completeness, there is an alternative script to do this, which does not convert the pdf to a (low quality) image, in contrast to the one mentioned so far: https://github.com/martinruenz/signpdf
My experience with the other solutions was:
Xournal messed with the pdf (it seemed to work after building from source though)- The script SignPDF converts pdfs to images and reduces quality significantly. It also has a troublesome dependency (xv)
- I didn't try the gimp and updf option
- In the end I used Acrobat Reader in a VM as I also had to fill various forms
Thanks for sharing back. I'll check out your script. I've had really good success with Xournal, tho you have to make sure not to export to the original filename as that can cause issues. If you pick a new name to export to (so you aren't overwriting the original pdf) then you'll avoid this bug.
â Freedom_Ben
Jun 9 at 3:15
add a comment |Â
up vote
0
down vote
up vote
0
down vote
For completeness, there is an alternative script to do this, which does not convert the pdf to a (low quality) image, in contrast to the one mentioned so far: https://github.com/martinruenz/signpdf
My experience with the other solutions was:
Xournal messed with the pdf (it seemed to work after building from source though)- The script SignPDF converts pdfs to images and reduces quality significantly. It also has a troublesome dependency (xv)
- I didn't try the gimp and updf option
- In the end I used Acrobat Reader in a VM as I also had to fill various forms
For completeness, there is an alternative script to do this, which does not convert the pdf to a (low quality) image, in contrast to the one mentioned so far: https://github.com/martinruenz/signpdf
My experience with the other solutions was:
Xournal messed with the pdf (it seemed to work after building from source though)- The script SignPDF converts pdfs to images and reduces quality significantly. It also has a troublesome dependency (xv)
- I didn't try the gimp and updf option
- In the end I used Acrobat Reader in a VM as I also had to fill various forms
answered Jun 8 at 23:39
Martin R.
1011
1011
Thanks for sharing back. I'll check out your script. I've had really good success with Xournal, tho you have to make sure not to export to the original filename as that can cause issues. If you pick a new name to export to (so you aren't overwriting the original pdf) then you'll avoid this bug.
â Freedom_Ben
Jun 9 at 3:15
add a comment |Â
Thanks for sharing back. I'll check out your script. I've had really good success with Xournal, tho you have to make sure not to export to the original filename as that can cause issues. If you pick a new name to export to (so you aren't overwriting the original pdf) then you'll avoid this bug.
â Freedom_Ben
Jun 9 at 3:15
Thanks for sharing back. I'll check out your script. I've had really good success with Xournal, tho you have to make sure not to export to the original filename as that can cause issues. If you pick a new name to export to (so you aren't overwriting the original pdf) then you'll avoid this bug.
â Freedom_Ben
Jun 9 at 3:15
Thanks for sharing back. I'll check out your script. I've had really good success with Xournal, tho you have to make sure not to export to the original filename as that can cause issues. If you pick a new name to export to (so you aren't overwriting the original pdf) then you'll avoid this bug.
â Freedom_Ben
Jun 9 at 3:15
add a comment |Â
up vote
0
down vote
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 on the pop up menu that says, 'freehand line.' Draw out your signature. If you want it black ink rather then neon green, select 'Settings' from the menu, select 'Configure Okular,' select 'Annotations' button on the left. Select 'Freehand Line' from the options, then select the 'Edit' button. You can adjust both the line thickness and color here. Hit Apply and enjoy.
New contributor
add a comment |Â
up vote
0
down vote
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 on the pop up menu that says, 'freehand line.' Draw out your signature. If you want it black ink rather then neon green, select 'Settings' from the menu, select 'Configure Okular,' select 'Annotations' button on the left. Select 'Freehand Line' from the options, then select the 'Edit' button. You can adjust both the line thickness and color here. Hit Apply and enjoy.
New contributor
add a comment |Â
up vote
0
down vote
up vote
0
down vote
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 on the pop up menu that says, 'freehand line.' Draw out your signature. If you want it black ink rather then neon green, select 'Settings' from the menu, select 'Configure Okular,' select 'Annotations' button on the left. Select 'Freehand Line' from the options, then select the 'Edit' button. You can adjust both the line thickness and color here. Hit Apply and enjoy.
New contributor
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 on the pop up menu that says, 'freehand line.' Draw out your signature. If you want it black ink rather then neon green, select 'Settings' from the menu, select 'Configure Okular,' select 'Annotations' button on the left. Select 'Freehand Line' from the options, then select the 'Edit' button. You can adjust both the line thickness and color here. Hit Apply and enjoy.
New contributor
New contributor
answered 6 mins ago
Christian
11
11
New contributor
New contributor
add a comment |Â
add a comment |Â
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f85873%2fhow-can-i-add-a-signature-png-to-a-pdf-in-linux%23new-answer', 'question_page');
);
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password