Thank you SO MUCH, Adam. With your advice, and some tinkering with PDFBox, I
was able to get at and manipulate the named destinations.

On Tue, Jun 1, 2010 at 3:23 PM, <[email protected]> wrote:

> Kevin,
>
> Section 7.7.2 of the PDF Spec (I'm referencing version 1.7) goes over the
> Document catalog and table 20 points you to section 12.3.2.3 for "Named
> Destinations").  Section 12.3.2.3 explains that "the correspondence
> between name objects and destinations shall be defined by the Dests entry
> in the document catalogue (see 7.7.2, "Document Catalog")."  So, per the
> spec, the answer lies in the document catalog.
>
> Table 28 defines what entries are allowed in the catalog dictionary.  The
> "Document Outline" (i.e. key: "Outlines"), which are also known as
> bookmarks, are what you are looping through in your code.  So that's why
> you're getting bookmarks and not named destinations.  You don't want
> document.getDocumentCatalog().getDocumentOutline() but you do want
> document.getDocumentCatalog().
>
> Like I said before, I haven't actually dealt with named destinations, nor
> have I even seen a document which uses them, so I don't know how the
> "Dests" key works.  However, it should be pretty easy to figure if you
> take a look at a PDF in vi, Notepad++, or any other quality editor.  Once
> you know what you're looking for, it's just a matter of looking at things
> in PDDocumentCatalog to find it.
>
> ----
> Thanks,
> Adam
>
>
>
>
>
> From:
> Kevin Brown <[email protected]>
> To:
> [email protected]
> Date:
> 05/25/2010 11:11
> Subject:
> Re: getting page numbers of named destinations
>
>
>
> Thanks much! I'm trying this but it seems to pull in bookmarks, not named
> destinations. Am I missing something?
>
>
> On Sat, May 22, 2010 at 11:15 AM, Andreas Lehmkuehler
> <[email protected]>wrote:
>
> > Hi
> >
> > Kevin Brown schrieb:
> >
> >  I can't seem to get this done with pdfbox. There doesn't seem to be a
> way
> >> to
> >> get the page number from the context of the named destination. Am I
> wrong?
> >> Anyone got any sample code for working with named destinations?
> >>
> > If you have a look at the mentioned example you find some code like
> this:
> >
> > PDDocumentOutline
> > bookmarks=document.getDocumentCatalog().getDocumentOutline();
> > PDOutlineItem item = bookmarks.getFirstChild().getNextSibling();
> >
> > And the PDOutlineItem class provides a method to get the corresponding
> > page:
> >
> > /**
> >  * This method will attempt to find the page in this PDF document that
> this
> > outline points to.
> >  * If the outline does not point to anything then this method will
> return
> > null.  If the outline
> >  * is an action that is not a GoTo action then this methods will throw
> the
> > OutlineNotLocationException
> >  *
> >  * @param doc The document to get the page from.
> >  *
> >  * @return The page that this outline will go to when activated or null
> if
> > it does not point to anything.
> >  * @throws IOException If there is an error when trying to find the
> page.
> >  */
> > public PDPage findDestinationPage( PDDocument doc ) throws IOException
> >
> > I didn't test it, but theoretically it looks like the piece of code you
> are
> > looking for.
> >
> > BR
> > Andreas Lehmkühler
> >
> >
> >
> >> On Wed, May 19, 2010 at 12:45 PM, Kevin Brown <[email protected]> wrote:
> >>
> >>  Thanks. I do need to do that!
> >>>
> >>> At the moment I'm trying to see if I can get the
> >>> GotoSecondBookmarkOnOpen.java sample has any clues... if PDOutlineItem
> >>> could refer to a named destination then I may be in business!
> >>>
> >>>
> >>>
> >>> On Wed, May 19, 2010 at 11:57 AM, <[email protected]> wrote:
> >>>
> >>>  I haven't dealt with named destinations, but if you get get the
> object
> >>>> ID
> >>>> of the page, you can look up the page number with doc.getPageMap().
> If
> >>>> you haven't already, I'd suggest tracing through a PDF with a hex
> editor
> >>>> (or any good quality text editor will work fine) to find out how
> >>>> everything is connected.
> >>>>
> >>>> ----
> >>>> Thanks,
> >>>> Adam
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> From:
> >>>> Kevin Brown <[email protected]>
> >>>> To:
> >>>> [email protected]
> >>>> Date:
> >>>> 05/19/2010 08:42
> >>>> Subject:
> >>>> getting page numbers of named destinations
> >>>>
> >>>>
> >>>>
> >>>> Is it possible to, for a PDF, get the named destinations in it, and
> find
> >>>> out
> >>>> what page each is on? It doesn't look like it from my perusal of the
> >>>> documentation, but I'm not sure. Seems like you can get the
> destination
> >>>> names but that's about it.
> >>>>
> >>>>
> >>>>
> >>>> ?  Click here to submit conditions
> >>>>
> >>>> This email and any content within or attached hereto from  Sun West
> >>>> Mortgage Company, Inc.  is confidential and/or legally privileged.
> The
> >>>> information is intended only for the use of the individual or entity
> >>>> named
> >>>> on this email. If you are not the intended recipient, you are hereby
> >>>> notified that any disclosure, copying, distribution or the taking of
> any
> >>>> action in reliance on the contents of this email information is
> strictly
> >>>> prohibited, and that the documents should be returned to this office
> >>>> immediately by email. Receipt by anyone other than the intended
> >>>> recipient is
> >>>> not a waiver of any privilege. Please do not include your social
> >>>> security
> >>>> number, account number, or any other personal or financial
> information
> >>>> in
> >>>> the content of the email. Should you have any questions, please call
> >>>>  (800)
> >>>> 453 7884.
> >>>>
> >>>
> >>>
> >>>
> >>
> >
>
>
>
> ?  Click here to submit conditions
>
> This email and any content within or attached hereto from  Sun West
> Mortgage Company, Inc.  is confidential and/or legally privileged. The
> information is intended only for the use of the individual or entity named
> on this email. If you are not the intended recipient, you are hereby
> notified that any disclosure, copying, distribution or the taking of any
> action in reliance on the contents of this email information is strictly
> prohibited, and that the documents should be returned to this office
> immediately by email. Receipt by anyone other than the intended recipient is
> not a waiver of any privilege. Please do not include your social security
> number, account number, or any other personal or financial information in
> the content of the email. Should you have any questions, please call  (800)
> 453 7884.
>

Reply via email to