Last modification: Dec 1 1994, 10:47

PDF (Portable  Document Format)  is  a format   defined by  Adobe  and
describes  a page description   language that supports hyperlinks. The
adobe product `distill' can  create PDF documents from postscript ones
by translating the page    description. In  addition, it   allows  the
postscript file  to specify  the  hyperlinks through  a new postscript
operator, pdfmark.

This  alpha release  of the  changed  version of ghostview is  a first
attempt to  make ghostview  pdfmark aware.  It recognizes the  pdfmark
operator, and tries to cretae `hotlinks' on the display. A key click
on the link follows the link.

The companion products,  the modifications to dvips  by Mark Doyle and
the    set of      macros   comprising  hypertex  (as   described   at
http://xxx.lanl.gov/hypertex) facilitates the  generation  of these ps
files   from   TeX documents. The    modified dvips  actually   uses a
postscript procedure pdfm (which translates  to an appropriate call to
pdfmark if pdfm is undefined)  to describe  the linkage structure.  As
the translation of pdfm to  pdfmark is lossy, ghostview should ideally
understand pdfm directly: see the TODO list.

All keys work as in the standard release of ghostscript: except 

  1) any key-click inside a link follows link instead of magnifying
     it.
  2) b or B goes back in link history if history is non-null: goes to
     previous page (default behaviour) otherwise.  (delete, backspace
     etc. are still bound to previous_page) does nothing on first page
     if link history empty. 
  3) page menu has an extra entry for back which works as in (2).

Here is what it never plans to do:

  1) Support SRCPAGE option of pdfmark.
  2) Support pdfmarks in non-DSC structured documents.

Here is the TODO list. (can also be considered BUG list)

1) Handle pdfmarks of kinds other than /LNK (/ANNOT etc. should be
   very easy) (Currently ignores them)
2) Handle pdfmarks called in non-default coordinate system.
3) Handle /LNK to other documents.
4) Look at target view specification as well (currently it only looks
   at target page)
5) Check if communication with ghostscript possible through means
   other than the stdout.
6) Do a proper job of parsing pdfmark parameters.(easy but tedious)
7) Use the rx and ry parameters of the /Border specification of
   pdfmark. (easy)
8) Support forward/backward navigation or menu-oriented navigation in
   link history.

Here is the TODO list for processing pdfm (in addition to pdfmark).

1) Allow initial jump to arbitrary target.
2) Allow user specified jump to arbitrary target.
3) Take into account target coordinate.
4) Allow network URL's.
5) Make middle click open a smaller window with the target properly
   centered. 
