[ https://issues.apache.org/jira/browse/PDFBOX-2704?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tilman Hausherr updated PDFBOX-2704: ------------------------------------ Description: I know PDFBOX-2423 is not closed yet so I'm not sure if the issues I'm having are a cause of that. I'm using the latest trunk and I have issues with the PDPageTree.indexOf method. The javadoc reads ??Returns the index of the given page, or -1 if it does not exist.?? which I understand it means in returns -1 if the given page is not found in the page tree correct? If so, the following unit test fails: {code} @Test public void indexOfNotFoundPage() throws IOException { PDDocument doc1 = PDDocument.load(getClass().getClassLoader() .getResourceAsStream("pdf/bigger_outline_test.pdf")); assertEquals(-1, doc1.getPages().indexOf(new PDPage())); } {code} Another similar issue I have is that PDPageTree.indexOf doesn't find the correct index for a PDPage returned by the PDOutlineItem.findDestinationPage: {code} @Test public void indexOfPageFromOutlineDestination() throws IOException { PDDocument doc = PDDocument .load(getClass().getClassLoader().getResourceAsStream("pdf/bigger_outline_test.pdf")); PDDocumentOutline outline = doc.getDocumentCatalog().getDocumentOutline(); for (PDOutlineItem current : outline.children()) { if (current.getTitle().contains("Second")) { assertEquals(3, doc.getPages().indexOf(current.findDestinationPage(doc))); } } } {code} Also note that indexOf is used by PDPageDestination.findPageNumber which also returns a wrong result. was: I know https://issues.apache.org/jira/browse/PDFBOX-2423 is not closed yet so I'm not sure if the issues I'm having are a cause of that. I'm using the latest trunk and I have issues with the PDPageTree.indexOf method. The javadoc reads ??Returns the index of the given page, or -1 if it does not exist.?? which I understand it means in returns -1 if the given page is not found in the page tree correct? If so, the following unit test fails: {code} @Test public void indexOfNotFoundPage() throws IOException { PDDocument doc1 = PDDocument.load(getClass().getClassLoader() .getResourceAsStream("pdf/bigger_outline_test.pdf")); assertEquals(-1, doc1.getPages().indexOf(new PDPage())); } {code} Another similar issue I have is that PDPageTree.indexOf doesn't find the correct index for a PDPage returned by the PDOutlineItem.findDestinationPage: {code} @Test public void indexOfPageFromOutlineDestination() throws IOException { PDDocument doc = PDDocument .load(getClass().getClassLoader().getResourceAsStream("pdf/bigger_outline_test.pdf")); PDDocumentOutline outline = doc.getDocumentCatalog().getDocumentOutline(); for (PDOutlineItem current : outline.children()) { if (current.getTitle().contains("Second")) { assertEquals(3, doc.getPages().indexOf(current.findDestinationPage(doc))); } } } {code} Also note that indexOf is used by PDPageDestination.findPageNumber which also returns a wrong result. > PDPageTree.indexOf doesn't find page numbers > -------------------------------------------- > > Key: PDFBOX-2704 > URL: https://issues.apache.org/jira/browse/PDFBOX-2704 > Project: PDFBox > Issue Type: Bug > Components: PDModel > Affects Versions: 2.0.0 > Environment: 2.0.0-SNAPSHOT r1665633 > Reporter: Andrea Vacondio > Assignee: Tilman Hausherr > Labels: PDPageTree > Fix For: 2.0.0 > > Attachments: bigger_outline_test.pdf, page_tree_index_of.diff, > page_tree_multiple_levels.pdf, with_outline.pdf > > > I know PDFBOX-2423 is not closed yet so I'm not sure if the issues I'm having > are a cause of that. > I'm using the latest trunk and I have issues with the PDPageTree.indexOf > method. The javadoc reads ??Returns the index of the given page, or -1 if it > does not exist.?? which I understand it means in returns -1 if the given page > is not found in the page tree correct? If so, the following unit test fails: > {code} > @Test > public void indexOfNotFoundPage() throws IOException { > PDDocument doc1 = PDDocument.load(getClass().getClassLoader() > .getResourceAsStream("pdf/bigger_outline_test.pdf")); > assertEquals(-1, doc1.getPages().indexOf(new PDPage())); > } > {code} > Another similar issue I have is that PDPageTree.indexOf doesn't find the > correct index for a PDPage returned by the PDOutlineItem.findDestinationPage: > {code} > @Test > public void indexOfPageFromOutlineDestination() throws IOException { > PDDocument doc = PDDocument > > .load(getClass().getClassLoader().getResourceAsStream("pdf/bigger_outline_test.pdf")); > PDDocumentOutline outline = > doc.getDocumentCatalog().getDocumentOutline(); > for (PDOutlineItem current : outline.children()) { > if (current.getTitle().contains("Second")) { > assertEquals(3, > doc.getPages().indexOf(current.findDestinationPage(doc))); > } > } > } > {code} > Also note that indexOf is used by PDPageDestination.findPageNumber which also > returns a wrong result. -- This message was sent by Atlassian JIRA (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org For additional commands, e-mail: dev-h...@pdfbox.apache.org