5 Stimmen

Einfache Zeile mit zwei Hyperlinks am Ende in Postscript und PDFMaker

Es ist für mich super verwirrend, da pdfmaker und Postscript dasselbe machen, aber im praktischen Programmierstil ziemlich unterschiedlich sind.

Ich weiß, wie man in der Postscript-Sprache eine Linie mit 2 Kreisen an ihren Enden erstellt, mit den Befehlen moveto, lineto und arc. Jedoch muss ich anscheinend zu pdfmark wechseln wegen Hyperlinks, das pdfmark-Handbuch ist super unverständlich und es gibt keine andere Referenz (Buch/Online-Tutorial).

Also wäre ich dankbar, wenn jemand so etwas erzeugen könnte (wie meine Abbildung zeigt) mit einer kurzen Beschreibung.

Bildbeschreibung hier eingeben

6voto

Chris Haas Punkte 50077

Hier ist die einfachste mögliche Version. Dadurch wird im unteren linken Bereich des PDFs ein anklickbarer Bereich erstellt, der zu einer URL führt.

[/Rect [ 0 0 200 200 ]                      % Zeichne ein Rechteck
/Action                                     % Definiere eine Aktion
  <<
   /Subtype /URI                            % Definiere den Untertyp der Aktion als Hyperlink
   /URI (http://www.example.com/)           % Setze die URL
  >>
/Subtype /Link                              % Setze den Typ dieses PDFmarks auf einen Link
/ANN pdfmark                                % Füge die Annotation hinzu

Standardmäßig wird ein Rahmen gezeichnet, den Sie möglicherweise entfernen möchten:

[/Rect [ 0 0 200 200 ]                      % Zeichne ein Rechteck
/Action                                     % Definiere eine Aktion
  <<
   /Subtype /URI                            % Definiere den Untertyp der Aktion als Hyperlink
   /URI (http://www.example.com/)           % Setze die URL
  >>
/Border [0 0 0]                             % Entferne den Rahmen
/Subtype /Link                              % Setze den Typ dieses PDFmarks auf einen Link
/ANN pdfmark                                % Füge die Annotation hinzu

Dies erstellt jedoch nur einen anklickbaren Bereich. Sie müssen dann noch etwas Text zeichnen, auf den man klicken kann:

/Helvetica findfont 16 scalefont setfont    % Setze die Schriftart auf Helvetica 16pt
5 100 moveto                                % Setze den Zeichenort
(http://www.example.com/) show              % Zeige etwas Text

Zuletzt ist pdfmark technisch gesehen im Standard nicht definiert, daher wird empfohlen, dass Sie etwas definieren, um damit umzugehen, wenn Sie Adobes Distiller nicht verwenden. Dieser Code wird im Grunde einfach pdfmark ignorieren, wenn der Compiler es nicht erkennt:

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

Und hier ist ein vollständiges funktionierendes PostScript-Programm:

%!PS-Adobe-1.0

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

[/Rect [ 0 0 200 200 ]                      % Zeichne ein Rechteck
/Action                                     % Definiere eine Aktion
  <<
   /Subtype /URI                            % Definiere den Untertyp der Aktion als Hyperlink
   /URI (http://www.example.com/)           % Setze die URL
  >>
/Border [0 0 0]                             % Entferne den Rahmen
/Subtype /Link                              % Setze den Typ dieses PDFmarks auf einen Link
/ANN pdfmark                                % Füge die Annotation hinzu

/Helvetica findfont 16 scalefont setfont    % Setze die Schriftart auf Helvetica 16pt
5 100 moveto                                % Setze den Zeichenort
(http://www.example.com/) show              % Zeige etwas Text

showpage

ÄNDERUNG

Schauen Sie sich auch dieses Handbuch für ausführlichere Anweisungen zu pdfmark an: Manual

ÄNDERUNG 2

Außerdem sollte ich darauf hinweisen, dass ich die Dinge aus Lehrzwecken abstandshalber angeordnet habe. In den meisten Fällen wird der /Action als eine einzelne Zeile geschrieben, z. B.:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X