You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@pdfbox.apache.org by Sera <ne...@gmx.de> on 2013/11/01 23:47:30 UTC
Re: bookmark.getDestination is null
PDDestinationNameTreeNode node = (PDDestinationNameTreeNode)
document.getDocumentCatalog().getStructureTreeRoot().getIDTree();
is this the right way to get to the treenode?
Am 31.10.2013, 11:28 Uhr, schrieb Gilad Denneboom
<gi...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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/
Re: bookmark.getDestination is null
Posted by Sera <ne...@gmx.de>.
Thank you so much! That really helped me out.
Am 09.11.2013, 14:20 Uhr, schrieb Gilad Denneboom
<gi...@gmail.com>:
> (Sorry, it returns 16)
>
>
> On Sat, Nov 9, 2013 at 2:18 PM, Gilad Denneboom
> <gi...@gmail.com>wrote:
>
>> I wrote this code for you to do this task in a different way:
>>
>> PDDocument doc = PDDocument.load("c:/temp/2013_DA_Schmitz.pdf");
>> PDPage p =
>> doc.getDocumentCatalog().getDocumentOutline().getFirstChild().findDestinationPage(doc);
>> List<PDPage> pages = doc.getDocumentCatalog().getAllPages();
>> for (int i=0; i<pages.size(); i++)
>> if (pages.get(i).equals(p))
>> System.out.println(i);
>> doc.close();
>>
>> This looks up the page number of the first bookmark in the file, and it
>> returns 14 (remember it's 0-based).
>>
>> Gilad
>>
>>
>> On Sat, Nov 9, 2013 at 12:51 PM, Sera <ne...@gmx.de> wrote:
>>
>>> My main goal is to extract the chapternames, the pagecount of each
>>> chapter and a way to see, if something new was written in the chapter.
>>> Further, I want to extract the bullet points inside the PDF, but thats
>>> not so relevant. I've got the chapternames out of PDFBox. So that
>>> works.
>>> The "see if somethings new" I wanted to make with counting the
>>> characters.
>>>
>>>
>>> Am 09.11.2013, 10:53 Uhr, schrieb Gilad Denneboom <
>>> gilad.denneboom@gmail.com>:
>>>
>>>
>>> Is writing the code a part of your thesis, or extracting the
>>> "chapters"?
>>>> If
>>>> the latter, have you considered doing it with JavaScript in Acrobat
>>>> instead
>>>> of using Java?
>>>>
>>>>
>>>> On Sat, Nov 9, 2013 at 10:00 AM, Sera <ne...@gmx.de> wrote:
>>>>
>>>> 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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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
>>>>>>>>>>>>>>>>> <ne...@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
>>>>>>>>>>>>>>>>>>>> <ne...@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/
>>>>>
>>>>>
>>>
>>> --
>>> Erstellt mit Operas E-Mail-Modul: http://www.opera.com/mail/
>>>
>>
>>
--
Erstellt mit Operas E-Mail-Modul: http://www.opera.com/mail/
Re: bookmark.getDestination is null
Posted by Gilad Denneboom <gi...@gmail.com>.
(Sorry, it returns 16)
On Sat, Nov 9, 2013 at 2:18 PM, Gilad Denneboom
<gi...@gmail.com>wrote:
> I wrote this code for you to do this task in a different way:
>
> PDDocument doc = PDDocument.load("c:/temp/2013_DA_Schmitz.pdf");
> PDPage p =
> doc.getDocumentCatalog().getDocumentOutline().getFirstChild().findDestinationPage(doc);
> List<PDPage> pages = doc.getDocumentCatalog().getAllPages();
> for (int i=0; i<pages.size(); i++)
> if (pages.get(i).equals(p))
> System.out.println(i);
> doc.close();
>
> This looks up the page number of the first bookmark in the file, and it
> returns 14 (remember it's 0-based).
>
> Gilad
>
>
> On Sat, Nov 9, 2013 at 12:51 PM, Sera <ne...@gmx.de> wrote:
>
>> My main goal is to extract the chapternames, the pagecount of each
>> chapter and a way to see, if something new was written in the chapter.
>> Further, I want to extract the bullet points inside the PDF, but thats
>> not so relevant. I've got the chapternames out of PDFBox. So that works.
>> The "see if somethings new" I wanted to make with counting the characters.
>>
>>
>> Am 09.11.2013, 10:53 Uhr, schrieb Gilad Denneboom <
>> gilad.denneboom@gmail.com>:
>>
>>
>> Is writing the code a part of your thesis, or extracting the "chapters"?
>>> If
>>> the latter, have you considered doing it with JavaScript in Acrobat
>>> instead
>>> of using Java?
>>>
>>>
>>> On Sat, Nov 9, 2013 at 10:00 AM, Sera <ne...@gmx.de> wrote:
>>>
>>> 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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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/
>>>>
>>>>
>>
>> --
>> Erstellt mit Operas E-Mail-Modul: http://www.opera.com/mail/
>>
>
>
Re: bookmark.getDestination is null
Posted by Gilad Denneboom <gi...@gmail.com>.
I wrote this code for you to do this task in a different way:
PDDocument doc = PDDocument.load("c:/temp/2013_DA_Schmitz.pdf");
PDPage p =
doc.getDocumentCatalog().getDocumentOutline().getFirstChild().findDestinationPage(doc);
List<PDPage> pages = doc.getDocumentCatalog().getAllPages();
for (int i=0; i<pages.size(); i++)
if (pages.get(i).equals(p))
System.out.println(i);
doc.close();
This looks up the page number of the first bookmark in the file, and it
returns 14 (remember it's 0-based).
Gilad
On Sat, Nov 9, 2013 at 12:51 PM, Sera <ne...@gmx.de> wrote:
> My main goal is to extract the chapternames, the pagecount of each chapter
> and a way to see, if something new was written in the chapter.
> Further, I want to extract the bullet points inside the PDF, but thats not
> so relevant. I've got the chapternames out of PDFBox. So that works.
> The "see if somethings new" I wanted to make with counting the characters.
>
>
> Am 09.11.2013, 10:53 Uhr, schrieb Gilad Denneboom <
> gilad.denneboom@gmail.com>:
>
>
> Is writing the code a part of your thesis, or extracting the "chapters"?
>> If
>> the latter, have you considered doing it with JavaScript in Acrobat
>> instead
>> of using Java?
>>
>>
>> On Sat, Nov 9, 2013 at 10:00 AM, Sera <ne...@gmx.de> wrote:
>>
>> 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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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/
>>>
>>>
>
> --
> Erstellt mit Operas E-Mail-Modul: http://www.opera.com/mail/
>
Re: bookmark.getDestination is null
Posted by Sera <ne...@gmx.de>.
My main goal is to extract the chapternames, the pagecount of each chapter
and a way to see, if something new was written in the chapter.
Further, I want to extract the bullet points inside the PDF, but thats not
so relevant. I've got the chapternames out of PDFBox. So that works.
The "see if somethings new" I wanted to make with counting the characters.
Am 09.11.2013, 10:53 Uhr, schrieb Gilad Denneboom
<gi...@gmail.com>:
> Is writing the code a part of your thesis, or extracting the "chapters"?
> If
> the latter, have you considered doing it with JavaScript in Acrobat
> instead
> of using Java?
>
>
> On Sat, Nov 9, 2013 at 10:00 AM, Sera <ne...@gmx.de> wrote:
>
>> 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
>> <sa...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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
>>>>>>>>>>>>>>>>>>> <ne...@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/
>>
--
Erstellt mit Operas E-Mail-Modul: http://www.opera.com/mail/
Re: bookmark.getDestination is null
Posted by Gilad Denneboom <gi...@gmail.com>.
Is writing the code a part of your thesis, or extracting the "chapters"? If
the latter, have you considered doing it with JavaScript in Acrobat instead
of using Java?
On Sat, Nov 9, 2013 at 10:00 AM, Sera <ne...@gmx.de> wrote:
> 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 <sa...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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/
>
Re: bookmark.getDestination is null
Posted by Sera <ne...@gmx.de>.
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 <sa...@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 <ne...@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
>> <gi...@gmail.com>:
>>
>>> Yes, that could very well be the cause...
>>>
>>>
>>> On Fri, Nov 8, 2013 at 4:51 PM, Sera <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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/
Re: bookmark.getDestination is null
Posted by Maruan Sahyoun <sa...@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 <ne...@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 <gi...@gmail.com>:
>
>> Yes, that could very well be the cause...
>>
>>
>> On Fri, Nov 8, 2013 at 4:51 PM, Sera <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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/
Re: bookmark.getDestination is null
Posted by Sera <ne...@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
<gi...@gmail.com>:
> Yes, that could very well be the cause...
>
>
> On Fri, Nov 8, 2013 at 4:51 PM, Sera <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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/
Re: bookmark.getDestination is null
Posted by Gilad Denneboom <gi...@gmail.com>.
Yes, that could very well be the cause...
On Fri, Nov 8, 2013 at 4:51 PM, Sera <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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/
>
Re: bookmark.getDestination is null
Posted by Sera <ne...@gmx.de>.
Could it be a problem of latex?
I'm using it do generate the pdf.
Am 08.11.2013, 16:40 Uhr, schrieb Sera <ne...@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
> <gi...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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/
Re: bookmark.getDestination is null
Posted by Sera <ne...@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
<gi...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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/
Re: bookmark.getDestination is null
Posted by Gilad Denneboom <gi...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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/
>
Re: bookmark.getDestination is null
Posted by Sera <ne...@gmx.de>.
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 <ne...@gmx.de>:
>
> is this the right way to get to the treenode?
>
> Am 31.10.2013, 11:28 Uhr, schrieb Gilad Denneboom
> <gi...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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 <ne...@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/