pdfbox-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sera <news4s...@gmx.de>
Subject Re: bookmark.getDestination is null
Date Fri, 08 Nov 2013 15:51:09 GMT
Could it be a problem of latex?
I'm using it do generate the pdf.

Am 08.11.2013, 16:40 Uhr, schrieb Sera <news4sera@gmx.de>:

> First, thanks for the code!
> Unfurtanately, I still get a Nullpointer.
> dests.getNames() is null.
>
> Am 04.11.2013, 13:38 Uhr, schrieb Gilad Denneboom  
> <gilad.denneboom@gmail.com>:
>
>> You wrote the following code to do it:
>>
>>     public static int getPageNumberFromNamedDestination(PDDocument doc,
>> String name) throws IOException {
>>         PDDestinationNameTreeNode dests =
>> doc.getDocumentCatalog().getNames().getDests();
>>         if (dests==null || dests.getNames()==null)
>>             return -1;
>>         Object d = dests.getNames().get(name);
>>         if (d==null)
>>             return -1;
>>         return getPageDestPageNumber(d);
>>     }
>>
>>     public static int getPageDestPageNumber(Object dest) {
>>
>>         if (dest instanceof PDPageFitDestination) {
>>             PDPageFitDestination pageFitDestination =
>> (PDPageFitDestination) dest;
>>             return pageFitDestination.findPageNumber();
>>         }
>>
>>         if (dest instanceof PDPageXYZDestination) {
>>             PDPageXYZDestination pageXYZDestination =
>> (PDPageXYZDestination) dest;
>>             return pageXYZDestination.findPageNumber();
>>         }
>>
>>         if (dest instanceof PDPageFitWidthDestination) {
>>             PDPageFitWidthDestination fitWidthDestination =
>> (PDPageFitWidthDestination) dest;
>>             return fitWidthDestination.findPageNumber();
>>         }
>>
>>         if (dest instanceof PDPageFitHeightDestination) {
>>             PDPageFitHeightDestination fitHeightDestination =
>> (PDPageFitHeightDestination) dest;
>>             return fitHeightDestination.findPageNumber();
>>         }
>>
>>         if (dest instanceof PDPageFitRectangleDestination) {
>>             PDPageFitRectangleDestination pageFitRectangleDestination =
>> (PDPageFitRectangleDestination) dest;
>>             return pageFitRectangleDestination.findPageNumber();
>>         }
>>
>>         return -1;
>>     }
>>
>>
>> On Sun, Nov 3, 2013 at 1:39 PM, Sera <news4sera@gmx.de> wrote:
>>
>>> I've debugged it and it throws an exception.
>>>
>>>
>>>  PDDestinationNameTreeNode node = (PDDestinationNameTreeNode)
>>> document.getDocumentCatalog().getStructureTreeRoot().getIDTree();
>>>
>>> any idea what the correct way is?
>>>
>>>
>>>
>>> Am 01.11.2013, 23:47 Uhr, schrieb Sera <news4sera@gmx.de>:
>>>
>>>
>>>
>>>> is this the right way to get to the treenode?
>>>>
>>>> Am 31.10.2013, 11:28 Uhr, schrieb Gilad Denneboom <
>>>> gilad.denneboom@gmail.com>:
>>>>
>>>>  If the destination is a PDNamedDestination object, you have to cast  
>>>> it to
>>>>> that class...
>>>>>
>>>>>
>>>>>>
>>>>> On Thu, Oct 31, 2013 at 11:24 AM, Sera <news4sera@gmx.de> wrote:
>>>>>
>>>>>  Do I have to cast Action to another type than ActionGoTo? I don't  
>>>>> see a
>>>>>> function getNamedDestination() in the suggestions for my objects.
>>>>>>
>>>>>> Am 31.10.2013, 10:45 Uhr, schrieb Gilad Denneboom <
>>>>>> gilad.denneboom@gmail.com>:
>>>>>>
>>>>>>  Ah, so your bookmarks are not pointing to page locations directly,
 
>>>>>> but
>>>>>> to
>>>>>>
>>>>>>> Named Destinations. This makes things more complex. You can use
>>>>>>> getNamedDestination() to get the name of the ND the bookmark
is
>>>>>>> pointing
>>>>>>> to. Of course, then you still need to write a function that looks
 
