How can I add a signature .png to a PDF in Linux?

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP











up vote
40
down vote

favorite
14












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)?










share|improve this question



























    up vote
    40
    down vote

    favorite
    14












    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)?










    share|improve this question

























      up vote
      40
      down vote

      favorite
      14









      up vote
      40
      down vote

      favorite
      14






      14





      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)?










      share|improve this question















      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






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Aug 7 '13 at 23:32









      Gilles

      514k12110231550




      514k12110231550










      asked Aug 7 '13 at 20:04









      Freedom_Ben

      74921319




      74921319




















          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/






          share|improve this answer
















          • 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


















          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?.






          share|improve this answer






















          • @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 use xv? It is too difficult to install xv and it's not free software...
            – Chris Beck
            Dec 12 '16 at 19:09

















          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.






          share|improve this answer



























            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.






            share|improve this answer






















            • 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 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

















            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!






            share|improve this answer


















            • 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

















            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 of xv

            • 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





            share|improve this answer




















            • This isn't working for me, imagamagick loads but only displays splash screen.
              – Andreas
              Jul 27 '16 at 20:41

















            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.






            share|improve this answer






















            • 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


















            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





            share|improve this answer




















            • 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


















            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.





            share








            New contributor




            Christian is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
            Check out our Code of Conduct.

















              Your Answer







              StackExchange.ready(function()
              var channelOptions =
              tags: "".split(" "),
              id: "106"
              ;
              initTagRenderer("".split(" "), "".split(" "), channelOptions);

              StackExchange.using("externalEditor", function()
              // Have to fire editor after snippets, if snippets enabled
              if (StackExchange.settings.snippets.snippetsEnabled)
              StackExchange.using("snippets", function()
              createEditor();
              );

              else
              createEditor();

              );

              function createEditor()
              StackExchange.prepareEditor(
              heartbeatType: 'answer',
              convertImagesToLinks: false,
              noModals: false,
              showLowRepImageUploadWarning: true,
              reputationToPostImages: null,
              bindNavPrevention: true,
              postfix: "",
              onDemand: true,
              discardSelector: ".discard-answer"
              ,immediatelyShowMarkdownHelp:true
              );



              );













               

              draft saved


              draft discarded


















              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






























              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/






              share|improve this answer
















              • 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















              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/






              share|improve this answer
















              • 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













              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/






              share|improve this answer












              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/







              share|improve this answer












              share|improve this answer



              share|improve this answer










              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













              • 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













              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?.






              share|improve this answer






















              • @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 use xv? It is too difficult to install xv and it's not free software...
                – Chris Beck
                Dec 12 '16 at 19:09














              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?.






              share|improve this answer






















              • @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 use xv? It is too difficult to install xv and it's not free software...
                – Chris Beck
                Dec 12 '16 at 19:09












              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?.






              share|improve this answer














              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?.







              share|improve this answer














              share|improve this answer



              share|improve this answer








              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 use xv? It is too difficult to install xv 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







              • 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 use xv? It is too difficult to install xv 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










              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.






              share|improve this answer
























                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.






                share|improve this answer






















                  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.






                  share|improve this answer












                  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.







                  share|improve this answer












                  share|improve this answer



                  share|improve this answer










                  answered Mar 12 '15 at 15:21









                  Mike Chelen

                  16111




                  16111




















                      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.






                      share|improve this answer






















                      • 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 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














                      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.






                      share|improve this answer






















                      • 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 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












                      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.






                      share|improve this answer














                      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.







                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      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 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
















                      • 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 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















                      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










                      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!






                      share|improve this answer


















                      • 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














                      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!






                      share|improve this answer


















                      • 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












                      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!






                      share|improve this answer














                      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!







                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      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












                      • 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










                      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 of xv

                      • 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





                      share|improve this answer




















                      • This isn't working for me, imagamagick loads but only displays splash screen.
                        – Andreas
                        Jul 27 '16 at 20:41














                      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 of xv

                      • 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





                      share|improve this answer




















                      • This isn't working for me, imagamagick loads but only displays splash screen.
                        – Andreas
                        Jul 27 '16 at 20:41












                      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 of xv

                      • 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





                      share|improve this answer












                      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 of xv

                      • 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






                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      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
















                      • 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










                      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.






                      share|improve this answer






















                      • 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















                      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.






                      share|improve this answer






















                      • 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













                      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.






                      share|improve this answer














                      (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.







                      share|improve this answer














                      share|improve this answer



                      share|improve this answer








                      edited Jun 5 '16 at 20:01

























                      answered Mar 12 '15 at 8:46









                      projix

                      1285




                      1285











                      • 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

















                      • 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
















                      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











                      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





                      share|improve this answer




















                      • 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















                      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





                      share|improve this answer




















                      • 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













                      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





                      share|improve this answer












                      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






                      share|improve this answer












                      share|improve this answer



                      share|improve this answer










                      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

















                      • 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











                      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.





                      share








                      New contributor




                      Christian is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                      Check out our Code of Conduct.





















                        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.





                        share








                        New contributor




                        Christian is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                        Check out our Code of Conduct.



















                          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.





                          share








                          New contributor




                          Christian is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.









                          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.






                          share








                          New contributor




                          Christian is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.








                          share


                          share






                          New contributor




                          Christian is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.









                          answered 6 mins ago









                          Christian

                          11




                          11




                          New contributor




                          Christian is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.





                          New contributor





                          Christian is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.






                          Christian is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
                          Check out our Code of Conduct.



























                               

                              draft saved


                              draft discarded















































                               


                              draft saved


                              draft discarded














                              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













































































                              Popular posts from this blog

                              How to check contact read email or not when send email to Individual?

                              Bahrain

                              Postfix configuration issue with fips on centos 7; mailgun relay