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
<[email protected]>:
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 <[email protected]> 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 <[email protected]>:
is this the right way to get to the treenode?
Am 31.10.2013, 11:28 Uhr, schrieb Gilad Denneboom <
[email protected]>:
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 <[email protected]> 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 <
[email protected]>:
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 <[email protected]> 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 <
[email protected]>:
What do you mean by "hascode", exactly?
On Thu, Oct 31, 2013 at 10:16 AM, Sera <[email protected]> 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 <
[email protected]>:
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 <[email protected]> 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 <
[email protected]>:
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 <[email protected]>
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/