Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

can I use Ghostscript to overlay a text (fax) header onto a PDF and/or TIFF?

I'm writing an application that faxes a document (many supported types) provided by the end user. A requirement is that the end user can also provide text to be used as part of a custom fax header.

I've been using Ghostscript to render PDFs as TIFFs and it's been working great so far, but I have yet to find a straightforward way of overlaying the custom header at the top of a PDF. I've tried out a few recommendations:

  • How can I make a program overlay text on a postscript file?
  • How can I add a footer to the bottom of each page of a postscript or pdf file in linux?
  • Add comments to PDF files automagically with regular expressions
  • Stamp PDF file with control for position of stamp file

... with no luck.

I've used ImageMagick to do this successfully with documents rendered to TIFF via other tools, and I'm aware that ImageMagick can render PDF-to-TIFF on its own. However, I want to stick with Ghostscript because in my experience it has performed better and rendered clearer TIFFs.

Is this possible using Ghostscript and perhaps a PS helper script?

Edit:

Ghostscript (v9.04) is not throwing any errors. For example:

gswin64c -dSAFER -dBATCH -dNOPAUSE -dPDFFitPage -sDEVICE=tiffg3 ^
    -sOutputFile=goofy.tif ^
    -c "/Courier findfont 12 scalefont setfont 50 765 moveto (header text) show" ^
    -f goofy.pdf

... produces a TIFF of the original PDF, but without the text I tried to add. If I append showpage to the postscript one-liner it (predictably, I suppose) prints a new, blank-except-for-header page, which doesn't help me much.

like image 507
lightthievesall Avatar asked Sep 08 '25 10:09

lightthievesall


1 Answers

I would use another commandline tool combined with Ghostscript for this task. This tool is pdftk.exe. Then use a 3 step approach:

  1. The task of Ghostscript would be to create an (otherwise empty) page with the header text:
    gswin64c.exe ^
      -o header.pdf ^
      -sDEVICE=pdfwrite ^
      -c "/Courier findfont 12 scalefont setfont" ^
      -c "50 765 moveto (header text) show showpage"
    
  2. The task of pdftk would be to overlay (stamp or background) the PDF file with the text header over the original PDF:
     pdftk.exe goofy.pdf background header.pdf output goofy-with-header.pdf
    or
     pdftk.exe goofy.pdf stamp header.pdf output goofy-with-header.pdf
  3. The last step is to employ Ghostscript again in order to create your final TIFF output:
    gswin64c.exe ^
       -dPDFFitPage ^
       -o goofy-with-header.tif ^
       -sDEVICE=tiffg3 ^
        goofy-with-header.pdf
like image 199
Kurt Pfeifle Avatar answered Sep 10 '25 01:09

Kurt Pfeifle