#438: WebSubmit: preserve bookmarks when stamping PDF files
-------------------------+--------------------------------------------------
 Reporter:  jcaffaro     |       Owner:     
     Type:  enhancement  |      Status:  new
 Priority:  major        |   Milestone:     
Component:  WebSubmit    |     Version:     
 Keywords:               |  
-------------------------+--------------------------------------------------
 The WebSubmit file stamper relies on the pdftk tool to process PDF files,
 but unfortunately pdftk does not preserve bookmarks (eg. table of content
 or "outlines"), even though it is able to dump them.

 Ghostscript could be used instead to stamp files, as it can preserve such
 information.

 Ghostscript could fully replace pdftk in this case, or could be used
 simply to enrich the resulting stamped file with the necessary
 instructions to create the bookmarks (PDFMark?), provided that these
 instructions can be extracted correctly from the original file.

 Some additional untested information:

 {{{
 $ pdftk original_file.pdf dump_data
 InfoKey: Creator
 InfoValue: LaTeX with hyperref package
 NumberOfPages: 88
 BookmarkTitle: Introduction
 BookmarkLevel: 1
 BookmarkPageNumber: 9
 BookmarkTitle: Context
 BookmarkLevel: 2
 BookmarkPageNumber: 9
 BookmarkTitle: CERN
 BookmarkLevel: 3
 }}}

 {{{
 $ pdftk stamped_file.pdf update_info original_file.info output
 new_stamped_file

 (does not seem to add the necessary information unfortunately)
 }}}

 {{{
 $ gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -o stamped_file.pdf
 original_file.pdf stamp.pdf

 (would apparently merge the two files and keep the bookmarks from both)
 }}}

 {{{
 $ gs -dBATCH -dNOPAUSE -sDEVICE=pdfwrite -o new_stamped_file.pdf \
        -c "[/Page 1 /View [/XYZ null null null] /Title (Title 1) /OUT
 pdfmark" \
        -c "[/Page 2 /View [/XYZ null null null] /Title (Title 2) /OUT
 pdfmark" \
 -f stamped_file.pdf

 (would apparently add the specified bookmarks instructions to the given
 file. They should be extracted from the original file, and cleaned for
 this syntax)
 }}}


 In any case one should be careful if bookmarks are linking to absolute
 page numbers, as the number of pages can change when adding a cover page.
 This would probably not be handled by Ghostscript.

-- 
Ticket URL: <http://invenio-software.org/ticket/438>
Invenio <http://invenio-software.org>

Reply via email to