How to add a picture onto an existing pdf file?

I would do it like this:

  1. Create a blank page PDF with just the signature in the lower left corner on it. If you wanna be fancy, make the signature blue or red or green.... Important: the page should use a transparent background, not a white one! Keep this around as the "master-sig.pdf".

  2. Use Ghostscript to convert the "master-sig.pdf" into a new "working-sig.pdf" page, with the signature shifted to the spot where you need it:

    gs -o working-sig.pdf \
       -sDEVICE=pdfwrite \
       -c "<< /PageOffset [216 504] >> setpagedevice" \
        master-sig.pdf
    
    This one would shift the signature by 3 inches to the left, and 7 inches to the top (72 points in PostScript == 1 inch on a ruler). You'll have to experiment a bit, or apply a hardware ruler on the piece of paper printout (plus some algebra) to determine the correct numbers.
  3. Use pdftk to overlay the "working-sig.pdf" onto your "contract.pdf" with the result as "signed-contract.pdf"

    pdftk \
        contract.pdf \
        stamp   working-sig.pdf \
        output  signed-contract.pdf
    

If you are using Ubuntu:

sudo apt-get install pdfedit

To start PDFEdit, type:

$ pdfedit /path/to/pdf.file &
$ pdfedit &

This will give you use of a PDF editor to fix your problem.

This software is a WYSIWYG visual editor that also supports scripting and almost anything can be scripted. PDFedit is a low-level tool for users. You can use this software:

To write / create / edit PDF files.

Print PDF files.

Save PDF files.

Export PDF files to XML etc.


As of 2018, pdfedit is no longer in any repositories, but happily LibreOffice Draw (likely installed on Ubuntu already, or easy to get through your distribution's package manager) now works very well to edit text on most PDFs (for instance to fill in forms) and to insert images (for instance to paste in your signature).