toArray returns an array of PDPage objects. Since the PDPage objects do not contain the page ID (as far as can tell), this will not suffice. Likewise iterator() and listIterator() both iterate over collections of PDPages. What I need is a list of object IDs for the pages; I don't want the actual data in the pages.
--Adam Andreas Lehmkühler <andr...@lehmi.de> 05/31/2009 10:25 Please respond to pdfbox-dev@incubator.apache.org To pdfbox-dev@incubator.apache.org cc Subject Re: Get page number for bookmark Hi Adam, did you ever try to use one of the following methods: COSArrayList.iterator COSArrayList.listIterator COSArrayList.toArray All of them should return the data you're looking for. Andreas Lehmkühler Adam Nichols schrieb: > I propose the following function is added to COSArrayList. > > public COSArray toList() > { > COSArray copy = new COSArray(); > for(int i=0; i < array.size(); ++i) > copy.add(array.get(i)); > return copy; > } > > This returns a copy of the array to ensure the callers can't modify the > internal array variable. Callers already have access to this information > as it is the same data as is returned by toString() just in a more useful > format. If it's OK to give the callers the ability to modify array > directly, a reference could simply be returned. > > I needed this because I got the "indirect reference to a page object" from > the target listed in a GoTo action and needed the page number. By using > the method above I was able to get the page references in the catalog and > thus was able to determine the page number based on the page object id I > had. >