使用Ghostscript创建精选PDF注释

时间:2016-02-09 08:03:59

标签: pdf ghostscript postscript pdf-annotations

我有以下包含pdfmark的PostScript文件来创建高亮注释:

%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

(请注意,/QuadPoints字段的坐标不在the order the specs defineAdobe implements it differently。)

Ghostscript创建一个带有注释的PDF,但有两个问题:

  1. 它适用于Adobe Reader和Okular,但在Evince中无法点击。
  2. 更重要的是:突出显示的区域不是矩形,而是左右边缘,如下面的屏幕截图所示:

    screenshot of annotation

    为什么会这样,我怎样才能得到直边?

1 个答案:

答案 0 :(得分:2)

您应该首先查看PDF文件的内容,然后查看Ghostscript(或更准确地说是pdfwrite设备)放在那里的内容。发布示例PDF文件也是一个明智的举动,并且还会告诉我们您正在使用哪个版本的Ghostscript。

BT,那个标题应该是%!PS,你错过了'!'。当然,因为它的注释与PostScript解释器无关。

现在,这是使用您问题中的代码从Adobe Acrobat Distiller获取注释的输出:

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

这与Ghostscript的pdfwrite设备相同:

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

这些基本相同。

所以回答你的问题:

  1. 如果它在Acrobat中有效,那么也许你应该向Evince开发人员询问这个问题。

  2. 圆形边缘由应用程序绘制,该应用程序读取PDF注释。由于Acrobat以这种方式绘制它们,所以其他人都这样做(包括Ghostscript的PDF解释器)。如果您不喜欢它,则必须更改查看应用程序。