Create Highlight PDF annotations with Ghostscript

1.2k Views Asked by At

I have the following PostScript file containing a pdfmark to create a highlight annotation:

%PS

/Courier 30 selectfont
15 15 moveto
(Test)show

[ /Rect [0 0 80 30]
/Subtype /Highlight
/Color [.8 .8 0]
/QuadPoints [10 40 90 40 10 10 90 10]
/Contents (Test annotation)
/ANN pdfmark

showpage

(Note that the coordinates of the /QuadPoints field are not in the order the specs define, as Adobe implements it differently.)

Ghostscript creates a PDF with an annotation from that, but there are two issues:

  1. It works in Adobe Reader and Okular, but it's not clickable in Evince.
  2. More important: The highlighted area isn't a rectangle but has rounded left and right edges, as can be seen from the following screenshot:

    screenshot of annotation

    Why is that and how can I get straight edges?

1

There are 1 best solutions below

1
On BEST ANSWER

You should start by looking at the content of the PDF file and seeing what Ghostscript (or more accurately the pdfwrite device) has put in there. Posting an example PDF file to look at would be a sensible move too, and would also tell us which version of Ghostscript you are using.

BTW that header should be %!PS, you missed off the '!'. Of course since its a comment it doesn't matter to the PostScript interpreter.

Now here's the output from Adobe Acrobat Distiller for the annotation, using the code in your question:

1 0 obj
<</Type/Annot/Subtype/Highlight/Rect[0 0 80 30]/C[.8 .8 0]/QuadPoints[10 40 90 40 10 10 90 10]/Contents(Test annotation)>>
endobj

And here's the same from Ghostscript's pdfwrite device:

8 0 obj
<</Type/Annot
/Rect [0 0 80 30]
/C [0.8 0.8 0]
/QuadPoints [10 40 90 40 10 10 90 10]
/Contents(Test annotation)
/Subtype/Highlight>>endobj

These are essentially identical.

So to answer your questions:

  1. If it works in Acrobat, then perhaps you should ask the Evince developers this question.

  2. The rounded edges are drawn by the application which reads the PDF annotation. Since Acrobat draws them that way, everyone else does the same (including Ghostscript's PDF interpreter). If you don't like it you will have to change the viewing application.