простая строка с двумя гиперссылками в конце в postscript и pdfmaker - PullRequest
4 голосов
/ 13 августа 2011

Это суперконфузионно для меня, так как pdfmaker и postscript делают одно и то же, но на практике стиль кодирования совершенно разный.Команда arc на языке Postscript, однако, по-видимому, мне нужно перейти к pdfmark из-за гиперссылок, руководство по pdfmark очень непонятно, и другой ссылки (книга / онлайн-учебник) нет.1006 * Итак, я был бы признателен, если бы можно было сгенерировать такую ​​вещь (как показано на моем рисунке) с небольшим описанием.

enter image description here

1 Ответ

6 голосов
/ 25 августа 2011

Вот самая простая из возможных версий.Это создает активируемую область в нижнем левом углу PDF, которая переходит на URL.

[/Rect [ 0 0 200 200 ]                      % Draw a rectangle
/Action                                     % Define an action
  <<
   /Subtype /URI                            % Define the action's subtype as a hyperlink
   /URI (http://www.example.com/)           % Set the URL
  >>
/Subtype /Link                              % Set the type of this PDFmark to a link
/ANN pdfmark                                % Add the annotation

По умолчанию будет нарисована граница, поэтому вы можете захотеть очистить ее:

[/Rect [ 0 0 200 200 ]                      % Draw a rectangle
/Action                                     % Define an action
  <<
   /Subtype /URI                            % Define the action's subtype as a hyperlink
   /URI (http://www.example.com/)           % Set the URL
  >>
/Border [0 0 0]                             % Remove the border
/Subtype /Link                              % Set the type of this PDFmark to a link
/ANN pdfmark                                % Add the annotation

Однако, это только создает активную область.Затем вам нужно нарисовать текст, по которому можно щелкнуть:

/Helvetica findfont 16 scalefont setfont    % Set the font to Helvetica 16pt
5 100 moveto                                % Set the drawing location
(http://www.example.com/) show              % Show some text

Наконец, pdfmark технически не определено в стандарте, поэтому они рекомендуют, чтобы, если вы не используете Adobe Distiller, вы определяли что-то длясправиться.Этот код в основном просто игнорирует pdfmark, если компилятор его не распознает:

/pdfmark where
  {pop}
  {
  /globaldict where
    { pop globaldict }
    { userdict }
  ifelse
   /pdfmark /cleartomark load put
  }
 ifelse

А вот полнофункциональная программа PostScript:

%!PS-Adobe-1.0

/pdfmark where
  {pop}
  {
  /globaldict where
    { pop globaldict }
    { userdict }
  ifelse
   /pdfmark /cleartomark load put
  }
 ifelse


[/Rect [ 0 0 200 200 ]                      % Draw a rectangle
/Action                                     % Define an action
  <<
   /Subtype /URI                            % Define the action's subtype as a hyperlink
   /URI (http://www.example.com/)           % Set the URL
  >>
/Border [0 0 0]                             % Remove the border
/Subtype /Link                              % Set the type of this PDFmark to a link
/ANN pdfmark                                % Add the annotation

/Helvetica findfont 16 scalefont setfont    % Set the font to Helvetica 16pt
5 100 moveto                                % Set the drawing location
(http://www.example.com/) show              % Show some text

showpage

EDIT

Кроме того, проверьте это руководство для получения более подробных инструкций по pdfmark

РЕДАКТИРОВАТЬ 2

ТакжеКроме того, я должен отметить, что я выделил вещи в учебных целях.В большинстве случаев вы увидите /Action в виде одной строки, например:

/Action << /Subtype /URI /URI (http://www.example.com/) >>
...