>>>>>>> up
>>>>>>> that
>>>>>>> specific ND in the tree (a PDDestinationNameTreeNode object)
and  
>>>>>>> then
>>>>>>> figures out to which page it's pointing to by its value.
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Oct 31, 2013 at 10:35 AM, Sera <news4sera@gmx.de>
wrote:
>>>>>>>
>>>>>>>  when i make it toString() i get:
>>>>>>>
>>>>>>>>
>>>>>>>> org.apache.pdfbox.pdmodel.****interactive.****documentnavigation.**
>>>>>>>> destination.****PDNamedDestination@505484dc
>>>>>>>>
>>>>>>>>
>>>>>>>> whereas the last after @ is always different. I think its
the  
>>>>>>>> hashed
>>>>>>>> destination?
>>>>>>>>
>>>>>>>> Am 31.10.2013, 10:20 Uhr, schrieb Gilad Denneboom <
>>>>>>>> gilad.denneboom@gmail.com>:
>>>>>>>>
>>>>>>>>
>>>>>>>>  What do you mean by "hascode", exactly?
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Thu, Oct 31, 2013 at 10:16 AM, Sera <news4sera@gmx.de>
wrote:
>>>>>>>>>
>>>>>>>>>  ok, now I've got the destination as a hashcode. How
do I get the
>>>>>>>>>
>>>>>>>>>  pagenumber from this?
>>>>>>>>>>
>>>>>>>>>> Am 30.10.2013, 20:10 Uhr, schrieb Gilad Denneboom
<
>>>>>>>>>> gilad.denneboom@gmail.com>:
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  Like I said, you need to determine (using instanceof,
for  
>>>>>>>>>> example)
>>>>>>>>>> which
>>>>>>>>>>
>>>>>>>>>>  actual class it is, one of the subsets of PDAction,
like
>>>>>>>>>> PDActionGoTo
>>>>>>>>>>
>>>>>>>>>>> ...
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Oct 30, 2013 at 7:51 PM, Sera <news4sera@gmx.de>
wrote:
>>>>>>>>>>>
>>>>>>>>>>>  current.getAction() is just a PDAction. From
there I don't  
>>>>>>>>>>> have
>>>>>>>>>>> access
>>>>>>>>>>> to
>>>>>>>>>>>
>>>>>>>>>>>  getDestination().
>>>>>>>>>>>
>>>>>>>>>>>> Am 30.10.2013, 16:27 Uhr, schrieb Gilad Denneboom
<
>>>>>>>>>>>> gilad.denneboom@gmail.com>:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>  You should get the Action of the bookmark,
and then check  
>>>>>>>>>>>> which
>>>>>>>>>>>> type
>>>>>>>>>>>> of
>>>>>>>>>>>>
>>>>>>>>>>>>  action it is (probably PDActionGoTo), and
from the Action  
>>>>>>>>>>>> you'll
>>>>>>>>>>>> have
>>>>>>>>>>>>
>>>>>>>>>>>>  access to the Destination.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Wed, Oct 30, 2013 at 4:00 PM, Sera
<news4sera@gmx.de>  
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>  Hello!
>>>>>>>>>>>>>
>>>>>>>>>>>>>  I need to extract the pagenumber out
of the bookmarks and  
>>>>>>>>>>>>> tried
>>>>>>>>>>>>> it
>>>>>>>>>>>>>
>>>>>>>>>>>>>  with
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> PDOutlineItem current = bookmark.getFirstChild();
>>>>>>>>>>>>>> PDDestination destination = null;
>>>>>>>>>>>>>> destination = current.getDestination();
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> But the destination stays null. Any
ideas on how to fix  
>>>>>>>>>>>>>> this?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>> Sera
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>  --
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>  Erstellt mit Operas E-Mail-Modul:
 
>>>>>>>>>>>>>> http://www.opera.com/mail/
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>  --
>>>>>>>>>>>>
>>>>>>>>>>> Erstellt mit Operas E-Mail-Modul: http://www.opera.com/mail/
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  --
>>>>>>>> Erstellt mit Operas E-Mail-Modul: http://www.opera.com/mail/
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>> --
>>>>>> Erstellt mit Operas E-Mail-Modul: http://www.opera.com/mail/
>>>>>>
>>>>>>
>>>>
>>>>
>>>
>>> --
>>> Erstellt mit Operas E-Mail-Modul: http://www.opera.com/mail/
>>>
>
>


-- 
Erstellt mit Operas E-Mail-Modul: http://www.opera.com/mail/

Mime
View raw message