Создавайте аннотации для выделения PDF с помощью Ghostscript
У меня есть следующий файл PostScript, содержащий pdfmark для создания аннотации выделения:
%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
поля расположены не в том порядке, в котором спецификации определены, поскольку Adobe реализует его по-другому.)
Ghostscript создает PDF с аннотацией, но есть две проблемы:
- Он работает в Adobe Reader и Okular, но в Evince он не активен.
Более важно: выделенная область не является прямоугольником, но имеет закругленные левый и правый края, как видно из следующего снимка экрана:
Почему это так и как я могу получить прямые края?
1 ответ
Вы должны начать с просмотра содержимого PDF-файла и узнать, что там поместил Ghostscript (или, точнее, устройство pdfwrite). Публикация примера файла PDF для просмотра также будет разумным шагом, а также сообщит нам, какую версию Ghostscript вы используете.
Кстати, этот заголовок должен быть%!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
Они по сути идентичны.
Итак, чтобы ответить на ваши вопросы:
Если это работает в Acrobat, то, возможно, вам следует задать этот вопрос разработчикам Evince.
Скругленные края нарисованы приложением, которое читает аннотацию PDF. Так как Acrobat рисует их таким образом, все остальные делают то же самое (включая интерпретатор PDF Ghostscript). Если вам это не нравится, вам придется изменить приложение для просмотра.