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 Sat, 09 Nov 2013 09:00:45 GMT
https://www2.swc.rwth-aachen.de/docs/2013_DA_Schmitz.pdf

This would be a sample. It was made with LateX and consists of more than  
one .tex file.

Hope it can help. It's for my bachelor thesis and otherwise I'm lost :(

BR
Sera


Am 09.11.2013, 09:32 Uhr, schrieb Maruan Sahyoun <sahyoun@fileaffairs.de>:

> Hi Sera,
>
> if the bookmarks do nor relate to pages they can not be taken as a hint  
> for splitting.
>
> Is it possible to upload a sample PDF at a public location so we can  
> take a look at a sample file. Might give us another idea to handle your  
> requirement.
>
> BR
> Maruan
>
> Am 08.11.2013 um 17:24 schrieb Sera <news4sera@gmx.de>:
>
>> Well then. I've got another idea.
>> Actually, I don't need the exakt pagenumber, but the pagecount of each  
>> chapter.
>> Is it still possible to devide the PDF by it's bookmarks or would'nt  
>> that work as well?
>> When I've devided them, I can just make doc.getNumberOfPages(). That  
>> works here.
>>
>> Am 08.11.2013, 17:19 Uhr, schrieb Gilad Denneboom  
>> <gilad.denneboom@gmail.com>:
>>
>>> Yes, that could very well be the cause...
>>>
>>>
>>> On Fri, Nov 8, 2013 at 4:51 PM, Sera <news4sera@gmx.de> wrote:
>>>
>>>> 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/
>>>>
>>
>>
>> --
>> 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