public ArrayList RetrieveAllNodesOnPages(int startPage, int endPage, NodeType nodeType)
{
if (startPage < 1 || startPage > Document.PageCount)
throw new ArgumentOutOfRangeException("startPage");
if (endPage < 1 || endPage > Document.PageCount || endPage < startPage)
throw new ArgumentOutOfRangeException("endPage");
CheckPageListsPopulated();
ArrayList pageNodes = new ArrayList();
for (int page = startPage; page <= endPage; page++)
{
// Some pages can be empty.
if (!mReversePageLookup.ContainsKey(page))
continue;
foreach (Node node in (ArrayList)mReversePageLookup[page])
{
if (node.ParentNode != null && (nodeType == NodeType.Any || node.NodeType == nodeType) && !pageNodes.Contains(node))
pageNodes.Add(node);
}
}
return pageNodes;
}