sdutky has asked for the wisdom of the Perl Monks concerning the following question:

I have looked at perldoc PDF::API2::NamedDestination but I can't see where to associate a name with a named destination.

I want to open an existing pdf, insert the named destination and save it to new file.

Replies are listed 'Best First'.
Re: insert named destination in pdf
by Anonymous Monk on Feb 08, 2023 at 21:21 UTC
    insert the named destination

    such as? And why would you want to do that, as opposed to unnamed destination? The "name" in "named" in context of PDF structure is to achieve indirection rarely needed for ordinary purposes. This class is misnomer, PDF::API2 doesn't seem to know what's called "Named Destinations" in the Reference. If you do (and really need it), then you can add low-level objects yourself for that. PDF::API2 has a bit higher level than usual of semi-implemented stuff; including class in question. You can add links to unnamed destinations using PDF::API2::Annotation or PDF::API2::Outline, see their POD.

      What I would like to do is construct links in an HTML web page that when selected opens the pdf and displays the portion around the named destination.

      From a StackExchange

      I understand that these can be of the form:

      <a href="[URL].pdf#nameddest=DestinationX">display destination in pdf</a>

      Will this work? How would I go about this with an unnamed destination?

        On Windows from a command prompt, just typing test.pdf will open that PDF is the default viewer.

        I don't have a PDF with destinations to try it - or at least I don't think I have. But have you tried ensuring that your PDF destinations actually work?

        test.pdf#nameddest=DestinationX at the command prompt?

        If that works, I would then try opening the PDF in PDF::API2 including the full path

        use strict; use warnings; use PDF::API2; my $pdf = PDF::API2->open("test.pdf#nameddest=DestinationX"); print $pdf->to_string;

        UPDATE - sorry misread, the question - you want to add a destination, not read one!

        I've just tried in my PDF editing software and the destination it creates does not appear to be named. The way I had to name it was to associate the destination with a Bookmark which does have a name. I don't know enough about PDFs to know if it is possible for the underlying destination to be named but associating it with a Bookmark seems to have the effect you are look for.

        Have you read the document your SO link points to? Have you tried anything at all?

        Caution: Adobe Reader the spec describes is no long longer the default PDF viewer. My desktop version of FF opens a pdf to specified page and zoom/scroll in URL. It doesn't mean any mobile and/or platform/vendor browser is bound to support both named/unnamed locations in pdf, YMMV. + Though I don't think you are going to add "Named Destinations", the "F1" through "F4" are among few from that very document to experiment with if need be.